反馈概念
什么是反馈?
MLflow 中的 反馈 代表了对您的 GenAI 应用程序输出进行的任何质量评估的结果。它提供了一种标准化的方法来捕获评估,无论这些评估是来自自动化系统、LLM 裁判还是人工评审员。
反馈是运行应用程序与理解其质量之间的桥梁,使您能够系统地跟踪不同维度(如正确性、相关性、安全性以及是否遵守指南)上的性能。

附加到跟踪的反馈
用例
人工质量检查
人工质量检查对于确保您的 GenAI 应用程序的质量非常重要。例如,您可以附加一个反馈来指示响应中的幻觉,并比较不同模型之间的质量。
终端用户反馈
来自终端用户的反馈对于提高您的 GenAI 应用程序的质量非常宝贵。通过在跟踪中存储反馈,您可以轻松地随着时间的推移监控应用程序的用户满意度。
LLM 裁判评估
LLM 裁判是系统化地大规模运行质量检查的强大工具。当使用 MLflow 的 GenAI 评估时,来自 LLM 裁判的反馈会附加到跟踪中,使您能够以与人工质量检查相同的方式跟踪评估结果。
协作标注
质量检查通常由多个标注员执行,以确保输出的稳健性。MLflow 会跟踪反馈的元数据和修订历史,并支持聚合来自多个标注员的反馈。
核心结构

反馈通常由不同来源创建,例如人工标注员、LLM 裁判或应用程序中的真实用户反馈。MLflow 中的 Feedback
对象是存储这些信号以及元数据的标准容器,用于跟踪它们的创建方式。反馈与一个跟踪(Trace)或跟踪中的特定跨度(Span)相关联。
反馈对象模式
字段 | 类型 | 描述 |
---|---|---|
name | str | 一个字符串,用于标识正在评估的具体质量方面 |
value | Any | 实际的反馈值,可以是
|
理由 | str | 一个字符串,解释为什么向跟踪提供此反馈。 |
来源 | AssessmentSource | 反馈的来源,由来源类型和 ID 组成。
|
错误 | Optional[AssessmentError] | 与反馈关联的可选错误。这用于指示反馈未成功处理,例如,LLM 裁判执行时发生的异常。 |
metadata | Optional[dict[str, str]] | 与反馈关联的可选键值对。 |
create_time_ms | int | 创建反馈的时间戳,以毫秒为单位。 |
last_update_time_ms | int | 更新反馈的时间戳,以毫秒为单位。 |
trace_id | str | 反馈所附加跟踪的 ID。 |
span_id | Optional[str] | 反馈所附加跨度的 ID,如果它与跟踪中的特定跨度相关联。例如,您可以对 RAG 应用程序中的特定检索器输出提供反馈。 |
反馈示例
响应中幻觉的人工反馈
{
"name": "hallucination",
"value": false,
"rationale": "The response is factual and does not contain any hallucinations.",
"source": {
"source_type": "HUMAN",
"source_id": "john@example.com"
}
}
LLM 裁判对事实准确性的反馈
{
"name": "factual_accuracy",
"value": 0.85,
"rationale": "The response correctly identifies 3 out of 4 key facts about MLflow, but incorrectly states the founding year.",
"source": {
"source_type": "LLM_JUDGE",
"source_id": "openai:/4o-mini"
},
"metadata": {
# Store link to the prompt used for the judge, registered in MLflow Prompt Registry
"judge_prompt": "prompts:factual_accuracy_judge/1"
}
}
LLM 裁判的错误反馈(超出速率限制)
{
"name": "safety",
"error": {
"error_code": "RATE_LIMIT_EXCEEDED",
"error_message": "Rate limit for the judge exceeded.",
"stack_trace": "..."
},
"source": {
"source_type": "LLM_JUDGE",
"source_id": "openai:/4o-mini"
}
}