重要
此功能目前以公共预览版提供。
AI 运行时原生集成了 MLflow,用于实验跟踪,并内置了 GPU 资源面板,用于监控利用率、内存占用和温度。 使用 MLflow 记录指标和运行,在笔记本和 MLflow UI 中查看训练输出,将模型检查点保存到 Unity 目录卷,并在代码运行时跟踪 GPU 运行状况。
MLflow 集成
AI 运行时以本机方式与 MLflow 集成,用于试验跟踪、模型日志记录和指标可视化。
设置建议:
将 MLflow 升级到版本 3.7 或更高版本,并遵循 深度学习工作流模式。
为 PyTorch Lightning 启用自动记录:
import mlflow mlflow.pytorch.autolog()通过将模型训练代码封装在
mlflow.start_run()API 作用域内,自定义 MLflow 运行名称。 这样你就可以控制运行名称,并能够从以前的运行中重启。可以使用run_name参数在mlflow.start_run(run_name="your-custom-name")中或在支持 MLflow 的第三方库(例如 Hugging Face Transformers)中自定义运行名称。 否则,默认运行名称为jobTaskRun-xxxxx。from transformers import TrainingArguments args = TrainingArguments( report_to="mlflow", run_name="llama7b-sft-lr3e5", # <-- MLflow run name logging_steps=50, )使用无服务器 GPU API 时,每次调用
.distributed()都会自动创建 MLflow 试验运行。 如果在活动的 MLflow 运行内调用,则会在活动父项下创建嵌套的子运行。import mlflow with mlflow.start_run() as outer_run: ... run_train.distributed() # creates a nested child run under outer_run若要自定义所使用的
.distributed()试验,请调用mlflow.set_experiment()之前调用.distributed()或设置MLFLOW_EXPERIMENT_NAME环境变量。 默认试验名称为/Users/{WORKSPACE_USER}/{notebook-name}. 始终使用绝对路径。import mlflow mlflow.set_experiment("/Users/<username>/my-experiment") run_train.distributed()Alternatively:
import os os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"若要恢复以前的 MLflow 运行,请使用
mlflow.start_run(run_id="<previous-run-id>")。若要使用
.distributed()恢复之前的 MLflow 运行,请在调用它之前设置MLFLOW_RUN_ID:os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>" run_train.distributed()将
step中的MLFlowLogger参数设置为合理的批次数。 MLflow 有 1000 万指标步骤的限制,因此在大型训练运行中记录每一个批次可能会达到此限制。 请参阅资源限制。
查看日志
- 笔记本输出:训练代码的标准输出和错误显示在笔记本单元输出中。
- MLflow 日志:MLflow 试验 UI 显示训练指标、参数和项目。
模型检查点
对于分布式训练,使用Torch serverless_gpu.data.UCVolumeWriter(DCP)API和存储后端,将模型和优化器状态保存到serverless_gpu.data.UCVolumeReader中。 异步保存,这样训练在检查点上传时继续,并且检查点足够频繁,以减少中断后丢失的工作量。 因为模型检查点不会捕捉数据流水线的位置,也要检查你的数据流水线,这样恢复运行会继续对正确的数据进行。
完整的检查点模式请参见 “提升AI运行时的训练性能和韧性”。
监视 GPU 资源
在 AI 运行时上运行代码时,使用 GPU 资源 窗格监视 GPU 运行状况和利用率。 该窗格支持单节点工作负荷和多节点工作负荷。
若要打开窗格,请将笔记本连接到 AI 运行时,然后单击右侧窗格中的 GPU 资源。
该窗格显示每个 GPU 的以下指标:
- GPU 利用率百分比
- GPU 内存使用情况
- 温度
该窗格每 10 秒轮询一次指标,最多保留 2 小时的历史记录。 单击“ 刷新 以立即提取最新值。 处于非活动状态 5 分钟后,窗格将暂停;重新打开它以恢复监视。
多用户协作
- 为了确保所有用户都可以访问共享代码(例如帮助程序模块或环境 YAML 文件),请将它们存储在其中
/Workspace/Shared,而不是用户特定的文件夹,例如/Workspace/Users/<your_email>/。 - 对于处于活动开发中的代码,请使用特定于用户的文件夹中
/Workspace/Users/<your_email>/的 Git 文件夹并推送到远程 Git 存储库。 这样,多个用户就可以拥有特定于用户的克隆和分支,同时仍使用远程 Git 存储库进行版本控制。 请参阅有关在 Databricks 上使用 Git 的 最佳做法 。 - 协作者可以共享笔记本并发表评论。
Azure Databricks 中的全局限制
请参阅资源限制。