评估 (evals) 对于将可靠的 LLM 驱动的应用程序或代理投入生产至关重要,但在从头开始构建评估时,可能很难知道从哪里开始。我们的新软件包——openevals 和 agentevals——提供了一组评估器和一个通用框架,您可以轻松上手。
什么是 evals?
Evals 提供系统的方法来根据对您的应用程序重要的标准判断 LLM 输出质量。 Evals 有两个组成部分:您正在评估的数据和您正在评估的指标。
您正在评估的数据的质量和多样性直接影响评估反映真实世界使用情况的程度。在创建评估之前,花一些时间为您特定的用例策划数据集——您只需要少量高质量的数据点即可开始。阅读更多关于数据集策划的信息 此处。
您评估的指标通常也是自定义的,具体取决于您的应用程序的目标,但是,我们看到了使用的评估类型的常见趋势。这就是我们构建 openevals 和 agentevals 的原因——分享预构建的解决方案,展示常见的评估趋势和最佳实践,以帮助您入门。
常见评估类型和最佳实践
评估类型有很多,但首先,我们专注于发布我们认为最常用且实用的评估技术。我们正在通过两种方式来实现这一点
- 使广泛适用的评估器易于自定义: LLM-as-a-judge evals 是最广泛适用的评估器。
openevals
使您可以轻松地采用预构建的示例并针对您的特定用例进行自定义。 - 为特定用例制作评估器:用例的数量是无限的,但我们将为最常见的用例构建现成的评估。首先,
openevals
和angentevals
涵盖了应用程序中的案例,在这些案例中,您从文档中提取结构化内容,管理工具调用和代理轨迹。我们计划扩展库,以包含更多特定技术,具体取决于应用程序类型(例如,特定于 RAG 应用程序或多代理架构的 evals)。
LLM-as-a-judge evals
LLM-as-judge 评估器使用 LLM 对您的应用程序的输出进行评分。这些是我们看到的最常见的评估器类型,因为它们主要在评估自然语言输出时使用。
评估时使用
- 聊天机器人响应的对话质量
- 测试摘要或问答系统中的幻觉
- 写作质量和连贯性
重要的是,LLM-as-judge 评估可以是无参考的,允许您客观地判断响应,而无需ground truth答案。
openevals
如何提供帮助
- 您可以轻松自定义的预构建入门提示
- 结合少量示例,以更好地与人类偏好保持一致
- 简化设置评分模式以进行一致评估的过程
- 生成推理注释,说明为何给出特定分数,从而提高评估过程的透明度
查看示例并开始使用 LLM-as-a-judge 评估器 此处。
结构化数据 Evals
许多 LLM 应用程序涉及从文档中提取结构化输出或生成用于工具调用的结构化输出。对于这些情况,模型的输出符合预定义的格式非常重要。
评估时使用
- 从 PDF、图像或其他文档中提取的结构化信息
- 格式一致的 JSON 或其他结构化输出
- 验证工具调用的参数(例如,API 调用)
- 确保输出与特定格式匹配或属于某个类别
openevals
如何提供帮助
openevals
提供配置完全匹配或使用 LLM-as-a-judge 来验证结构化输出的能力- 可选地,聚合跨反馈键的分数,以获得评估器性能的高级视图
查看示例并开始使用结构化数据评估器 此处。
代理评估:轨迹评估
在构建代理时,您通常不仅对最终输出感兴趣,还想了解代理如何达到该结果。轨迹评估评估代理为完成任务而采取的一系列操作。
评估时使用
- 工具或工具序列选择
- LangGraph 应用程序的轨迹
agentevals
如何提供帮助
- 代理轨迹 允许您检查您的代理是否正在调用正确的工具(可选地具有严格的顺序),或使用 LLM-as-a-judge 来评估轨迹
- 如果您正在使用 LangGraph,您可以使用 Graph 轨迹 来确保您的代理正在调用正确的节点
查看示例并开始使用代理评估 此处。
使用 LangSmith 跟踪随时间推移的结果
为了随时间推移跟踪评估并与团队共享,我们建议将结果记录到 LangSmith。 Elastic、Klarna 和 Podium 等公司使用 LangSmith 来评估他们的 GenAI 应用程序。
LangSmith 包括跟踪、评估和实验工具,以帮助您构建生产级 LLM 应用程序。访问我们的指南,了解如何将 openevals 或 agentevals 与 LangSmith 集成。
更多内容即将推出!
这仅仅是我们为编纂不同类型应用程序评估的最佳实践而持续努力的开始。在接下来的几周内,我们将为常见用例添加更多特定的评估器,以及更多用于测试代理的评估器。
有想要看到的评估器的想法吗?在我们的 GitHub 存储库 (openevals 和 agentevals) 上打开一个 issue。如果您开发了对您的应用程序效果良好的评估器,我们欢迎 pull request 与社区分享它们。