评分器通过分析输出并生成结构化反馈来评估 GenAI 应用质量。 相同的记分器可用于开发中的评估,并可以重复用于在生产中监测。
MLflow 提供两种类型的记分器:
- LLM 评委 - 利用大型语言模型评估细微差别的质量标准,例如相关性、安全性和正确性。 这些包括: - 内置 LLM 评估器 - 预先配置的评估器用于常见质量指标
- 自定义 LLM 法官 - 根据需求创建的面向特定领域的裁判
 
- 基于代码的记分器 - 确定性评分器,这些评分器对延迟、令牌使用情况和精确匹配等指标使用编程逻辑: - 基于代码的自定义评分器 - 用于计算特定指标的 Python 函数
 
下面的 MLflow UI 屏幕截图演示了内置 LLM 法官 Safety 和自定义评分器的 exact_match输出:
               
              
            
下面的代码片段使用 mlflow.genai.evaluate() 计算这些指标,然后为生产监控注册相同的记分器。
import mlflow
from mlflow.genai.scorers import Safety, ScorerSamplingConfig, scorer
from typing import Any
@scorer
def exact_match(outputs: str, expectations: dict[str, Any]) -> bool:
    # Example of a custom code-based scorer
    return outputs == expectations["expected_response"]
# Evaluation during development
eval_results = mlflow.genai.evaluate(
    data=eval_dataset,
    predict_fn=my_app,
    scorers=[Safety(), exact_match]
)
# Production monitoring - same scorers!
registered_scorers = [
  Safety().register(),
  exact_match.register(),
]
registered_scorers = [
    reg_scorer.start(
        sampling_config=ScorerSamplingConfig(sample_rate=0.1)
    )
    for reg_scorer in registered_scorers
]
后续步骤
- 使用内置的 LLM 评审工具 - 通过内置的 LLM 评审工具快速评估您的应用程序
- 设计自定义的 LLM 法官 - 为您的特定应用自定义 LLM 法官
- 创建自定义基于代码的评分器 - 生成基于代码的评分器,包括可能的输入、输出和错误处理
- 
              评估工具 - 了解 mlflow.genai.evaluate()如何使用 LLM 判断器和基于代码的打分器
- GenAI 的生产监控 - 部署 LLM 评审者和基于代码的评分器进行连续监控