使用可解释性工具分析模型行为

虽然负责任的 AI 方法应该包括安全政策、提高模型安全性的方法、如何构建透明度工件,但对生成式 AI 负责任的方法不应只是遵循核对清单。生成式 AI 产品相对较新,应用的行为可能与早期形式的软件相比存在更多差异。因此,您应该探测正在使用的机器学习模型,检查模型的行为示例,并调查意外状况。

如今,提示既是一门艺术,又是一门科学,但有一些工具可以帮助您通过经验方式改进大语言模型的提示,例如学习可解释性工具 (LIT)。LIT 是一个开源平台,用于直观呈现、理解和调试 AI/机器学习模型。以下示例展示了如何使用 LIT 探索 Gemma 的行为、预测潜在问题并提高其安全性。

您可以在本地机器ColabGoogle Cloud 上安装 LIT。 如需开始使用 LIT,请在 Colab 中导入您的模型和关联的数据集(例如安全评估数据集)。LIT 会使用您的模型为数据集生成一组输出,并为您提供一个界面来探索模型的行为。

使用 LIT 分析 Gemma 模型

启动 Codelab 启动 Google Colab

学习可解释性工具 (LIT) 界面动画

此图片显示了 LIT 的界面。通过顶部的 Datapoint Editor,用户可以修改他们的提示。在底部的 LM 显著性模块中,用户可以检查显著性结果。

识别复杂提示中的错误

对于基于 LLM 的优质原型和应用而言,两种最重要的提示技术是小样本提示(包括提示中所需行为的示例)和思维链(包括在 LLM 最终输出之前进行某种说明或推理)。不过,创建有效的提示通常仍然是一项挑战。

举个例子,考虑帮助用户根据自己的口味来评估自己是否喜欢某种食物。初始原型思维链提示模板可能如下所示:

Analyze a menu item in a restaurant.


## For example:


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: You have to try it.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Baguette maison au levain
Analysis: Home-made leaven bread in France is usually great
Recommendation: Likely good.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Macaron in France
Analysis: Sweet with many kinds of flavours
Recommendation: You have to try it.


## Now analyse one more example:


Taste-likes: {{users-food-like-preferences}}
Taste-dislikes: {{users-food-dislike-preferences}}
Suggestion: {{menu-item-to-analyse}}
Analysis:

您是否发现此提示有任何问题?LIT 将帮助您检查 LM 显著性模块的提示。

使用序列显著性进行调试

显著性在尽可能低的级别(即针对每个输入词元)计算,但 LIT 可以将词元显著性聚合到更易于解释的较大范围中,例如行、句子或字词。如需详细了解显著性以及如何使用它识别意外偏差,请参阅我们的交互式显著性探索

我们首先为提示提供提示模板变量的新示例输入:

{{users-food-like-preferences}} = Cheese
{{users-food-dislike-preferences}} = Can't eat eggs
{{menu-item-to-analyse}} = Quiche Lorraine

完成后,可以观察到令人惊讶的模型完成:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: A savoury tart with cheese and eggs
Recommendation: You might not like it, but it's worth trying.

为什么模型建议你吃你明确表示不能吃的食物?

序列显著性有助于突出根本问题,我们的少样本示例中也有这方面的表现。在第一个示例中,分析部分中的思维链推理与最终推荐不匹配。对“它有熟食的洋葱,您不喜欢”的分析与“您必须来试试”建议配对。

显示提示序列显著性分析的 LIT 界面

这突出显示了初始提示中的一个错误:第一个少样本示例的推荐意外复制了 (You have to try it!)。通过紫色突出显示,您可以在提示中看到显著性强度。最高的显著性出现在第一个少样本样本上,特别是与 Taste-likesAnalysisRecommendation 对应的行。这表明模型最经常使用这些代码行来给出最终不正确的建议。

此示例还强调,早期原型设计可能会揭示您可能未提前想到的风险,而语言模型的容易出错特性意味着您必须主动设计错误。我们的“人 + AI”指南进一步讨论了如何使用 AI 进行设计。

测试假设以改进模型行为

借助 LIT,您可以在同一界面中测试对提示所做的更改。在此实例中,请尝试添加宪法以改进模型行为。宪法是指设计提示和有助于指导模型生成的原则。最新的方法甚至可以以交互方式推导宪法原则。

让我们借助这一提示来进一步改进提示。使用 LIT 的 Datapoint Editor 在提示顶部添加一个包含生成原则的部分,该部分现在按以下方式开始:

Analyze a menu item in a restaurant.

* The analysis should be brief and to the point.
* It should provide a clear statement of suitability for someone with
  specific dietary restrictions.
* It should reflect the person's tastes

## For example:

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: Avoid.

通过此更新,可以重新运行示例并观察完全不同的输出:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: This dish contains eggs, which you can't eat.
Recommendation: Not suitable for you.

然后,您可以重新检查提示显著性,以帮助了解发生这种变化的原因:

显示提示显著性分析的 LIT 界面

在本例中,“不适合你”受到以下原则的影响:针对有特定饮食禁忌的人提供明确的适宜性声明,以及指出餐点含有鸡蛋的说明性分析声明(所谓的思维链)。

让非技术团队参与模型探测和探索

可解释性需要团队合作,综合运用政策、法律等方面的专业知识。如您所见,LIT 的视觉媒介和交互式功能可用于检查显著性并探索示例,这有助于不同的利益相关方分享和传达发现结果。这样一来,您可以招募更多队友参与模型探索、探测和调试。为他们提供这些技术方法可以加强他们对模型工作原理的了解。此外,在早期模型测试方面掌握更加多样化的专业知识也有助于发现可以改进的不良结果。

摘要

如果您在模型评估中发现有问题的示例,请将其导入到 LIT 中以进行调试。首先分析您能认为在逻辑上与建模任务相关的最大合理内容单元,使用可视化结果查看模型在何处正确或错误处理提示内容,然后深入分析较小的内容单元,进一步描述您看到的错误行为,以确定可能的修正方式。

开发者资源