在人工智能(AI)驱动的今天,模型迭代已成为常态。然而,在GenAI应用项目中,对系统输出的自动化评估(evals)的重视程度往往不足,过度依赖人工评估。这种现象的根本原因在于,构建完善的evals被视为一项耗时耗力的巨大工程,需要创建大量的示例并设计复杂的验证指标。因此,团队常常选择推迟evals的构建,转而依赖人工判断。本文旨在打破这一传统观念,提倡将evals的构建视为一个迭代过程,鼓励团队从小处着手,逐步完善,从而将评估的重心从人工转向自动化。
构建evals的重要性不言而喻。以客户服务聊天机器人为例,其输出是自由文本,没有标准答案。为了评估系统的改进,团队通常需要人工审查大量的输出示例。尽管诸如LLM-as-judge等技术有所帮助,但要使其有效,需要对提示、上下文等细节进行精细调整。这进一步加剧了构建evals的难度,使得团队更倾向于依赖人工评估,而非投入精力构建自动化evals。
然而,这种做法并非长久之计。本文建议采用一种不同的evals构建方法,即构建快速、不完整、带有噪声的evals,并在此基础上进行迭代改进。这些evals可以作为人工评估的补充,而非替代品。随着时间的推移,可以通过不断调整评估方法,缩小evals输出与人工判断之间的差距。
具体而言,可以从以下几个方面入手:
- 减少初始示例数量:从5个示例开始,逐步增加。同时,删除过于简单或过于困难,对区分系统版本性能无用的示例。
- 关注关键性能指标:优先评估系统性能的关键维度,或评估与系统性能相关的狭窄线索。例如,在客户支持场景中,可以先评估API调用是否正确,再评估消息生成是否合适。或者,在产品推荐场景中,可以先评估是否推荐了特定产品,再评估推荐的内容是否恰当。
只要evals的输出与整体性能相关,就可以在初期只关注部分指标。这种开发过程包含两个并行迭代循环:
- 系统迭代:通过自动化evals和人工判断相结合,不断优化系统性能。
- evals迭代:不断调整evals,使其更贴近人工判断。
在AI领域,首次尝试往往难以成功。因此,快速构建一个端到端系统,然后迭代改进,是一种常见的做法。这种方法同样适用于构建evals。
一个成功的eval应该满足以下标准:
- 如果系统A明显优于系统B(根据人工判断),则eval应给予系统A更高的评分。
- 如果系统A和系统B的性能相似,则它们的eval评分应相似。
如果一对系统A和B不符合这些标准,则表明eval存在“误差”,需要对其进行调整,以正确地对A和B进行排序。这种理念类似于机器学习算法中的误差分析。不同之处在于,误差分析关注的是算法输出的错误,而evals误差分析关注的是evals对系统排序的错误。
纯粹依赖人工判断是项目起步的好方法。但对于许多团队来说,构建evals的原型并迭代到更成熟的阶段,可以让他们更早地使用evals并加速进展。以下案例说明逐步构建Evals的有效性和价值。
案例一:电商平台的搜索推荐系统
某电商平台最初依赖人工评估其搜索推荐系统的效果。随着业务增长,人工评估的效率越来越低,无法及时反馈系统改进的效果。为了解决这个问题,平台决定引入自动化evals。
- 第一阶段:快速原型
平台首先构建了一个简单的evals原型,只关注推荐结果与用户搜索关键词的相关性。例如,如果用户搜索“连衣裙”,evals会检查推荐结果中是否包含连衣裙相关的商品。这个原型只用了几天时间就完成,虽然简单,但已经可以初步评估推荐系统的效果。
- 第二阶段:迭代优化
在第一阶段的基础上,平台不断迭代优化evals。他们增加了更多的评估指标,例如推荐结果的多样性、销量、用户点击率等。同时,他们也开始使用LLM-as-judge技术,让LLM来评估推荐结果的质量。经过几个月的迭代,evals的准确性和可靠性大大提高,可以有效地指导推荐系统的改进。
- 第三阶段:持续改进
平台并没有停止对evals的改进。他们定期分析evals的结果,找出evals的不足之处,并不断进行优化。例如,他们发现evals对某些特定类型的商品(例如生鲜食品)的评估效果不佳,于是专门针对这些商品进行了优化。通过持续改进,evals始终保持着较高的准确性和可靠性。
案例二:金融行业的智能客服
某银行的智能客服系统最初也依赖人工评估。为了提高评估效率,银行决定引入自动化evals。
- 第一阶段:聚焦关键指标
银行首先确定了智能客服系统最关键的几个指标,例如问题解决率、客户满意度、平均处理时长等。然后,他们构建了一个evals原型,只关注这些关键指标的评估。这个原型虽然简单,但已经可以初步评估智能客服系统的效果。
- 第二阶段:逐步完善
在第一阶段的基础上,银行逐步完善evals。他们增加了更多的评估指标,例如对话流畅度、知识覆盖率、情感识别准确率等。同时,他们也开始使用LLM来模拟用户对话,评估智能客服系统的对话能力。经过一段时间的迭代,evals的评估能力大大提高,可以有效地指导智能客服系统的改进。
- 第三阶段:动态调整
银行意识到,用户的需求是不断变化的,因此evals也需要不断调整。他们定期分析用户的反馈,了解用户的需求变化,并根据这些变化来调整evals的评估指标和权重。通过动态调整,evals始终能够准确地反映用户的需求,并指导智能客服系统的改进。
这些案例表明,构建evals是一个迭代的过程,从小处着手,逐步完善,可以有效地提高评估效率,并指导系统的改进。通过迭代evals,团队可以更早地发现问题,更快地改进系统,从而实现更好的效果。
总之,不要将构建evals视为一项巨大的投资,而应将其视为一个迭代过程。从小处着手,逐步完善,可以帮助团队更早地使用evals,加速项目进展。正如构建AI系统一样,构建evals也需要不断迭代,才能取得最终的成功。
记住,持续构建,不断改进!