跳到主要内容

宣布 MLflow 增强功能 - 使用 MLflow 进行深度学习(第一部分)

·阅读时长 6 分钟
Abe Omorogbe
Databricks 机器学习产品经理
Hubert Zub
Databricks 软件工程师
Yun Park
Databricks 软件工程师
Chen Qian
Databricks 软件工程师
Jesse Chan
Databricks 软件工程师

在快速发展的人工智能世界中,生成式 AI 已成为焦点,机器学习领域正以前所未有的速度演进。像 TransformersTensorflowPyTorch 这样的前沿深度学习(DL)库在微调生成式 AI 模型以提升性能方面得到了广泛应用。随着这一趋势的加速,很明显,用于构建这些模型的工具也必须快速发展,尤其是在管理和优化这些深度学习工作负载方面。MLflow 为管理这些机器学习项目的复杂性提供了实用的解决方案。

MLflow 与 MosaicML 及更广泛的 ML 社区合作,很高兴地推出了一系列备受期待的增强功能。本次最新发布(MLflow 2.11)根据 MLflow 爱好者的 反馈 和需求,引入了更新的跟踪 UI 功能。这些更新不仅仅是渐进式的;它们代表了在满足深度学习 MLflow 用户需求方面的一大飞跃。

增强的深度学习功能的发展,是 MLflow 致力于服务开源社区的证明,确保其产品不仅跟上步伐,而且在快速发展的机器学习领域引领步伐。

深度学习 API 改进

通过借鉴用户社区的宝贵见解,我们在指标日志记录的有效规模和平台内系统相关指标日志记录的包含方面进行了关键性增强。这些改进包括扩展的可伸缩性选项、支持日志记录更多迭代以及系统指标的日志记录。

系统指标

此功能允许您监控系统指标并识别可能影响性能的任何硬件问题。现在,您可以在 MLflow UI 中记录和可视化集群中所有节点的 CPU 利用率、内存使用量、磁盘使用量等指标。

System Metrics

改进的日志记录性能

我们最近引入了异步和批量日志记录,使得日志记录并行和分布式 DL 训练会话更加容易。此外,MLflow 客户端现在支持高达 100 万 步(迭代)的指标日志记录,允许用户在长时间运行的 DL 作业中记录更多步骤。

Parallel Runs

深度学习的检查点

在使用自动日志记录时,TensorFlowPyTorch 现在支持模型权重检查点。

DL Checkpointing

用户体验和生产力增强

我们在平台的用户体验和功能组织方面进行了实质性改进。这些增强功能包括更复杂的用户界面、运行详细信息页面的直观重新设计、图表分组和指标聚合的添加,所有这些都旨在简化导航并提高生产力,尤其是在深度学习用例中。

指标聚合

我们通过指标聚合增强了 UI,使您能够根据数据集、标签或参数跨多个运行聚合指标。这些改进显著缩短了在处理大型 DL 模型时理解训练结果所需的时间,从而能够对跨多个维度的模型性能总体趋势进行更细致、更全面的分析。

DL Metric Aggregation

图表分组功能

现在,您可以在 MLflow UI 中轻松地将您的指标(例如训练、测试和系统指标)分类并组织到命名组中。这种组织方式可以全面了解所有指标,从而能够更快地访问和更好地管理,尤其是在处理具有许多指标的实验时。

DL Chart Grouping

斜杠(“/”)日志记录语法

为了进一步简化指标组织,我们实现了一种新的日志记录语法,该语法使用斜杠(“/”)来对指标进行分组。例如,使用 mlflow.log_metric("x/y/score", 100) 有助于将不同类型的数据或指标结构化和分离到分层组中,从而更容易导航和解释日志,尤其是在处理复杂模型和实验时。


mlflow.log_metric('SVR/val_MAPE', mean_absolute_percentage_error(test_y, pred_y))

DL Slash Logging

图表搜索

我们显著增强了平台内的搜索功能,实现了跨图表、参数和指标进行更强大、更直观的搜索。此升级允许更快、更精确地检索特定数据点,从而简化了分析和比较实验不同方面的过程。

DL Chart Searching

运行详情重新设计

我们将运行详细信息 UI 重新组织为模块化的选项卡式布局,并添加了新的拖放 UI 功能,以便您可以渲染已记录的表格。此增强功能将使组织您的运行和实验更加容易。

DL Run Details Redesign

入门更新

在收到用户社区的广泛反馈后,我们对 MLflow 中的入门文档进行了重大更新。这些更新包括对文档进行全面的审查以方便导航和增强的指导,以及简化的登录 API。这些增强功能体现了我们致力于改善用户体验和工作流程的承诺,旨在使我们的用户能够更快、更轻松地取得更多成就。

新的教程和文档

我们对文档进行了全面改进,以提供更全面、用户友好的体验,并提供实用的示例,为新手和经验丰富的实践者提供开始深度学习项目所需的信息。

Deep Learning Docs

使用 mlflow.login() 无缝登录

我们简化了身份验证流程。此方法提供了一种简单的方式来连接 MLflow 到您的跟踪服务器,而无需离开开发环境。立即尝试

Login Update

立即开始

立即深入了解最新的 MLflow 更新,并改善您管理机器学习项目的方式!凭借我们最新的增强功能,包括高级指标聚合、自动捕获系统指标、直观的功能分组和简化的搜索功能,MLflow 将把您的数据科学工作流程提升到新的高度。立即开始使用 MLflow 的尖端工具和功能

pip install mlflow==2.11

mlflow ui --port 8080
import mlflow

from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes
from sklearn.ensemble import RandomForestRegressor

# Set our tracking server uri for logging
mlflow.set_tracking_uri(uri="http://127.0.0.1:8080")

mlflow.autolog()

db = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(db.data, db.target)

rf = RandomForestRegressor(n_estimators=100, max_depth=6, max_features=3)
# MLflow triggers logging automatically upon model fitting
rf.fit(X_train, y_train)

反馈

我们重视您的意见!我们的功能路线图的优先级是根据MLflow 2023 年末调查GitHub IssueSlack 的反馈来确定的。请关注我们今年晚些时候的下一次调查,通过参与,您可以帮助确保您想要的功能在 MLflow 中得到实现。您也可以在 GitHub 上创建一个 issue 或加入我们的 Slack