跳到主要内容

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

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

在快速发展的人工智能世界中,生成式AI已成为焦点,机器学习领域正以前所未有的速度演进。尖端深度学习 (DL) 库,如 TransformersTensorFlowPyTorch,已被大量用于微调这些生成式AI模型以提高性能。随着这一趋势的加速,构建这些模型所使用的工具也必须迅速发展,尤其是在管理和优化深度学习工作负载方面。MLflow 为管理这些机器学习项目的复杂性提供了实用解决方案。

MLflow 与 MosaicML 以及更广泛的机器学习社区合作,欣然推出一系列备受期待的增强功能。此最新版本(MLflow 2.11)直接响应MLflow爱好者的反馈和需求,引入了更新的跟踪用户界面功能。这些更新不仅仅是增量式的;它们代表着在解决深度学习MLflow用户需求方面的一次飞跃。

增强的深度学习功能的演进证明了 MLflow 致力于服务开源社区的承诺,确保其产品不仅跟上步伐,更在快速发展的机器学习领域中引领潮流。

深度学习API改进

借鉴用户社区的宝贵见解,我们对平台中指标日志记录的有效规模以及系统相关指标日志记录的纳入实施了关键增强。这些改进包括扩展的可伸缩性选项、支持记录更多迭代以及系统指标的记录。

系统指标

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

System Metrics

改进的日志记录性能

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

Parallel Runs

深度学习检查点

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

DL Checkpointing

用户体验和生产力增强

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

指标聚合

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

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

运行详情页重新设计

我们将运行详情用户界面重新组织为模块化选项卡布局,并添加了新的拖放用户界面功能,以便您现在可以呈现已记录的表格。这一增强功能将使您更轻松地组织运行和实验。

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 IssuesSlack 的反馈指导。请关注我们今年晚些时候的下一次调查,您的参与将有助于确保您想要的功能在 MLflow 中得以实现。您也可以在GitHub 上创建问题加入我们的 Slack