실험 추적 및 관찰 가능성

중요합니다

이 기능은 공개 미리보기 단계에 있습니다.

AI 런타임은 기본적으로 실험 추적을 위해 MLflow와 통합되며 사용률, 메모리 및 온도를 모니터링하기 위한 기본 제공 GPU 리소스 창을 포함합니다. MLflow를 사용하여 메트릭 및 실행을 기록하고, Notebook 및 MLflow UI에서 학습 출력을 보고, 모델 검사점을 Unity 카탈로그 볼륨에 저장하고, 코드가 실행되는 동안 GPU 상태를 추적합니다.

Tip

  • AI 런타임은 실험 추적과 모델 로깅을 위해 MLflow와 네이티브로 통합됩니다.
  • 내장 GPU 리소스 창에서는 사용률, 메모리, 온도를 표시합니다.
  • 모델 체크포인트를 Unity 카탈로그 볼륨에 저장하세요.

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를 사용하는 경우 각 호출은 .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에는 1,000만 개의 메트릭 단계가 제한되므로 대규모 학습 실행의 모든 단일 일괄 처리로 이 제한에 도달할 수 있습니다. 리소스 한도를 참조하세요.

로그 보기

  • Notebook 출력: 학습 코드의 표준 출력 및 오류가 Notebook 셀 출력에 표시됩니다.
  • MLflow 로그: MLflow 실험 UI에는 학습 메트릭, 매개 변수 및 아티팩트가 표시됩니다.

로그를 볼 수 없다면

MLflow 실행 페이지의 Logs 탭은 MLflow 실행과 연관된 Databricks 작업 실행에서 로그를 스트리밍하므로, 접근은 해당 작업의 권한에 의해 관리됩니다. 탭에 ' 이 로그에 접근할 수 없다'가 뜨면, 사용자가 충분한 권한이 없습니다.

MLflow에서 런에 접근한다고 해서 작업에 접근할 수 있다는 의미는 아닙니다. MLflow 실험 권한이 있더라도 로그에 대한 액세스는 거부될 수 있습니다. 접근 권한을 얻으려면, '관리 가능' 권한이 있는 사용자나 작업 공간 관리자에게 최소한 작업 시 ' 볼 수 있음 ' 권한을 부여해 달라고 요청하세요. 작업 권한 부여 방식에 대해서는 작업 접근 제어(Control access to job )를 참조하세요.

모델 체크포인트

분산 학습을 위해서는 Torch Distributed Checkpoint(DCP) API와 스토리지 백엔드를 사용하여 serverless_gpu.data.UCVolumeWriterserverless_gpu.data.UCVolumeReaderUnity 카탈로그 볼륨에 모델 및 옵티마이저 상태를 저장하세요. 체크포인트가 업로드되는 동안에도 훈련이 계속되도록 비동기식으로 저장하고, 중단 후 작업 손실을 최소화할 수 있을 만큼 충분히 자주 체크포인트를 저장하세요. 모델 체크포인트가 데이터 파이프라인 위치를 캡처하지 않으므로, 데이터 파이프라인도 체크포인트하여 올바른 데이터에 대해 재개 실행이 계속되도록 해야 합니다.

전체 체크포인트 패턴은 AI 런타임에서 훈련 성과 및 복원력 향상을 참조하세요.

GPU 자원 모니터링

GPU 리소스 창을 사용하여 코드가 AI 런타임에서 실행되는 동안 GPU 상태 및 사용률을 모니터링합니다. 창은 단일 노드 및 다중 노드 워크로드를 모두 지원합니다.

창을 열려면 Notebook을 AI 런타임에 연결한 다음 칩 아이콘을 클릭합니다.오른쪽 창의 GPU 리소스입니다.

각 GPU의 사용률, 메모리 및 온도 메트릭을 보여 주는 GPU 리소스 창

창에는 각 GPU에 대해 다음과 같은 메트릭이 표시됩니다.

  • GPU 사용률 비율
  • GPU 메모리 사용량
  • 온도

이 패널은 10초마다 메트릭을 폴링하고 최대 2시간치 기록을 유지합니다. 새로 고침 아이콘을 클릭합니다. 새로 고쳐서 최신 값을 즉시 가져옵니다. 5분 동안 비활성 상태이면 창이 일시 중지됩니다. 다시 열어 모니터링을 다시 시작합니다.

다중 사용자 공동 작업

  • 모든 사용자가 공유 코드(예: 도우미 모듈 또는 환경 YAML 파일)에 액세스할 수 있도록 하려면 사용자별 폴더(예: /Workspace/Shared) 대신 저장 /Workspace/Users/<your_email>/ 합니다.
  • 현재 개발 중인 코드의 경우 사용자별 폴더의 Git 폴더를 /Workspace/Users/<your_email>/ 사용하고 원격 Git 리포지토리에 푸시합니다. 이를 통해 여러 사용자가 버전 제어를 위해 원격 Git 리포지토리를 사용하는 동안 사용자별 클론 및 분기를 가질 수 있습니다. Databricks에서 Git을 사용하는 모범 사례를 참조하세요.
  • 공동 작업자는 전자 필기장을 공유하고 주석을 달 수 있습니다.

Azure Databricks 전역 제한

리소스 한도를 참조하세요.