跳到主要内容

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

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

在人工智能快速发展的世界中,生成式 AI 占据了中心舞台,机器学习的格局正以前所未有的速度演变。人们对使用尖端的深度学习 (DL) 库(如 TransformersTensorflowPyTorch)进行这些生成式 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

运行详情重新设计

我们将 Run Details UI 重新组织为模块化的分Tab布局,添加了新的拖放 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