Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
AI Runtime интегрируется с MLflow для обеспечения инструментов отслеживания экспериментов, наблюдаемости и отладки. MLflow предоставляет единое место для параметров, метрик, метрик системы GPU, журналов и артефактов запуска, независимо от того, работаете ли вы в блокноте, отправляете задачу через databricks air CLI или планируете задание.
Что предоставляет MLflow
Эксперимент MLflow объединяет связанные обучающие запуски, и каждый запуск предоставляет постоянную запись конфигурации и результатов обучения.
- Метрики и параметры: Записывайте потери в тренировках, метрики оценки, скорости обучения и гиперпараметры, затем сравнивайте их между запусками.
- Системные метрики: Просматривайте использование GPU, CPU и памяти для управляемых запусков на вкладке «Системные метрики».
- Просмотр журнала: Просматривайте вывод драйвера для рабочей нагрузки, поддерживаемой заданием, на вкладке «Журналы» запуска. См. «Просмотр журналов на вкладке «MLflow Logs»».
- Артефакты и модели: храните файлы моделей, конфигурации и другие выходы вместе с запуском. Используйте том Unity Catalog для крупных или долговечных артефактов.
- Обмен и совместная работа: предоставьте доступ к эксперименту, чтобы другие пользователи рабочих пространств могли просматривать и сравнивать его запуски. См. статью «Организация учебных запусков с использованием экспериментов MLflow».
- Интеграции фреймворков: используйте интеграции MLflow с Hugging Face Transformers, PyTorch Lightning и другими поддерживаемыми библиотеками.
Для нагрузок, поддерживаемых заданиями, таких как нагрузки, отправленные с помощью databricks air run, запуск задания Azure Databricks дополняет MLflow, фиксируя состояние выполнения, вычислительные ресурсы, попытки и вывод драйвера.
Как создаются запуски MLflow
То, как вы начнете или присоединитесь к запуску MLflow, зависит от того, как вы запускаете рабочую нагрузку:
| Как вы выполняете рабочую нагрузку | Как начинается запуск MLflow | Выбор эксперимента |
|---|---|---|
Databricks CLI (databricks air run) |
Каждая попытка автоматически создаёт запуск. | Настройте experiment_name в YAML-файле рабочей нагрузки. |
Ноутбук с Databricks AI Runtime SDK (.distributed()) |
Каждый вызов автоматически создаёт ран. | Вызовите mlflow.set_experiment() перед .distributed(), или установите MLFLOW_EXPERIMENT_NAME. |
| Код выполняется напрямую в подключённом ноутбуке | Запуск не создаётся автоматически. Используйте mlflow.start_run() или автологирование. |
Вызовите mlflow.set_experiment() в записной книжке. |
Запланировано ai_runtime_task |
Задача автоматически создаёт run. | Задайте experiment в конфигурации задачи. См. задачу AI Runtime. |
После того как ваш код начнет выполнение или присоединится к нужному запуску эксперимента, используйте API отслеживания MLflow для записи пользовательских обучающих данных. Для поддерживаемых фреймворков можно использовать автологирование вместо добавления отдельных вызовов логирования. Для шаблонов глубокого обучения см. рабочий процесс глубокого обучения MLflow 3.
При настройке отслеживания MLflow используйте следующие практики:
- Установите для
stepосмысленное значение, например, глобальную партию или эпоху. Записывайте с интервалом, а не каждый пакет. MLflow ограничивает количество метрических шагов на запуск. См. Ограничения ресурсов. - Для распределённого обучения логируйте метрику только из ранга 0, чтобы каждое значение записывалось один раз.
- Для рабочих процессов в блокноте используйте абсолютные пути к экспериментам, такие как
/Users/<username>/my-experimentили/Workspace/Shared/<team>/my-experiment. Помещайте эксперименты, которыми хотите поделиться, в общую папку рабочего пространства. - Храните большие, надежные контрольные точки в томе Unity Catalog. Сведения о шаблонах создания контрольных точек см. в разделе «Улучшение эффективности обучения и устойчивости в AI Runtime».
Замечание
Используйте MLflow 3.7 и выше для примеров на этой странице.
Отслеживание рабочих нагрузок CLI Databricks
Когда вы отправляете рабочую нагрузку с databricks air run, AI Runtime создаёт запуск задания Azure Databricks для подробностей о выполнении и запуск MLflow для данных эксперимента. Исходная отправка задания и её повторные попытки используют один и тот же запуск задания, в то время как каждая попытка создаёт отдельный запуск MLflow в том же эксперименте, чтобы можно было сравнивать попытки.
Метрики GPU, CPU и системы памяти фиксируются автоматически для каждого управляемого запуска и отображаются на вкладке System metrics.
Настройте и войдите в run
Используйте YAML-файл workload для выбора эксперимента и, по желанию, настройте имя запуска и расположение артефакта. Следующий пример показывает необходимые поля MLflow:
experiment_name: my-training
mlflow_run_name: baseline-lr3e5
mlflow_artifact_location: /Volumes/main/default/mlflow-artifacts/my-training
Для получения требований к полям, стандартных параметров и поддерживаемых значений см. справочник по Workload YAML.
AI Runtime предоставляет управляемый ID запуска через MLFLOW_RUN_ID. Чтобы внести свои собственные параметры, метрики и артефакты в этот запуск, повторно откройте его с помощью API отслеживания MLflow:
import os
import mlflow
# Log from rank 0 only because all nodes share the same MLFLOW_RUN_ID.
if os.environ.get("RANK", "0") == "0":
with mlflow.start_run(run_id=os.environ["MLFLOW_RUN_ID"]):
mlflow.log_param("learning_rate", 3e-4)
for step, loss in enumerate(training_losses):
mlflow.log_metric("train_loss", loss, step=step)
Найдите запуски и журналы
Логи доступны как через CLI Databricks, так и через страницу запуска MLflow. Используйте следующие команды для поиска рабочих нагрузок, проверки рабочей нагрузки и стриминга или скачивания логов:
databricks air list --all-status
databricks air get <job-run-id>
databricks air logs <job-run-id>
databricks air logs <job-run-id> --node 2
databricks air logs <job-run-id> --download-to ./logs/
Отслеживать задачи в ноутбуках
Из блокнота можно запускать код напрямую в приложенной сессии или распределённое обучение через декоратор @distributed из Databricks AI Runtime SDK.
Запускайте код напрямую в ноутбуке
Код, выполненный непосредственно в подключённом блокноте, не создаёт автоматически запуск MLflow. Выберите эксперимент, затем запустите прогон или включите автологинг:
import mlflow
mlflow.set_experiment("/Users/<username>/my-experiment")
with mlflow.start_run(run_name="baseline"):
train()
Чтобы включить автологирование PyTorch Lightning, используйте следующий шаблон:
mlflow.pytorch.autolog()
with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)
Для Hugging Face Transformers настройте TrainingArguments следующим образом:
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)
Используйте Databricks AI Runtime SDK
Для распределённого обучения из блокнота используйте декоратор @distributed из Databricks AI Runtime SDK (databricks-sdk-air). SDK доступен в databricks.air пространстве имён в GPU-среде версии 6 и выше, или как serverless_gpu в GPU окружении версии 5 и ниже.
from databricks.air import distributed
@distributed()
def train():
# Training code
...
train.distributed()
Каждый .distributed() вызов автоматически создаёт запуск MLflow. Эксперимент по умолчанию — /Users/{WORKSPACE_USER}/{notebook-name}. Чтобы выбрать другой эксперимент, задайте его перед вызовом .distributed():
mlflow.set_experiment("/Users/<username>/my-experiment")
train.distributed()
Когда вы вызываете .distributed() внутри активного запуска, AI Runtime создаёт вложенный дочерний запуск:
with mlflow.start_run() as parent_run:
train.distributed()
Чтобы возобновить предыдущий запуск, установите MLFLOW_RUN_ID перед .distributed():
import os
os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
train.distributed()
Используйте ссылку на запуск в выходных данных ячейки или панель блокнота Experiment, чтобы открыть выполнение MLflow.
Просмотреть логи
- Вывод ноутбука: Стандартный вывод и ошибки обучающего кода отображаются в выводе ячейки ноутбука.
-
Журналы MLflow: Для нагрузок блокнотов, выполняемых как задания, таких как вызовы
.distributed(remote=True), вкладка MLflow Журналы отображает выходные данные соответствующего запуска задания.
Отслеживайте ресурсы GPU в реальном времени
Панель Ресурсы GPU в записной книжке показывает текущее использование GPU, память и температуру для одноузловых и многоузловых рабочих нагрузок. Используйте вкладку MLflow System metrics, когда нужна постоянная запись, привязанная к запуску.
Чтобы открыть панель, подключите ноутбук к AI Runtime, затем нажмите ресурсы GPU в правой боковой панели.
Панель опрашивает метрики каждые 10 секунд и хранит историю за период до 2 часов. Нажмите Обновить, чтобы получить последние значения. Через 5 минут бездействия панель приостанавливается. Откройте его снова, чтобы возобновить мониторинг.
Просмотр логов во вкладке MLflow Logs
Вкладка «Журналы» на странице запуска MLflow показывает вывод рабочей нагрузки AI Runtime на основе задания. Чтобы открыть его, перейдите на страницу запуска и нажмите «Журналы».
Для новых запусков вкладка Журналы заменяет файлы журналов, ранее хранившиеся на вкладке Артефакты, которые устарели. Ранее созданные запуски хранят свои лог-файлы на вкладке Артефакты.
На вкладке «Журналы» вы можете:
- Поиск: Показывайте только те строки, содержащие поисковый запрос.
- Фильтруйте по узлам, уровню и временному диапазону: выберите один узел многоузловой рабочей нагрузки, показывайте только информацию, предупреждения или линии ошибок, либо сузьте просмотр до определённого временного диапазона.
- Отслеживание выполняющейся нагрузки: Пока запуск активен, новый вывод появляется по мере поступления. Прокрутите вверх, чтобы приостановить следование.
- Скопировать и скачивать: скопировать загруженные строки или скачать каждую строку, которая соответствует текущим фильтрам.
Хранение журналов
Логи доступны на вкладке «Журналы » в течение 60 дней.
Устранение неполадок доступа к журналам
На странице запуска MLflow вкладка Logs отображает вывод связанного запуска задания Azure Databricks. Доступ к эксперименту MLflow не означает доступ к заданию.
Если вкладка показывает У вас нет доступа к этим логам, попросите пользователя с разрешением Can Manage или администратора рабочего пространства предоставить вам хотя бы Can View на задании. См. раздел "Управление доступом к заданию".
Глобальные ограничения в Azure Databricks
См. Ограничения ресурсов.