基于 LLM 的评分器(LLM 即评委)
LLM 即评委 (LLM-as-a-Judge) 是一种使用大型语言模型来评估 AI 生成回复质量的评估方法。LLM 评委可以评估主观质量,如帮助性和安全性,这些是使用启发式指标难以衡量的。另一方面,LLM 即评委评分器比人工评估更具可扩展性且成本更低。
创建 LLM 评分器的方法
MLflow 提供了不同的方法来使用 LLM 即评委,具有不同的简洁性和控制级别。点击下方的卡片,查看每种方法的详细指南。
基于模板的评分器
简洁性:★★★☆☆ 控制性:★★★★☆
- 最适合:使用自然语言指令创建自定义 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>` 的格式指定。
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 评委)