为什么智能体评测基准这么难建?

要可靠地改进智能体,你需要一个好的基准来反复运行智能体。这样才能识别性能回退、找到可改进的地方,并确保你能基于真实指标持续迭代。但构建一个好的基准并不容易。基准里的每个任务都需要有代表性的输入、尽量贴近真实世界的环境,以及一套对齐的评分标准来给结果打分。创建一个任务就要投入大量时间、精力和人工对齐,更不用说构建一整个数据集了。

打开网易新闻 查看精彩图片

LangChain 团队一直在思考如何创建更好的评测,而更可靠、更高效地生成有代表性的基准是其中的关键部分。过去几个月,他们迭代出一套流程来帮助解决这个问题。最终目标是产出一个经过审核的高质量任务数据集,用来评估、爬山式优化或后训练智能体。

两步流水线:从原始材料到可运行任务

这篇实践指南展示的是 LangChain 如何创建合成智能体环境和任务。最终形成的是一个两步流水线。第一步接收轨迹、代码和/或人工输入,构建一份详细的任务规格说明。第二步接收这份规格说明,创建评测任务以及该任务对应的环境。为了做到这一点,他们创建了一个“世界规格”,用来承载共享知识、脚本和重要定义。整个过程非常强调迭代。

LangChain 内部创建的任务类型包括多种场景。为了大规模生成这些任务,他们发现最高效的方式是构建一条流水线来生产任务。这条流水线的核心是一个“规格说明”的概念。规格说明是一个 markdown 文件,用自然语言描述任务的样子,包括输入、环境和评分器。根据你要构建的数据集不同,它可能包含不同的章节或必需信息。

规格说明如何分离关注点

拥有规格说明这个概念的好处在于,它把任务创建流程中的不同环节分离开来。团队可以把“理解任务应该是什么”和“把任务实际构建出来”这两件事解耦。这样不同的人或流程可以分别负责不同阶段,也让整个构建过程更容易迭代和复用。

LangChain 把这一整套流程打包进了一个更新版的评测工程技能中,让每个团队都能自己掌握这套流程。核心术语包括:智能体是使用大语言模型决定应用控制流的系统;环境是智能体运行的地方;评分标准是判断智能体一次运行输出的一组准则;任务由输入、环境和测试脚本组成;数据集是任务的集合,也叫基准;评测是在数据集上运行智能体以获得分数;Harbor 是定义任务与数据集并运行评测的框架;轨迹是智能体输入和运行路径的详细信息;任务规格是用自然语言描述任务的详细说明;世界规格是项目特定信息、脚本、辅助函数或其他可用于帮助创建规格或把规格转化为任务的材料。

从轨迹、代码和人工输入到世界规格

这个流水线的第一步,是把轨迹、代码和/或人工输入整合成一份详细规格。轨迹提供了智能体实际运行时的输入和路径信息,代码提供了可复用的逻辑和脚本,人工输入则补充了人类对任务目标和评判标准的理解。三者结合后,团队可以写出一份足够详细、能够指导后续任务创建的自然语言规格。

第二步是把这份规格转化为一个评测任务和对应的环境。这里的关键是“世界规格”。世界规格保存了项目特定的共享知识、脚本、辅助函数和其他材料。它既可以帮助创建规格,也可以帮助把规格转化为任务。通过维护一个统一的世界规格,团队可以避免在多个任务之间重复定义相同的内容,也能保证不同任务在环境和评判标准上的一致性。

为什么这个过程必须高度迭代

LangChain 强调这个过程非常迭代。原因在于,从原始材料到高质量任务之间往往存在差距。第一版规格可能遗漏了某些边界条件,或者环境与真实世界之间还有偏差。通过反复运行、观察智能体表现、收集反馈并更新规格和世界规格,团队才能逐步逼近一个经过审核的高质量任务。

这种迭代也体现在评测工程技能的更新上。LangChain 把他们的流程打包成技能,让每个团队都能拥有这套流程,而不是只有核心团队才能操作。这意味着更多团队可以在自己的项目里复用同样的方法,根据自己的数据和场景调整规格结构、世界规格内容以及任务生成方式。

这套流程最终服务于什么

最终目标是获得一个高质量、经过审核的任务数据集。这些任务可以用来评估智能体、做爬山式优化,或者对智能体进行后训练。评估能给出分数,帮助团队识别回退;爬山式优化可以基于分数不断调整智能体;后训练则可能把任务数据用于进一步训练。无论哪种用途,前提都是任务本身要有代表性、环境要贴近真实、评分标准要对齐。

LangChain 的实践表明,构建评测基准的核心不只是写更多任务,而是建立一条可复用、可迭代的流水线。规格说明和世界规格这两个概念,把任务定义和任务构建分离开来,让团队可以更高效地协作。更新后的评测工程技能则把这种方法打包,让每个团队都能自己掌握从轨迹、代码和人工输入到评测任务与环境的完整流程。