跳到主要内容

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

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

在人工智能快速发展的世界中,生成式人工智能已占据中心地位,机器学习领域正以史无前例的速度发展。尖端深度学习(DL)库(如 TransformersTensorflowPyTorch)的使用激增,以微调这些生成式人工智能模型以提高性能。随着这一趋势的加速,显然用于构建这些模型的工具也必须快速发展,尤其是在管理和优化这些深度学习工作负载方面。MLflow 为管理这些机器学习项目的复杂性提供了一个实用解决方案。

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

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

深度学习 API 改进

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

系统指标

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

System Metrics

改进日志性能

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

Parallel Runs

深度学习检查点

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

DL Checkpointing

用户体验和生产力增强

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

指标聚合

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