模型评估
发挥自动化的力量
在不断发展的机器学习领域中,模型开发的评估阶段一如既往地重要。确保模型的准确性、可靠性和效率至关重要,以确保经过训练的模型在进入开发阶段之外的推广之前得到尽可能彻底的验证。
然而,手动评估可能繁琐、容易出错且耗时。
MLflow 正面应对这些挑战,提供一套自动化工具,简化评估流程,节省时间并提高准确性,帮助您确信您花费大量时间开发的解决方案能够满足您尝试解决的问题的需求。
LLM 模型评估
大型语言模型(LLM)的兴起,如 ChatGPT,已经改变了文本生成的格局,在问答、翻译和文本摘要等领域找到了应用。然而,评估 LLM 带来了独特的挑战,主要是因为通常没有单一的地面真理(ground truth)可供比较。MLflow 的评估工具专为 LLM 定制,确保简化且准确的评估流程。
主要特点:
-
多样化的模型评估:MLflow 支持评估各种类型的 LLM,无论是 MLflow pyfunc 模型、指向已注册 MLflow 模型的 URI,还是代表您模型的任何 Python 可调用对象。
-
全面的指标:MLflow 为 LLM 评估提供了一系列指标。从依赖 OpenAI 等 SaaS 模型进行评分的指标(例如,
mlflow.metrics.genai.answer_relevance()
)到基于函数的逐行指标,如 Rougemlflow.metrics.rougeL()
、Flesch Kincaidmlflow.metrics.flesch_kincaid_grade_level()
或 Bleumlflow.metrics.bleu()
。 -
预定义指标集合:根据您的 LLM 用例,MLflow 提供预定义的指标集合,例如“问答”或“文本摘要”,从而简化评估过程。
-
自定义指标创建:除了预定义指标外,MLflow 还允许用户创建自定义 LLM 评估指标。无论您是想评估回复的专业性还是任何其他自定义标准,MLflow 都提供了定义和实现这些指标的工具。
-
使用静态数据集进行评估:从 MLflow 2.8.0 开始,您可以评估静态数据集而无需指定模型。当您将模型输出保存在数据集中并希望快速评估而无需重新运行模型时,这尤其有用。
-
集成结果视图:MLflow 的
mlflow.evaluate()
返回全面的评估结果,可以直接在代码中或通过 MLflow UI 查看,以获得更直观的表示。
利用这些功能,MLflow 的 LLM 评估工具消除了评估大型语言模型相关的复杂性和模糊性。通过自动化这些关键的评估任务,MLflow 确保用户可以自信地评估其 LLM 的性能,从而在部署和应用这些模型时做出更明智的决策。
LLM 模型评估指南和教程
要了解如何利用 MLflow 的评估功能进行您的 LLM 项目工作,请参阅以下教程:
了解如何使用 MLflow Evaluate 评估检索增强生成 (Retrieval Augmented Generation) 设置
查看一个关于如何评估 LLM 问答解决方案质量的实际示例
了解如何为 RAG 生成问题以及如何使用 MLflow 评估 RAG 解决方案
传统机器学习评估
传统的机器学习技术,从分类到回归,一直是许多行业的基石。MLflow 认识到它们的重要性,并提供为这些经典技术量身定制的自动化评估工具。
主要特点:
-
评估函数:要获得即时结果,您可以直接评估 Python 函数而无需记录模型。当您想要快速评估而无需记录的开销时,这尤其有用。
-
评估数据集:MLflow 还支持评估静态数据集而无需指定模型。当您已将模型输出保存在数据集中并希望快速评估而无需重新运行模型推理时,这非常宝贵。
-
评估模型:使用 MLflow,您可以为指标设置验证阈值。如果模型与基线相比未达到这些阈值,MLflow 将会提醒您。这种自动化验证确保只有高质量的模型才能进入下一阶段。
-
常见指标和可视化:MLflow 自动记录常见指标,如准确率 (accuracy)、精确率 (precision)、召回率 (recall) 等。此外,还会自动记录混淆矩阵 (confusion matrix)、提升曲线图 (lift_curve_plot) 等可视化图表,提供模型性能的全面视图。
-
SHAP 集成:MLflow 与 SHAP 集成,在使用评估 API 时,可以自动记录 SHAP 的重要性汇总验证可视化。