중요합니다
단일 노드 작업에 대한 AI 런타임은 공개 미리 보기로 제공됩니다. 다중 GPU 워크로드에 대한 분산 학습 API는 베타에 남아 있습니다.
이 문서에서는 MLflow를 사용하고, GPU 상태를 모니터링하고, 로그를 보고, AI 런타임에서 모델 검사점을 관리하는 방법을 설명합니다.
MLflow 통합
AI 런타임은 실험 추적, 모델 로깅 및 메트릭 시각화를 위해 기본적으로 MLflow와 통합됩니다.
설치 권장 사항:
MLflow를 버전 3.7 이상으로 업그레이드하고 딥 러닝 워크플로 패턴을 따릅니다.
PyTorch Lightning에 자동 로깅 사용:
import mlflow mlflow.pytorch.autolog()API 범위 내에서
mlflow.start_run()모델 학습 코드를 캡슐화하여 MLflow 실행 이름을 사용자 지정합니다. 이렇게 하면 실행 이름을 제어할 수 있으며 이전 실행에서 다시 시작할 수 있습니다. MLflow를 지원하는 타사 라이브러리(run_name예: Hugging Face Transformers)의 매개 변수를 사용하여mlflow.start_run(run_name="your-custom-name")실행 이름을 사용자 지정할 수 있습니다. 그렇지 않으면 기본 실행 이름은 .입니다jobTaskRun-xxxxx.from transformers import TrainingArguments args = TrainingArguments( report_to="mlflow", run_name="llama7b-sft-lr3e5", # <-- MLflow run name logging_steps=50, )서버리스 GPU API는 기본 이름으로
/Users/{WORKSPACE_USER}/{get_notebook_name()}MLflow 실험을 자동으로 시작합니다. 사용자는 환경 변수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에는 1,000만 개의 메트릭 단계가 제한됩니다. 대규모 학습 실행에서 모든 단일 일괄 처리를 로깅하면 이 제한에 도달할 수 있습니다. 리소스 한도를 참조하세요.
로그 보기
- Notebook 출력 - 학습 코드의 표준 출력 및 오류가 Notebook 셀 출력에 표시됩니다.
- 드라이버 로그 - 시작 문제, 환경 설정 문제 및 런타임 오류를 디버깅하기 위해 컴퓨팅 패널을 통해 액세스할 수 있습니다.
- MLflow 로그 - 학습 메트릭, 매개 변수 및 아티팩트가 MLflow 실험 UI에서 볼 수 있습니다.
모델 체크포인트
다른 Unity 카탈로그 개체와 동일한 거버넌스를 제공하는 Unity 카탈로그 볼륨에 모델 검사점을 저장합니다. Databricks Notebook에서 볼륨의 파일을 참조하려면 다음 경로 형식을 사용합니다.
/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
로컬 스토리지에 저장하는 것과 동일한 방식으로 볼륨에 검사점을 저장합니다.
아래 예제에서는 Unity 카탈로그 볼륨에 PyTorch 검사점을 작성하는 방법을 보여 줍니다.
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 리포지토리를 사용하는 동안 사용자별 클론 및 분기를 가질 수 있습니다. Databricks에서 Git을 사용하는 모범 사례를 참조하세요. - 공동 작업자는 전자 필기장을 공유하고 주석을 달 수 있습니다.
Databricks의 전역 제한
리소스 한도를 참조하세요.