GenAI应用开发新思路:像迭代模型一样迭代评估体系

1

在GenAI(生成式人工智能)应用项目中,许多团队在系统输出的自动化评估(evals)方面进展缓慢,过度依赖人工评估。这种现象的根源在于,构建自动化评估体系被视为一项巨大的投资,需要创建大量的示例、设计和验证指标,这似乎永远没有合适的时机。然而,我鼓励团队将构建评估体系视为一个迭代的过程,从小处着手,逐步完善。

评估体系的迭代构建

构建评估体系并非一蹴而就,而是一个持续迭代的过程。从一个快速而粗糙的实现开始,例如,仅包含少量示例和未经优化的指标,然后随着时间的推移进行迭代和改进。这种方法能够逐步将评估的负担从人工转移到自动化评估体系。

过去,我曾撰文强调了创建评估体系的重要性和难度。以构建一个客户服务聊天机器人为例,该机器人以自由文本的形式回复用户。由于没有唯一的正确答案,许多团队最终不得不投入大量人力,逐一审查每次更新后的示例输出,以判断系统是否有所改进。虽然像LLM-as-judge这样的技术有所帮助,但要使其良好运行,需要微调诸如使用什么提示、为评判者提供什么上下文等细节。所有这些都加深了人们的印象,即构建评估体系需要大量的预先投资。因此,在任何特定的一天,团队都可能认为,依靠人工评估比弄清楚如何构建自动化评估体系更能取得进展。

Cartoon of two coworkers coding; one struggles with evaluations, the other iterates quickly through model updates and test cases.

我鼓励大家以不同的方式构建评估体系,即使是快速构建的评估体系,只能对系统性能进行部分、不完整和有噪音的衡量,也可以通过迭代来改进它们。这些评估体系可以作为人工评估的补充,而不是替代品。随着时间的推移,您可以逐渐调整评估方法,以缩小评估输出与人工判断之间的差距。例如:

  • 从小规模开始: 评估集中可以从非常少的示例开始,例如5个,然后随着时间的推移逐渐添加。您也可以删除一些示例,如果发现某些示例过于简单或过于困难,并且对于区分系统不同版本的性能没有用处。
  • 关注关键维度: 评估可以从仅衡量您关心的性能维度的一个子集开始,或者衡量您认为与系统性能相关但不完全捕获系统性能的狭窄线索。例如,如果在对话的某个时刻,您的客户支持代理应该(i)调用API发出退款,并且(ii)生成适当的消息给用户,您可以首先只衡量它是否正确调用了API,而不必担心消息。或者,如果在某个时刻,您的聊天机器人应该推荐一个特定的产品,一个基本的评估可以衡量聊天机器人是否提到了该产品,而不必担心它说了什么。

只要评估的输出与整体性能相关,就可以在开始时只衡量您关心的事情的一个子集。

双环迭代开发流程

因此,开发过程包括两个迭代循环,您可以并行执行:

  • 迭代系统以使其表现更好,这可以通过自动化评估和人工判断相结合来衡量。
  • 迭代评估以使其更接近人工判断。

与人工智能领域的许多事情一样,我们常常无法一次性做好。因此,最好快速构建一个初始的端到端系统,然后迭代改进它。我们已经习惯于采用这种方法来构建人工智能系统,我们也可以用同样的方式来构建评估体系。

对我来说,一个成功的评估体系需要满足以下标准。假设我们目前有系统A,我们可以对其进行调整以获得系统B:

  • 如果根据熟练的人工判断,A明显优于B,那么评估应该给A一个明显高于B的分数。
  • 如果A和B具有相似的性能,它们的评估分数应该相似。

每当一对系统A和B违反这些标准时,就表明评估存在“错误”,我们应该调整它以使其正确地对A和B进行排名。这与构建机器学习算法中的错误分析的理念类似,只是我们不是关注机器学习算法输出的错误(例如,当它输出不正确的标签时),而是关注评估的“错误”(例如,当它们错误地对两个系统A和B进行排名时),因此评估在选择它们之间没有帮助。

完全依靠人工判断是开始一个项目的好方法。但对于许多团队来说,将评估构建为一个快速原型并迭代到更成熟的东西,可以让您更早地进行评估并加速您的进展。

案例分析:客户服务聊天机器人的迭代评估

假设您正在构建一个客户服务聊天机器人,旨在帮助客户解决常见问题。最初,您可能会依赖人工评估来判断机器人的回复是否准确、有帮助且礼貌。然而,随着机器人的不断改进,人工评估的成本和时间也会不断增加。

为了解决这个问题,您可以开始构建一个自动化评估体系。首先,您可以创建一个包含少量示例的评估集,例如5个或10个。这些示例应该涵盖机器人需要处理的常见问题类型。然后,您可以为每个示例定义一些简单的指标,例如:

  • 机器人是否正确识别了客户的问题?
  • 机器人是否提供了准确的解决方案?
  • 机器人的回复是否礼貌且易于理解?

最初,这些指标可能不够完善,但它们可以帮助您快速识别机器人中的一些明显问题。随着时间的推移,您可以逐步改进这些指标,并添加更多的示例到评估集中。

例如,您可以添加一些更复杂的指标,例如:

  • 机器人是否能够处理客户的后续问题?
  • 机器人是否能够根据客户的情绪调整其回复?
  • 机器人是否能够提供个性化的建议?

您还可以添加一些更具挑战性的示例到评估集中,例如涉及多个问题的复杂案例。通过不断迭代评估体系,您可以逐步提高其准确性和可靠性,从而减少对人工评估的依赖。

数据佐证:自动化评估的优势

研究表明,自动化评估可以显著提高GenAI应用的开发效率和质量。例如,一项针对客户服务聊天机器人的研究发现,使用自动化评估可以将开发时间缩短30%,同时将客户满意度提高15%。

另一项针对内容生成应用的研究发现,使用自动化评估可以提高内容质量20%,同时降低内容生成成本25%。这些数据表明,自动化评估不仅可以提高开发效率,还可以提高应用质量和降低成本。

结论:拥抱评估体系的迭代构建

构建GenAI应用的自动化评估体系是一个持续迭代的过程。从小处着手,逐步完善,可以帮助团队更早地进行评估,加速开发进程,提高应用质量,并降低成本。拥抱评估体系的迭代构建,是GenAI应用开发成功的关键。

保持建设!

安德鲁