在人工智能(AI)驱动的浪潮中,大型语言模型(LLM)的应用日益普及,从客户服务到内容创作,几乎每个行业都在探索其潜力。然而,如何有效地评估这些模型的性能,确保它们真正服务于业务目标,成为了一个不容忽视的挑战。本文旨在探讨一种迭代式的评估方法,帮助团队逐步构建更完善、更高效的AI评估体系。
许多团队在构建GenAI应用时,往往将自动化评估(evals)的实施推迟,过分依赖人工评估。这种做法的根本原因在于,构建全面的评估体系被视为一项巨大的投资,需要创建大量的示例、设计复杂的指标并进行验证。然而,这种“一步到位”的思路往往导致项目延误,因为团队始终难以找到合适的时机投入如此巨大的前期成本。
本文的核心观点是,将评估体系的构建视为一个迭代的过程。从一个快速、简单的实现开始,例如仅包含少量示例和未经优化的指标,然后逐步改进。这种方法能够让团队逐渐将评估的重心从人工转向自动化,从而提高效率和降低成本。
正如我在之前的文章中提到的,创建有效的评估体系既重要又困难。以构建一个客户服务聊天机器人为例,该机器人需要以自由文本的形式回复用户。由于不存在唯一正确的答案,许多团队不得不依赖人工评估,对每次更新后的系统输出进行逐一审查,以判断其是否有所改进。虽然诸如“LLM-as-judge”之类的技术有所帮助,但要使其发挥最佳效果,需要对提示语、上下文等细节进行精细调整。这些因素共同导致了构建评估体系需要大量前期投入的印象,使得团队在日常工作中更倾向于依赖人工判断,而非投入时间和精力来构建自动化评估。
然而,我鼓励大家以不同的方式看待评估体系的构建。即使是快速构建的、仅能部分衡量系统性能的评估体系,也是有价值的。它们可以作为人工评估的补充,而非替代品。随着时间的推移,你可以逐步调整评估方法,缩小评估输出与人工判断之间的差距。以下是一些具体的建议:
- 从小处着手: 评估集中包含的示例数量不必一开始就很多,可以从5个开始,然后随着时间的推移逐步增加。同时,如果发现某些示例过于简单或过于困难,对区分不同版本的系统性能没有帮助,可以将其删除。
- 关注关键维度: 评估可以从衡量你关心的性能维度的一个子集开始,或者衡量你认为与系统性能相关的狭窄指标。例如,如果你的客户支持代理需要在对话的特定时刻(i)调用API发出退款,以及(ii)生成适当的消息给用户,你可以首先只衡量它是否正确调用了API,而不用担心消息的内容。或者,如果你的聊天机器人应该在某个时刻推荐特定的产品,一个基本的评估可以衡量聊天机器人是否提到了该产品,而不用担心它说了什么。
只要评估的输出与整体性能相关,就可以在开始时只衡量你关心的事情的一个子集。
因此,开发过程包括两个迭代循环,你可以并行执行它们:
- 迭代改进系统,以提高其性能,这可以通过自动化评估和人工判断相结合的方式来衡量;
- 迭代改进评估体系,使其更符合人工判断。
在人工智能领域,我们往往无法一次性做到完美。因此,最好快速构建一个初始的端到端系统,然后通过迭代来改进它。我们已经习惯于用这种方法来构建人工智能系统,同样,我们也可以用这种方法来构建评估体系。
对我来说,一个成功的评估体系需要满足以下标准。假设我们目前有系统A,并且我们可能会对其进行调整以获得系统B:
- 如果根据熟练的人工判断,A明显优于B,则评估应给A的评分明显高于B。
- 如果A和B具有相似的性能,则它们的评估分数应相似。
每当系统A和B的配对与这些标准相矛盾时,就表明评估存在“错误”,我们应该调整它以使其正确地对A和B进行排名。这与机器学习算法构建中的错误分析类似,只不过我们关注的是评估的“错误”,例如当它们错误地对两个系统A和B进行排名时,因此评估无助于在它们之间进行选择。
纯粹依赖人工判断是启动项目的绝佳方式。但是对于许多团队来说,将评估构建为快速原型并迭代到更成熟的方式可以让你更早地进行评估并加快你的进度。
结论:构建AI评估体系是一个持续迭代的过程,无需一开始就追求完美。通过从小处着手、关注关键维度、并不断调整和改进评估方法,团队可以逐步构建起高效、可靠的评估体系,从而加速AI应用的开发和部署。
安德鲁