模型评估也需迭代:构建高效GenAI评估体系的实战指南

1

在人工智能(AI)领域,模型迭代已成为常态。我们不断调整参数、优化算法,以期获得更精准、更高效的模型。然而,在GenAI应用项目中,模型评估(eval)的迭代却常常被忽视,许多团队仍然依赖人工评估,这无疑拖慢了整个项目的进展。本文旨在探讨如何像迭代模型一样迭代评估,通过快速构建和不断完善评估体系,加速GenAI应用的开发进程。

许多团队之所以推迟构建自动化评估体系,主要是因为他们认为这是一项巨大的投资。他们需要创建大量的示例(例如,100个或1000个),并设计和验证各种指标。这个过程耗时耗力,因此他们总觉得没有合适的时间来投入这项工作。然而,这种观点是片面的。评估体系的构建不应被视为一项一次性的任务,而应被视为一个迭代的过程。我们可以从一个快速而粗糙的实现开始(例如,5个示例和未优化的指标),然后随着时间的推移不断改进。这种方法可以逐步将评估的负担从人类转移到自动化评估。

我之前曾撰文强调了创建评估体系的重要性和难度。例如,假设您正在构建一个客户服务聊天机器人,它可以自由文本回复用户。由于没有唯一的正确答案,许多团队最终不得不依靠人工来审查每个更新的数十个示例输出,以判断系统是否有所改进。虽然像LLM-as-judge这样的技术很有帮助,但要使其良好运行的细节(例如,使用什么提示、为法官提供什么上下文等)却很难掌握。所有这些都导致人们认为构建评估体系需要大量的预先投资,因此在任何一天,团队都可以通过依赖人类法官而不是弄清楚如何构建自动化评估来取得更大的进展。

评估体系并非一定要完美无缺才能发挥作用。即使是不完整、有噪音的评估,只要能够提供一些有用的信息,就可以作为人工评估的补充,并随着时间的推移逐步改进。例如,您可以从一个非常小的评估集开始,例如5个示例,然后随着时间的推移逐渐添加示例。您也可以删除一些示例,如果发现某些示例太容易或太难,并且不利于区分不同版本的系统的性能。

此外,评估体系可以只测量您关心的性能维度的一个子集,或者测量您认为与系统性能相关但不完全捕获系统性能的狭窄线索。例如,如果在对话的某个时刻,您的客户支持代理应该 (i) 调用 API 发出退款,并且 (ii) 生成一条适合用户的消息,您可以首先只测量它是否正确调用 API,而不用担心消息。或者,如果在某个时刻,您的聊天机器人应该推荐特定产品,则基本评估可以衡量聊天机器人是否提及该产品,而无需担心它说了什么。

只要评估的输出与整体性能相关,就可以在开始时仅测量您关心的事情的一个子集。开发过程因此包括两个迭代循环,您可以并行执行它们:迭代系统以使其表现更好,通过自动化评估和人工判断的组合来衡量;迭代评估以使其更紧密地对应于人工判断。

在我看来,一个成功的评估需要满足以下标准。假设我们目前有系统 A,我们可以对其进行调整以获得系统 B:如果根据熟练的人工判断,A 的效果明显优于 B,则评估应给予 A 比 B 明显更高的分数。如果 A 和 B 具有相似的性能,则它们的评估分数应相似。每当系统 A 和 B 的一对与这些标准相矛盾时,这就是评估中存在“错误”的迹象,我们应该调整它以使其正确地对 A 和 B 进行排名。这与构建机器学习算法中的错误分析具有相似的理念,只是我们关注的是评估的“错误”,而不是机器学习算法输出的错误,例如当它输出不正确的标签时,例如当他们错误地对两个系统 A 和 B 进行排名时,因此评估无助于在它们之间进行选择。

我们可以将评估的构建过程分解为以下几个步骤:

  1. 确定评估目标: 明确评估的目的是什么?是为了衡量模型的准确性、流畅性、还是其他指标?
  2. 选择评估方法: 根据评估目标,选择合适的评估方法。例如,可以使用BLEU、ROUGE等指标来评估机器翻译的质量,或者使用人工评估来评估聊天机器人的对话能力。
  3. 构建评估数据集: 准备用于评估的数据集。数据集应具有代表性,并包含各种不同的情况。
  4. 实施评估: 使用选定的评估方法和数据集来评估模型。
  5. 分析评估结果: 分析评估结果,找出模型的优点和缺点。
  6. 迭代改进: 根据评估结果,对模型进行迭代改进,并重复上述步骤。

以下是一些迭代改进评估体系的具体方法:

  • 增加评估示例: 随着时间的推移,逐渐增加评估示例的数量,以提高评估的准确性。
  • 优化评估指标: 根据评估结果,优化评估指标,使其更能够反映模型的性能。
  • 引入新的评估方法: 尝试使用新的评估方法,以更全面地评估模型的性能。
  • 结合人工评估: 将自动化评估与人工评估相结合,以获得更准确的评估结果。

除了上述方法,还可以借鉴一些其他的技巧来提高评估的效率和效果:

  • 使用LLM-as-judge: 利用大型语言模型(LLM)作为评估者,可以减少人工评估的工作量。
  • 关注边界情况: 特别关注模型在边界情况下的表现,因为这些情况往往最能暴露模型的缺陷。
  • 进行A/B测试: 使用A/B测试来比较不同模型的性能,并选择最佳的模型。

总之,构建评估体系是一个迭代的过程,需要不断地进行改进和完善。通过快速构建和不断完善评估体系,我们可以加速GenAI应用的开发进程,并获得更好的结果。

完全依靠人工判断是启动项目的绝佳方式。但对于许多团队来说,将评估构建为快速原型并迭代到更成熟的东西可以让你更早地进行评估并加速你的进度。持续建设!