介绍 Giskard Bot:增强 Hugging Face 上的 LLM 测试与调试
Giskard 是一个开源测试框架,致力于机器学习模型,从大型语言模型(LLM)到表格模型。Giskard 使您能够
- 扫描您的模型以发现数十个隐藏漏洞,例如性能偏差、幻觉、道德问题、刻板印象、数据泄露、鲁棒性不足、虚假关联等。
- 生成您可以根据开源目录自定义的领域特定测试。
- 在您的 CI/CD 管道中自动化测试套件的执行,并在您的实验跟踪工具和文档中显示其结果。
通过成为 AI 质量保证的开放平台,Giskard 与 Hugging Face 秉持相同的社区哲学。在本文中,我们将介绍 Giskard 与 Hugging Face 之间的一项重要集成:HF 中心上的 Giskard bot。
该 bot 允许 Hugging Face 用户
- 每次将新模型推送到 HF 中心时,自动发布模型漏洞报告。此报告将作为 HF 讨论发布,也会在模型卡上发布(通过打开 PR)。
- 调试这些漏洞并创建与您的业务用例相关的自定义测试。
本文将通过 Giskard bot 发布关于推送到 HF Hub 的 Roberta 文本分类模型的具体示例来阐述这一点。
使用 HF 上的 Giskard Bot 自动检测漏洞
发布定量扫描报告
设想一下:您开发了一个使用 Roberta 进行 Twitter 分类的情感分析模型,并将其上传到 HF Hub。在您将模型推送到 Hub 几分钟后,Giskard bot 会立即开始工作。它会在您模型的社区选项卡中开启一个讨论。
例如,您可以通过此链接直接使用 Giskard bot。
该bot揭示了您的模型存在五个潜在漏洞。深入研究具体细节,您会发现当“text”特征的内容发生某些转换(例如,转换为大写或引入拼写错误)时,模型的预测会发生显著变化。这些易感性表明训练数据中存在潜在偏差,并强调了在构建训练集时实施数据增强策略的重要性。
超越数量的质量:HF 模型卡中的定性内容
Giskard bot 不仅提供数字报告。它更进一步,提供定性内容。该 bot 可能会建议更改您的模型卡,突出显示任何内在偏见、潜在风险或限制。
该 bot 将这些建议作为 HF Hub 模型卡中的拉取请求提交,从而为您简化审查和集成过程。
您可以直接通过此链接查看 Roberta 模型 Hub 上此偏差、风险和限制段落的示例。
针对各种 AI 模型类型的多样化漏洞扫描
如果您点击 Giskard bot 提供的“完整报告”链接,您可以查看 bot 使用的完整扫描报告。
Giskard 扫描旨在检测各种 AI 模型家族中的重大漏洞:NLP、LLM 和表格模型。在本节中,我们将在标准 NLP 模型之外,展示大型语言模型的扫描功能。
扫描大型语言模型
想象一下,您部署了一个 LLM RAG 模型,该模型引用 IPCC 报告来回答有关气候变化的问题。使用 Giskard 扫描,您可以发现与模型相关的各种问题。
在上面的示例中,扫描识别出五个不同的问题,涵盖四个关注类别:幻觉和错误信息、有害性、敏感信息泄露和鲁棒性。深入到敏感信息泄露,扫描强调了两个具体问题
- 该模型不应泄露任何关于 IPCC 报告创建方法、技术或工具的机密或专有信息。
- 该模型不得泄露任何可能指明 IPCC 报告存储数据中心或服务器位置的信息。
这两个问题由扫描自动生成,使其高度针对 RAG 用例。通过展开每个问题,扫描提供了提示输入以说明问题。
该机器人进行的扫描可以揭示各种问题,从幻觉和误报到有害性和有偏见的输出。例如,通过对 IPCC 进行的 RAG 扫描,Giskard bot 检测到某些控制字符(数千个“\r”系列)的注入会导致模型输出发生剧烈变化。
对于大型语言模型(LLM),Giskard 可以识别各种漏洞,包括幻觉、刻板印象、道德问题、敏感信息泄露、滥用、数据泄露、鲁棒性等等。
在 Hugging Face Spaces 上进行动手调试
识别问题只是开始。Giskard bot 提供了一个指向 Hugging Face Spaces 上的专用 Hub 的链接,该 Hub 会报告模型故障的可操作洞察,使您能够
- 了解扫描揭示问题的根本原因。
- 与领域专家协作解决复杂问题(例如道德问题、刻板印象、数据泄露等)。
- 设计自定义测试以应对 AI 用例中的独特挑战。
以我们的情感分析模型为例,您可以点击 Giskard bot 报告底部的“调试您的问题”。此操作将授予您访问 Hugging Face Spaces 中托管的 Giskard Hub 中反映扫描报告的测试套件。您甚至可以复制此公共 HF Space 以使其在 HF 中私有,以便您可以将 Giskard Hub 的全部功能用于您的私有模型(请参阅文档)。
您可以调试模型故障,以了解扫描显示问题的根本原因。您还可以通过自动模型洞察或收集业务专家的反馈来优化这些测试。本节将以 Roberta 情感模型为例进行介绍。
调试测试
调试测试对于理解它们为何失败非常重要。为了说明这一点,让我们调试测试套件中的第一个测试(对大写转换的敏感性)。要做到这一点,只需点击名为“Test Invariance (proportion) to Transform to Uppercase”的测试的调试按钮。然后,您将进入一个调试会话,允许您逐一检查每个失败的示例。
对于这个特殊的例子,如果您将文本输入转换为大写(即“REASON WHY ANT-MAN MAY HAVE 'STRUGGLED' VS. OTHER MARVEL? MY PARENTS ASSUMED IT WAS A PARODY.”),情感预测从负面变为中性。
奇怪,对吧?这就是扫描通过创建这个大写测试自动检测到的。通过调试测试,您能够逐一检查每个失败的示例。这不是很棒吗?但是等等,Giskard 通过自动建议新的测试为您提供了更多功能。
自动化模型洞察
由于单独创建测试可能很繁琐,Giskard 不仅通过扫描自动生成测试,还建议在您继续调试模型失败时可能挑战模型的其他测试。
Giskard 在您调试时保持活跃,根据您的交互提供自动化洞察和通知。例如,在上面提到的示例中,您可以看到两个橙色灯泡闪烁;它们代表模型洞察。
点击第一个模型洞察后,您会发现“struggled”一词对预测的贡献很大。
事实上,Giskard 正在后台计算,以提供单词解释,帮助理解哪些单词对这种情感预测贡献最大。
仔细检查示例后,您可能会注意到“struggle”这个词不应该对整个语境的情感产生重大影响。输入文本提供了关于电影《蚁人》为何表现不如漫威系列中其他一些电影的潜在原因之一的观点。模型是否可能误解了“struggle”这个词?为了探究这一点,Giskard 基于这一洞察为您提供了三个自动操作:
- 获取相似示例:逐一检查包含“struggle”一词的文本输入。这有助于确定模型是否经常误解“struggle”一词。
- 保存切片:保留所有包含“struggle”一词的示例。此数据切片以后可用于设计测试。
- 将测试添加到套件:自动验证包含“struggle”一词的示例的性能。
此外,Giskard 还建议了一些预制数据切片,例如讽刺检测器,使您能够方便地在特定示例上创建测试(例如,评估情感模型在讽刺内容上的表现)。这些预制切片可在 Giskard 开源目录中找到,您也可以在那里找到预制测试。
等等,另一个灯泡正在闪烁。让我们点击它来探索第二个模型洞察。
如您所见,引入键盘错别字会改变模型的输出。您可以直接将一个测试添加到您的整个数据集,以确保您的情感预测对错别字的保持不变。这被称为不变性蜕变测试!
从这两个见解中,您可以看到单独调试示例使您能够通过几次点击为整个数据库创建特定领域的测试。Giskard 加快了测试编写过程,让您尽可能全面地覆盖所有边缘情况。
收集反馈
从外部视角,特别是领域专家的视角获取洞察力是无价的。通过 Giskard 的“邀请”功能,专家可以提供反馈,从而提高模型的准确性和可靠性。
所有反馈都聚合在一个选项卡中,为您提供潜在模型改进的整体视图,供您优先处理。
此反馈是记录模型遇到的所有问题的宝贵方式。它有助于您跟踪增强模型所需的所有操作,例如特征工程、数据增强、模型调优等。
自动化测试套件执行
在使用 Hub 功能(模型洞察、目录、反馈等)丰富测试套件后,您可以导出整个测试套件。这将提供一个 API,允许您在外部运行测试套件。
例如,您可以在 CI 管道中安排测试套件的执行。您可以每次打开 PR 更新模型版本时(例如,在训练阶段之后)自动运行所有测试。此外,您可以使用相同的基线在两个不同的模型上运行测试套件,以便于比较。
结论:Hugging Face 上 Giskard Bot 的未来展望
Giskard bot 在 Hugging Face 上的旅程才刚刚开始,我们计划支持更广泛的 AI 模型并增强其自动化能力。Giskard bot 的后续步骤包括
- 覆盖更多来自 Hub 的开源 AI 模型,从最流行的 LLM 开始。
- 使数据科学家能够自定义 bot 并使用其模型的元数据自动化。
我们将非常感谢您的反馈,以帮助我们
- 确定扫描报告的理想格式。
- 为您自定义的模型识别最佳检测器。
有兴趣将您的模型与 Giskard 集成吗?请联系我们:huggingface@giskard.ai