Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Среда выполнения ИИ для задач с одним узлом находится в общедоступной предварительной версии. API распределенного обучения для рабочих нагрузок с несколькими GPU остаются в бета-версии.
В этой статье описывается, как использовать MLflow, отслеживать работоспособность GPU, просматривать журналы и управлять контрольными точками модели в среде выполнения ИИ.
Интеграция MLflow
Среда выполнения ИИ интегрируется изначально с MLflow для отслеживания экспериментов, ведения журнала моделей и визуализации метрик.
Рекомендации по настройке:
Обновите MLflow до версии 3.7 или более поздней и следуйте шаблонам рабочего процесса глубокого обучения.
Включите автологирование для PyTorch Lightning:
import mlflow mlflow.pytorch.autolog()Настройте имя своего запуска в MLflow, инкапсулировав код обучения модели в область действия API
mlflow.start_run(). Это позволяет контролировать имя запуска и возобновлять выполнение с предыдущего запуска. Вы можете настроить имя запуска, используя параметр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, )API бессерверного GPU автоматически запускает эксперимент MLflow с именем
/Users/{WORKSPACE_USER}/{get_notebook_name()}по умолчанию. Пользователи могут перезаписать его с помощью переменнойMLFLOW_EXPERIMENT_NAMEсреды. Всегда используйте абсолютные пути для переменнойMLFLOW_EXPERIMENT_NAMEсреды:import os os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"Возобновите предыдущее обучение, установив
MLFLOW_RUN_IDиз предыдущего запуска.mlflow.start_run(run_id="<previous-run-id>")Установите параметр
stepвMLFlowLoggerна разумные номера пакетов. MLflow имеет ограничение в 10 миллионов шагов метрик— ведение журнала каждого пакета на больших запусках обучения может достигнуть этого предела. См. Ограничения ресурсов.
Просмотр журналов
- Выходные данные записной книжки — стандартные выходные данные и ошибки из кода обучения отображаются в выходных данных ячейки записной книжки.
- Журналы драйверов — доступные с помощью панели вычислений для отладки проблем запуска, проблем установки среды и ошибок среды выполнения.
- Журналы MLflow — метрики обучения, параметры и артефакты доступны для просмотра в пользовательском интерфейсе эксперимента MLflow.
Контрольная точка модели
Сохраните контрольные точки модели в томах каталога Unity, которые обеспечивают то же управление, что и другие объекты каталога Unity. Используйте следующий формат пути для ссылки на файлы в томах из записной книжки Databricks:
/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
Сохраняйте контрольные точки в томах так же, как и в локальном хранилище.
В приведенном ниже примере показано, как записать контрольную точку PyTorch в тома каталога Unity:
import torch
checkpoint = {
"epoch": epoch, # last finished epoch
"model_state_dict": model.state_dict(), # weights & buffers
"optimizer_state_dict": optimizer.state_dict(), # optimizer state
"loss": loss, # optional current loss
"metrics": {"val_acc": val_acc}, # optional metrics
# Add scheduler state, RNG state, and other metadata as needed.
}
checkpoint_path = "/Volumes/my_catalog/my_schema/model/checkpoints/ckpt-0001.pt"
torch.save(checkpoint, checkpoint_path)
Этот подход также подходит для распределенных контрольных точек. В приведенном ниже примере показана контрольная точка распределенной модели с помощью API распределенной контрольной точки Факела:
import torch.distributed.checkpoint as dcp
def save_checkpoint(self, checkpoint_path):
state_dict = self.get_state_dict(model, optimizer)
dcp.save(state_dict, checkpoint_id=checkpoint_path)
trainer.save_checkpoint("/Volumes/my_catalog/my_schema/model/checkpoints")
Совместная работа с несколькими пользователями
- Чтобы все пользователи могли получить доступ к общему коду (например, вспомогательным модулям или файлам YAML среды), сохраните их в
/Workspace/Shared, а не в папках, таких как/Workspace/Users/<your_email>/, принадлежащих пользователю. - Для кода, находящегося в активной разработке, используйте папки Git в пользовательских папках
/Workspace/Users/<your_email>/и отправляйте в удаленные репозитории Git. Это позволяет нескольким пользователям иметь пользовательские копии и ветки, одновременно используя удаленный репозиторий Git для управления версиями. Ознакомьтесь с рекомендациями по использованию Git в Databricks. - Сотрудники могут совместно использовать записные книжки и комментировать их.
Глобальные ограничения в Databricks
См. Ограничения ресурсов.