교육 작업 부량을 생산화하세요

DAB를 사용해 AI 런타임 학습 작업을 코드로 정의하세요. 소스 컨트롤에 보관하고, 여러 환경에 배포하며, 일정을 짜고, 다른 작업과 함께 조합하세요. 이 페이지에서는 ai_runtime_task가 서버리스 GPU 컴퓨팅 환경에서 코드 디렉터리를 대상으로 사용자가 작성한 명령을 실행하는 사용자 자체 학습 경로를 다룹니다.

Tip

  • 선언적 자동화 번들을 사용해 교육 워크로드를 코드로 정의하고, 환경에 배포하며, 일정을 잡으세요.
  • ai_runtime_task는 코드 디렉터리(bring-your-own-training)를 대상으로 사용자 지정 명령을 실행합니다.
  • GPU와 CPU 작업을 멀티태스킹 작업으로 결합하세요.

이 작업은 번들로 서버리스 GPU에서 노트북을 실행하는 것과는 다른 작업입니다. 기본 notebook-on-GPU 번들 예제는 Jobs API 및 선언적 자동화 번들을 사용하여 예약하기를 참조하세요.

Requirements

  • AI 런타임이 활성화된 작업 공간입니다. 요구사항 참조.
  • 번들을 배포할 수 있도록 설치 및 구성된 Databricks CLI(명령줄 인터페이스)

번들 내에서 AI 런타임 작업을 정의합니다

ai_runtime_task는 실험의 이름을 지정하고, code_source_path로 훈련 코드를 가리키며, 하나의 배포를 정의합니다. 즉, 실행할 명령과 이를 실행할 GPU를 지정합니다. 묶음에 있는 작업에 추가하세요:

resources:
  jobs:
    train:
      tasks:
        - task_key: train
          ai_runtime_task:
            experiment: my-experiment
            code_source_path: ./dist/code.tgz
            deployments:
              - command_path: ./command.sh
                compute:
                  accelerator_type: GPU_1xA10
                  accelerator_count: 1

code_source_path는 패키징된 학습 코드를 가리키고, command_path는 작업이 실행하는 스크립트입니다. 재시도, 타임아웃, 권한은 다른 Azure Databricks 작업과 같은 방식으로 태스크와 작업에 설정되므로 기존 번들 방식도 그대로 적용됩니다. 코드를 패키징하고 참조하는 방법에 대해서는 '교육 코드 배송'을 참조하세요.

ai_runtime_task 필드

Field 유형 Description
experiment 스트링 Required. 해당 실행의 MLflow 실험 이름입니다. 실험 추적 및 관측 가능성을 참조하세요.
code_source_path 스트링 실행할 훈련 코드: 패키지화된 tgz 산출물의 출력 파일이나 /Workspace/Volumes 이미 업로드된 코드의 경로. ' 교육 코드 배송'을 참조하세요.
deployments Sequence Required. 명령어와 실행할 컴퓨팅을 설명하는 단일 배포 방식입니다. 각 항목에는 command_path, , compute그리고 선택적 name. 가 포함되어 있습니다.
deployments[].command_path 스트링 Required. 작업이 각 노드에서 실행하는 스크립트입니다.
deployments[].compute.accelerator_type 스트링 Required. GPU 유형(예: GPU_1xA10, GPU_1xH100, 또는 GPU_8xH100).
deployments[].compute.accelerator_count Integer Required. 모든 노드 전체의 총 GPU 수(accelerator_type에 지정된 노드당 GPU 수의 배수)
deployments[].name 스트링 배포의 선택적 이름으로, 로그와 UI에서 사용됩니다.
docker_image_url 스트링 관리 환경 대신 명령어를 실행할 수 있는 선택적 커스텀 Docker 이미지가 필요합니다. 사용자 지정 Docker 이미지 사용을 참조하세요.
mlflow_run 스트링 MLflow 실행을 위한 선택적 표시명입니다.
mlflow_experiment_directory 스트링 실험이 생성되는 선택적 작업 공간 디렉터리입니다. /Workspace로 시작해야 합니다. 기본 사용자 디렉터리가 없는 서비스 주체로 실행할 때 이 설정을 하세요.
mlflow_artifact_location 스트링 MLflow 산출물에 대한 선택적 루트 위치, 예를 들어 /Volumes/<catalog>/<schema>/<volume>/… 경로. 기존 실험의 유물 위치와 일치해야 하며, 그렇지 않으면 제외됩니다.

재시도, 시간 초과, 권한 및 환경(environment_key)은 ai_runtime_task 내부가 아니라 task와 job에 설정하세요. 전체 작업 참고 사항은 AI 런타임 작업을 참조하세요.

하드웨어 가속기 구성

accelerator_count는 워크로드에 필요한 GPU 수로, accelerator_type는 총 GPU 수로 설정하세요. 개수는 노드당 GPU 수의 배수입니다: 8 및 GPU_8xH100의 경우 1, GPU_1xH100의 경우 GPU_1xA10입니다. 노드당 크기보다 큰 카운트는 작업을 여러 노드에 걸쳐 실행하며, 예를 GPU_8xH100accelerator_count: 16 들어 두 노드에서 실행됩니다. 가속기 선택에 관한 안내는 하드웨어 옵션을 참조하세요.

메모

다중 노드 실행의 경우, AI 런타임은 모든 노드에서 명령을 실행하고 작업 환경 내 표준 분산 훈련 환경 변수들—NUM_NODES, MASTER_ADDRWORLD_SIZELOCAL_WORLD_SIZEMASTER_PORT를 채웁니다. 명령(예: torchrun 실행)에서 해당 항목을 읽습니다. 번들에서는 이를 설정하지 않습니다.

환경과 의존성을 설정하세요

job에 environments 블록을 선언하고 task에서 environment_key로 이를 참조하세요. AI 런타임은 명령이 실행되기 전에 나열된 의존성을 설치합니다:

resources:
  jobs:
    train:
      tasks:
        - task_key: train
          environment_key: default
          ai_runtime_task:
            # experiment, code_source_path, and deployments as above
      environments:
        - environment_key: default
          spec:
            environment_version: '6'
            dependencies:
              - numpy

사용 가능한 환경에 대해서는 ' 환경 설정 하기'를 참조하세요.

교육 코드를 배송하세요

code_source_path는 학습 코드의 위치를 작업에 알려줍니다. 두 가지 형태 중 하나를 취합니다:

  • 패키징된 tgz 아티팩트 — 아티팩트를 선언하고 code_source_path을 해당 출력 파일로 지정합니다. Azure Databricks는 tar 아카이브를 빌드하고 databricks bundle deploy에 업로드합니다. 이렇게 하면 로컬 프로젝트 디렉터리나 커밋된 Git 수정본에서 코드를 배포할 수 있습니다.
  • 작업 공간 또는 볼륨 경로 — 이미 업로드되어 사용된 코드as-is.

패키징된 아티팩트

tgz 아티팩트를 선언하고 code_source_path이 해당 출력 파일을 가리키도록 지정합니다. databricks bundle deploy에서 CLI가 tarball을 생성해 업로드하고, 작업이 이를 풀어 그에 대해 명령을 실행합니다:

artifacts:
  code:
    type: tgz
    path: .
    include: [src]
    files:
      - source: ./dist/code.tgz
resources:
  jobs:
    train:
      tasks:
        - task_key: train
          ai_runtime_task:
            code_source_path: ./dist/code.tgz

작업 트리의 파일을 패키징하려면 git를 사용하고, 커밋된 브랜치 또는 커밋의 스냅샷을 만들려면 include를 사용하세요.

작업 공간 또는 볼륨 경로

이미 업로드된 코드를 사용하려면 /Workspace/…를 /Volumes/… 또는 code_source_path 경로로 설정하세요. Azure Databricks 경로 as-is을 사용하고 아무것도 패키징하지 않습니다.

tgz 아티팩트 필드:

Field Description
type tgz는 build 명령을 실행하는 대신 소스 파일로부터 gzip으로 압축된 tarball을 빌드합니다.
path 패키징할 기본 디렉터리. include 경로와 아카이브 항목 이름은 그에 대한 상대적인 것입니다.
include 패키지에 포함할 path의 하위 경로 목록입니다. 모든 path를 패키징하지 마세요. .gitignore을(를) 적용합니다; 번들 전체의 sync.include 및 sync.exclude는 적용되지 않습니다. build 명령의 대체 항목입니다.
git 작업 트리 대신 커밋된 Git 참조를 스냅샷하세요. git.branch 또는 git.commit을 설정하세요(commit가 둘 다 설정된 경우 우선 적용됩니다). build 명령의 대체 항목입니다.
files[].source 빌드된 tarball의 경로. code_source_path을 이것에 맞추세요.

메모

AI 런타임은 코드를 디렉터리로 추출해 환경 변수로 CODE_SOURCE_PATH 노출합니다. 스크립트를 실행하기 전에 상대 경로가 올바르게 해석되도록, 예를 들어 cd "$CODE_SOURCE_PATH"를 명령에서 참조하세요.

전체 예제

이 예시는 로컬 프로젝트의 단일 A10 GPU를 기반으로 학습하며, Azure Databricks CLI를 설치하고 설정한 것 외에는 사전 CLI 설정 없이 진행됩니다. 이 프로젝트는 세 개의 파일로 구성되어 있습니다:

my-training/
├── databricks.yml
├── command.sh
└── src/
    └── train.py

command.sh는 command_path에 의해 지정된 진입점입니다. 추출된 코드 디렉터리로 전환하여 훈련 스크립트를 실행합니다:

#!/usr/bin/env bash
set -euo pipefail
cd "$CODE_SOURCE_PATH"
python train.py

databricks.yml는 번들의 이름을 지정하고, tgz을 src/ 아티팩트로 패키징하고, 이를 ai_runtime_task로 실행하며, 작업 환경에 numpy를 설치하고, 개발 및 프로덕션 대상을 정의합니다:

bundle:
  name: my-training

artifacts:
  code:
    type: tgz
    path: .
    include: [src]
    files:
      - source: ./dist/code.tgz

resources:
  jobs:
    train:
      name: my-training
      tasks:
        - task_key: train
          environment_key: default
          ai_runtime_task:
            experiment: /Users/me@example.com/my-training
            code_source_path: ./dist/code.tgz
            deployments:
              - command_path: ./command.sh
                compute:
                  accelerator_type: GPU_1xA10
                  accelerator_count: 1
      environments:
        - environment_key: default
          spec:
            environment_version: '6'
            dependencies:
              - numpy

targets:
  dev:
    mode: development
    default: true
  prod:
    mode: production

번들을 배포하고 작업을 실행하세요. databricks bundle deploy가 tgz 아티팩트를 빌드하고 업로드하며 작업을 생성하고, databricks bundle run가 이를 시작합니다:

databricks bundle deploy --target dev
databricks bundle run train --target dev

다중 작업 워크플로우 구축

ai_runtime_task는 Azure Databricks 작업의 태스크이므로 작업의 나머지 부분과 결합되어 사용됩니다. 훈련 전에 준비 단계를 실행하고, GPU와 CPU 작업을 하나의 작업에서 결합하며, 작업별로 다른 가속기를 사용할 수 있습니다.

depends_on으로 작업 순서 지정

작업을 순서대로 실행하는 데 사용 depends_on 하세요. 다음 파이프라인은 준비 노트북을 실행한 후, 준비 작업이 성공한 후에만 시작하는 GPU 훈련 작업을 실행합니다:

resources:
  jobs:
    train_pipeline:
      tasks:
        - task_key: prep
          notebook_task:
            notebook_path: ./prep.py
        - task_key: train
          depends_on:
            - task_key: prep
          ai_runtime_task:
            experiment: my-experiment
            code_source_path: ./dist/code.tgz
            deployments:
              - command_path: ./command.sh
                compute:
                  accelerator_type: GPU_1xA10
                  accelerator_count: 1

GPU와 CPU 작업을 결합합니다

위 과정에서는 학습 단계만 GPU가 필요합니다. 데이터 준비와 같은 비GPU적 작업을 별도의 작업에 두면 GPU 시간이 훈련에 집중될 수 있습니다.

메모

ai_runtime_task는 Azure Databricks 작업 태스크 값({{tasks.<task_key>.values.<name>}} 또는 dbutils.jobs.taskValues)을 지원하지 않습니다. 단계 간에 데이터를 전달할 때는 두 작업이 읽을 수 있는 공유 위치에 기록하세요. 예를 들어 Unity 카탈로그 볼륨이나 작업 공간 파일이고, 각 작업에서 그 경로를 참조합니다.

업무량 일정 조정하세요

작업에 a schedule 를 추가해서 일정한 페이던스로 진행하세요. 번들 배포가 자동으로 실행되지 않도록 일정을 일시정지한 상태로 배포한 후, 준비가 되면 다시 일시정지를 해제하세요:

resources:
  jobs:
    train_pipeline:
      schedule:
        quartz_cron_expression: '0 0 9 * * ?'
        timezone_id: UTC
        pause_status: PAUSED

개발에서 생산으로 승진하세요

개발에서 프로덕션으로의 승격은 AI 런타임 태스크가 변경 없이 계승하는 표준 번들 기능입니다.

번들 타겟과 모드

개발 목표와 함께 생산 목표를 mode: production 정의하세요. 대상은 번들이 어디에 배포되고 해당 리소스의 이름이 어떻게 지정되는지를 제어합니다:

targets:
  dev:
    mode: development
    default: true
  prod:
    mode: production

배포 및 실행

표준 번들 명령어로 번들을 배치하고 목표에 대해 실행하세요:

databricks bundle deploy --target dev
databricks bundle run train_pipeline --target dev

다음 단계

  • AI 런타임 CLI를 사용해 명령줄에서 AI 런타임 워크로드를 실행하고 관리할 수 있습니다.
  • 학습 실행을 추적하고 체크포인트를 관리하세요. 실험 추적 및 관측 가능성을 참조하세요.