跳到主要内容

宣布推出 MLflow 3

·阅读时长 6 分钟
MLflow maintainers
MLflow 维护者

开源 MLflow 社区已达成一项重要里程碑。今天,我们发布 **MLflow 3**,它为数百万开发者信赖的机器学习运维平台带来了生产级生成式 AI 功能。

这不仅仅是又一次功能更新。MLflow 3 从根本上扩展了开源机器学习工具的可能性,解决了生成式AI部署中可观测性和质量方面的挑战,这些挑战曾让部署感觉像是一次冒险。

为什么生成式 AI 颠覆了传统 MLOps

传统机器学习遵循可预测的模式。你有带有真实标签的数据集、明确指示成功或失败的指标以及水平扩展的部署管道。生成式 AI 不仅因其强大的功能而具有颠覆性,而且还对质量和稳定性的衡量和保证方式进行了根本性改变。

考虑一个简单的问题:“您如何知道您的 RAG 系统是否正常工作?”在传统机器学习中,您会根据测试集检查准确性。在生成式 AI 中,您需要处理

  • 涉及多个 LLM 调用、检索和工具交互的 **复杂执行流程**
  • **主观的输出质量**,其中“正确”可以代表数十种不同的有效响应
  • 可能成败用户体验的**延迟和成本问题**
  • 当多步推理链中出现问题时**调试噩梦**

目前的解决方案是什么?大多数团队拼凑了来自不同供应商的监控工具、评估脚本和部署管道。结果是工作流程碎片化,关键信息在系统间丢失。

面向生成式 AI 基础设施的不同方法

MLflow 3 采取了不同的方法。我们没有构建另一个专门的生成式 AI 平台,而是扩展了 MLflow 经过实战检验的基础,以处理生成式 AI 的独特需求,同时保持与传统 ML 工作流的兼容性。

这意味着您可以使用相同的工具来检测 Transformer 训练管道和多智能体 RAG 系统,通过相同的注册表进行部署,并通过统一的可观察性基础设施进行监控。

通过 MLflow 追踪实现深度可观察性

MLflow 3 的核心是贯穿整个生成式 AI 生态系统的全面追踪功能。与仅捕获基本输入和输出的日志记录框架不同,MLflow 追踪提供了对复杂执行流程的分层可见性。

import mlflow
from langchain.chains import RetrievalQA
from langchain_community.vectorstores import Chroma

# Instrument your entire application with one line
mlflow.langchain.autolog()

@mlflow.trace(name="customer_support")
def answer_question(question, customer_tier="standard"):
vectorstore = Chroma.from_documents(documents, embeddings)
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(temperature=0),
retriever=vectorstore.as_retriever(search_kwargs={"k": 3}),
return_source_documents=True
)

# Tracing captures the full execution tree automatically
result = qa_chain({"query": question})

# Add business context to traces
mlflow.update_current_trace(
tags={
"customer_tier": customer_tier,
"question_category": classify_question(question)
}
)

return result["result"]

其强大之处在于自动检测。当执行 answer_question() 时,MLflow 追踪会捕获

  • 用于查询处理的初始 LLM 调用
  • 带有嵌入式计算的向量数据库检索
  • 文档排名和选择逻辑
  • 最终答案生成及令牌使用情况
  • 所有中间输入、输出和时间信息
  • 如果发生任何错误,详细而全面的错误消息,包括堆栈跟踪

这创建了一个完整的执行时间线,当出现问题时您可以深入研究。不再需要猜测您的 RAG 系统为何返回不相关的文档或响应时间为何会激增。

系统化的质量评估

传统上,评估生成式 AI 质量意味着无法扩展的手动审查流程。MLflow 3 包含一个全面的评估框架,可以系统地评估质量维度。

评估引擎同时支持直接评估(MLflow 调用您的应用程序以生成新跟踪)和答案表评估(针对预先计算的输出)。您还可以使用 @scorer 装饰器为特定领域的特定要求构建自定义评分器,以完全定制您的评估需求。

应用程序生命周期管理

生成式 AI 应用程序不仅仅是模型——它们是涉及提示、检索逻辑、工具集成和编排代码的复杂系统。MLflow 3 将这些应用程序视为头等工件,可以进行原子化版本控制、注册和部署。

import mlflow.pyfunc

class CustomerServiceBot(mlflow.pyfunc.PythonModel):
def load_context(self, context):
# Load all components of your GenAI application
self.llm = load_model_from_artifacts(context.artifacts["llm_config"])
self.vector_store = initialize_vector_store(context.artifacts["knowledge_base"])
self.prompt_template = load_prompt_template(context.artifacts["prompt_template"])

def predict(self, context, model_input):
# Your application logic
query = model_input["query"][0]
relevant_docs = self.vector_store.similarity_search(query, k=3)

formatted_prompt = self.prompt_template.format(
query=query,
context="\n".join([doc.page_content for doc in relevant_docs])
)

response = self.llm.predict(formatted_prompt)
return {"response": response, "sources": [doc.metadata for doc in relevant_docs]}

# Package and version the complete application
with mlflow.start_run():
model_info = mlflow.pyfunc.log_model(
artifact_path="customer_service_bot",
python_model=CustomerServiceBot(),
artifacts={
"llm_config": "configs/llm_config.yaml",
"knowledge_base": "data/knowledge_embeddings.pkl",
"prompt_template": "prompts/customer_service_v2.txt"
},
pip_requirements=["openai", "langchain", "chromadb"],
signature=mlflow.models.infer_signature(example_input, example_output)
)

# Register in model registry for deployment
registered_model = mlflow.register_model(
model_uri=model_info.model_uri,
name="customer_service_bot",
tags={"version": "v2.1", "eval_score": "0.87"}
)

这种方法确保了当您部署客户服务机器人的 2.1 版本时,您部署的是与您测试的完全相同的模型权重、提示、检索逻辑和依赖项的组合。不再有“在开发环境中有效”的部署意外情况。

增强的传统机器学习和深度学习

尽管生成式 AI 功能是主要亮点,但 MLflow 3 对传统机器学习和深度学习工作流进行了重大改进

**增强的模型注册表**:处理生成式 AI 应用程序的相同版本控制和部署基础架构现在为所有模型类型提供了更好的血缘跟踪。深度学习从业者受益于改进的检查点管理和实验组织。

**统一的评估框架**:评估系统超越了生成式 AI,支持计算机视觉、NLP 和表格数据模型的自定义指标。团队现在可以跨不同模型类型标准化评估流程。

**改进的部署工作流**:质量门和自动化测试功能适用于任何 MLflow 模型,无论是 scikit-learn 分类器还是多模态基础模型。

立即开始

MLflow 3 现已推出,旨在与您现有的 ML 基础设施协同工作。以下是入门方法

安装和设置

pip install -U mlflow

初步步骤

import mlflow

# Create your first GenAI experiment
mlflow.set_experiment("my_genai_prototype")

# Enable automatic tracing for openai (choose any tracing integration to enable auto-tracing for any of the 20+ supported tracing integrations)
mlflow.openai.autolog()

# Your existing GenAI code will now generate traces automatically
# No additional instrumentation required for supported libraries

未来之路

MLflow 3 代表着使生成式 AI 开发更系统化、更可靠的重大一步。但这仅仅是个开始。开源社区将通过新的集成、评估指标和部署模式继续推动创新。

如何参与

  • **贡献代码**:我们欢迎各种规模的贡献,从错误修复到新集成
  • **分享用例**:通过记录您的 MLflow 实施情况来帮助他人学习
  • **报告问题**:通过报告错误和请求功能来帮助我们改进
  • **参与讨论**:参与技术讨论和路线图规划

人工智能开发的未来是统一的、可观察的和可靠的。MLflow 3 今天为开源社区带来了这个未来。


**准备好试用 MLflow 3 吗?** 查阅完整文档,了解其潜力。

MLflow 是一个 Apache 2.0 许可证下的开源项目,由全球 ML 社区的贡献者构建而成。