在快速发展的人工智能世界中,生成式 AI 占据了中心位置,机器学习领域正以前所未有的速度演进。使用 Transformers、Tensorflow 和 PyTorch 等尖端深度学习 (DL) 库来微调这些生成式 AI 模型以增强性能的使用量激增。随着这一趋势加速,显然用于构建这些模型的工具也必须快速发展,特别是在管理和优化这些深度学习工作负载方面。MLflow 为管理这些机器学习项目的复杂性提供了一个实用解决方案。
MLflow 与 MosaicML 和更广泛的 ML 社区合作,非常高兴能发布一套备受期待的增强功能。最新版本(MLflow 2.11)直接响应了 MLflow 爱好者的反馈和需求,引入了更新的跟踪 UI 功能。这些更新不仅是增量的;它们代表了在满足进行深度学习的 MLflow 用户需求方面的飞跃。
增强的深度学习能力的演进证明了 MLflow 对服务开源社区的承诺,确保其产品不仅跟上步伐,而且在快速发展的机器学习领域引领潮流。
深度学习 API 改进
利用来自用户社区的宝贵见解,我们对平台中指标日志记录的有效规模和包含系统相关指标的日志记录实施了关键增强功能。这些改进包括扩展的可伸缩性选项、支持记录更多迭代以及系统指标的日志记录。
系统指标
此功能允许您监控系统指标并识别可能影响性能的任何硬件问题。现在可以在 MLflow UI 中记录和可视化来自集群中所有节点的指标,例如 CPU 利用率、内存使用情况、磁盘使用情况等。
改进的日志记录性能
我们最近引入了异步和批量日志记录,使得记录并行和分布式 DL 训练会话更加容易。此外,MLflow Client 现在支持记录高达 100 万步(迭代)的指标,允许用户在长时间运行的 DL 作业期间记录更多步骤。
深度学习检查点
使用 autologging 时,TensorFlow 和 PyTorch 现在支持模型权重检查点。
用户体验和生产力增强
我们对平台的整体用户体验和功能组织进行了重大改进。这些增强功能包括更复杂的 UI 界面以及直观重新设计的运行详情页、图表分组和指标聚合的添加,所有这些都旨在简化导航并提高生产力,特别是对于深度学习用例。
指标聚合
我们通过指标聚合增强了 UI,使您能够根据数据集、标签或参数跨多个运行聚合指标。这些改进显著缩短了处理大型 DL 模型时理解训练结果所需的时间,能够对跨多个维度的模型性能的整体趋势进行更精细和全面的分析。
图表分组功能
您现在可以轻松地在 MLflow UI 中将您的指标(如训练、测试和系统指标)分类并组织到命名组中。这种组织结构可以全面概览所有指标,实现更快访问和更好管理,特别是在处理具有许多指标的实验时。
斜杠 ("/") 日志记录语法
为了进一步简化指标组织,我们实现了一种新的日志记录语法,使用斜杠 ("/") 对指标进行分组。例如,使用 mlflow.log_metric("x/y/score", 100) 有助于将不同类型的数据或指标结构化和分隔到分层组中,从而更容易导航和解释日志,特别是在处理复杂模型和实验时。
mlflow.log_metric('SVR/val_MAPE', mean_absolute_percentage_error(test_y, pred_y))
图表搜索
我们显著增强了平台内的搜索功能,实现了跨图表、参数和指标更强大和直观的搜索。此升级允许更快更精确地检索特定数据点,从而简化了分析和比较实验不同方面的过程。
运行详情页重新设计
我们将运行详情 UI 重新组织成模块化标签式布局,并添加了新的拖放 UI 功能,因此您现在可以渲染记录的表格。此增强功能将使组织您的运行和实验更加容易。
入门指南更新
根据用户社区的广泛反馈,我们引入了重大更新,以增强 MLflow 中的入门文档。这些更新包括对我们文档的全面改进,以实现更轻松的导航和更丰富的指导,以及流畅的登录 API。这些增强功能反映了我们对改进用户体验和工作流程的承诺,旨在帮助用户更快更轻松地实现更多。
新增教程和文档
我们全面修订了我们的文档,提供更全面、用户友好的体验和实用示例,为新手和有经验的实践者提供启动深度学习项目所需的信息。
使用 mlflow.login() 无缝登录
我们简化了身份验证流程。此方法提供了一种简单的方式将 MLflow 连接到您的跟踪服务器,无需离开您的开发环境。立即试用
立即开始
立即探索最新的 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)
反馈
我们重视您的意见!我们的功能路线图优先级由2023 年底的 MLflow 调查、GitHub 问题和 Slack 中的反馈指导。请关注今年晚些时候的下一次调查,您的参与有助于确保您想要的功能在 MLflow 中得以实现。您也可以在GitHub 上创建问题或加入我们的 Slack。