基于LLM的评分器 (LLM-as-a-Judge)
LLM-as-a-Judge 是一种评估方法,它使用大型语言模型来评估 AI 生成响应的质量。LLM 裁判可以评估主观质量,如有用性和安全性,这些质量很难用启发式指标来衡量。另一方面,LLM-as-a-Judge 评分器比人工评估更具可扩展性,也更具成本效益。
创建 LLM 评分器的方法
MLflow 提供了不同的方法来使用 LLM-as-a-Judge,具有不同的简单性和控制级别。点击下方的卡片,查看每种方法的详细指南。
基于模板的评分器
简单性: ★★★☆☆ 控制性: ★★★★☆
- 最适合: 使用自然语言指令创建自定义 LLM 裁判。包括内置版本控制和人类反馈对齐。
- 工作原理: 使用纯英文中的模板变量 (
inputs,outputs,expectations) 定义评估标准。MLflow 可以通过人类反馈自动优化裁判模板以提高准确性。 - 需要: MLflow >= 3.4.0
基于指南的评分器
简单性: ★★★★☆ 控制性: ★★★☆☆
- 最适合: 基于一组简单的自然语言标准进行的评估,这些标准被视为通过/失败条件。非常适合检查是否符合规则、风格指南或信息包含/排除。
- 工作原理: 您提供一组纯语言规则,这些规则引用您应用程序的特定输入或输出,例如“响应必须礼貌”。然后,LLM 确定指南是否通过或失败,并提供理由。您可以将其视为基于提示的裁判的简化版本。
预定义评分器
简单性: ★★★★★ 控制性: ★☆☆☆☆
- 最适合: 使用几行代码快速尝试 MLflow 的 LLM 评估功能。
- 工作原理: 从 Correctness、RetrievalGroundedness 等内置类列表中进行选择。MLflow 使用预定义的提示模板为裁判构建输入。
选择 Judge 模型
默认情况下,MLflow 将使用 **OpenAI 的 GPT-4o-mini** 模型作为裁判模型。您可以通过在评分器定义中的 model 参数中传递一个覆盖来更改裁判模型。模型必须以 <provider>:/<model-name> 的格式指定。
python
from mlflow.genai.scorers import Correctness
Correctness(model="openai:/gpt-4o-mini")
Correctness(model="anthropic:/claude-4-opus")
Correctness(model="google:/gemini-2.0-flash")
支持的模型
MLflow 支持所有主要的 LLM 提供商
- OpenAI / Azure OpenAI
- Anthropic
- Amazon Bedrock
- Cohere
- Together AI
- LiteLLM 支持的任何其他提供商,例如 Google Gemini、xAI、Mistral 等。
要使用 LiteLLM 集成的模型,请通过运行 pip install litellm 来安装 LiteLLM,并以与原生支持的提供商相同的格式指定提供商和模型名称,例如 gemini:/gemini-2.0-flash。
信息
在 Databricks 中,默认模型设置为 Databricks 的研究支持的 LLM 裁判。
选择适合您的裁判的 LLM
LLM 模型的选择对裁判的性能和成本有显著影响。以下是根据您的开发阶段和用例提供的指导
早期开发阶段 (内部循环)
- 推荐: 从 GPT-4o 或 Claude Opus 等强大模型开始
- 原因: 当您刚开始代理开发之旅时,您通常缺乏
- 特定于用例的评分标准
- 用于优化的标记数据
- 好处: 更智能的模型可以深入探索追踪,识别模式,并帮助您了解系统中的常见问题
- 权衡: 成本较高,但在开发过程中评估量较低,因此可以接受
生产和扩展阶段
- 推荐: 转换为具有更智能优化器的更小模型 (GPT-4o-mini, Claude Haiku)
- 原因: 当您转向生产时
- 您已经收集了标记数据并确定了评分标准
- 成本成为规模化生产的关键因素
- 您可以使用更强大的优化器来调整较小的裁判
- 方法: 使用较小的裁判模型搭配强大的优化器模型 (例如,使用 Claude Opus 优化器对齐的 GPT-4o-mini 裁判)