LLM 法官和得分员

评分器通过分析输出并生成结构化反馈来评估 GenAI 应用质量。 相同的记分器可用于开发中的评估,并可以重复用于在生产中监测

MLflow 提供两种类型的记分器:

  • LLM 评委 - 利用大型语言模型评估细微差别的质量标准,例如相关性、安全性和正确性。 这些包括:

  • 基于代码的记分器 - 确定性评分器,这些评分器对延迟、令牌使用情况和精确匹配等指标使用编程逻辑:

下面的 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
]

后续步骤