대기열 설정: 대기열은 FIFO이며 대기열 설정을 갖습니다. 대기열의 설정은 대상 리소스에서 작업이 실행되는 위치와 방법을 제어합니다.
에이전트 설정: 에이전트는 사용자 시스템/인프라에서 실행되며 Launch 작업을 위해 하나 이상의 대기열을 폴링합니다. 작업이 풀되면 에이전트는 이미지가 빌드되어 사용 가능한지 확인합니다. 그런 다음 에이전트는 작업을 대상 리소스에 제출합니다.
대기열 설정
Launch 대기열은 특정 대상 리소스를 가리키도록 구성해야 하며, 해당 리소스에 특정한 추가 구성도 함께 설정해야 합니다. 예를 들어 Kubernetes 클러스터를 가리키는 Launch 대기열은 환경 변수를 포함하거나 Launch 대기열 구성에 사용자 정의 네임스페이스를 설정할 수 있습니다. 대기열을 생성할 때 사용하려는 대상 리소스와 해당 리소스에 사용할 구성을 모두 지정합니다.
에이전트가 대기열에서 작업을 받으면 대기열 구성도 함께 받습니다. 에이전트가 작업을 대상 리소스에 제출할 때 작업 자체의 재정의와 함께 대기열 구성을 포함합니다. 예를 들어 작업 구성을 사용하여 해당 작업 인스턴스에 대해서만 Amazon SageMaker 인스턴스 유형을 지정할 수 있습니다. 이 경우 대기열 구성 템플릿이 최종 사용자 인터페이스로 사용되는 것이 일반적입니다.
이 대기열에 대해 우선 순위 지정을 허용할지 여부를 선택합니다. 우선 순위 지정이 활성화되면 팀의 사용자가 작업을 대기열에 추가할 때 Launch 작업의 우선 순위를 정의할 수 있습니다. 우선 순위가 높은 작업은 우선 순위가 낮은 작업보다 먼저 실행됩니다.
구성 필드에 JSON 또는 YAML 형식으로 리소스 구성을 제공합니다. 구성 문서의 구조와 의미는 대기열이 가리키는 리소스 유형에 따라 달라집니다. 자세한 내용은 대상 리소스에 대한 전용 설정 페이지를 참조하십시오.
Launch 에이전트 설정
Launch 에이전트는 하나 이상의 Launch 대기열에서 작업을 폴링하는 장기 실행 프로세스입니다. Launch 에이전트는 선입선출(FIFO) 순서 또는 대기열에서 가져오는 우선 순위에 따라 작업을 디큐합니다. 에이전트가 대기열에서 작업을 디큐하면 해당 작업에 대한 이미지를 선택적으로 빌드합니다. 그런 다음 에이전트는 대기열 구성에 지정된 구성 옵션과 함께 작업을 대상 리소스에 제출합니다.
W&B는 특정 사용자의 API 키 대신 서비스 계정의 API 키로 에이전트를 시작하는 것이 좋습니다. 서비스 계정의 API 키를 사용하면 다음과 같은 두 가지 이점이 있습니다.
에이전트는 개별 사용자에 의존하지 않습니다.
Launch를 통해 생성된 run과 연결된 작성자는 에이전트와 연결된 사용자가 아닌 Launch 작업을 제출한 사용자로 Launch에서 간주합니다.
에이전트 구성
launch-config.yaml이라는 YAML 파일로 Launch 에이전트를 구성합니다. 기본적으로 W&B는 ~/.config/wandb/launch-config.yaml에서 구성 파일을 확인합니다. Launch 에이전트를 활성화할 때 다른 디렉토리를 선택적으로 지정할 수 있습니다.
Launch 에이전트의 구성 파일 내용은 Launch 에이전트의 환경, Launch 대기열의 대상 리소스, Docker 빌더 요구 사항, 클라우드 레지스트리 요구 사항 등에 따라 달라집니다.
유스 케이스와 관계없이 Launch 에이전트에 대한 핵심 구성 가능 옵션은 다음과 같습니다.
max_jobs: 에이전트가 병렬로 실행할 수 있는 최대 작업 수
entity: 대기열이 속한 Entity
queues: 에이전트가 감시할 하나 이상의 대기열 이름
W&B CLI를 사용하여 Launch 에이전트에 대한 보편적인 구성 가능 옵션(구성 YAML 파일 대신)을 지정할 수 있습니다. 최대 작업 수, W&B Entity 및 Launch 대기열을 참조하십시오. 자세한 내용은 wandb launch-agent 명령을 참조하십시오.
다음 YAML 코드 조각은 핵심 Launch 에이전트 구성 키를 지정하는 방법을 보여줍니다.
# 수행할 동시 run의 최대 수입니다. -1 = 제한 없음max_jobs: -1entity: <entity-name># 폴링할 대기열 목록입니다.queues:
- <queue-name>
컨테이너 빌더 구성
Launch 에이전트는 이미지를 빌드하도록 구성할 수 있습니다. git 리포지토리 또는 코드 Artifacts에서 생성된 Launch 작업을 사용하려면 컨테이너 빌더를 사용하도록 에이전트를 구성해야 합니다. Launch 작업 생성 방법에 대한 자세한 내용은 Launch 작업 생성을 참조하십시오.
W&B Launch는 세 가지 빌더 옵션을 지원합니다.
Docker: Docker 빌더는 로컬 Docker 데몬을 사용하여 이미지를 빌드합니다.
Kaniko: Kaniko는 Docker 데몬을 사용할 수 없는 환경에서 이미지 빌드를 가능하게 하는 Google 프로젝트입니다.
Noop: 에이전트는 작업을 빌드하려고 시도하지 않고 미리 빌드된 이미지만 가져옵니다.
에이전트가 Docker 데몬을 사용할 수 없는 환경(예: Kubernetes 클러스터)에서 폴링하는 경우 Kaniko 빌더를 사용하십시오.
다음으로 구성 파싱을 클릭합니다. aws-instance라는 새 타일이 Queue Config 아래에 나타납니다.
거기에서 유형 드롭다운에서 문자열을 데이터 유형으로 선택합니다. 그러면 사용자가 선택할 수 있는 값을 지정할 수 있는 필드가 채워집니다. 예를 들어 다음 이미지에서 팀의 관리자는 사용자가 선택할 수 있는 두 가지 다른 AWS 인스턴스 유형(ml.m4.xlarge 및 ml.p3.xlarge)을 구성했습니다.
Launch 작업을 동적으로 구성
Queue Config는 에이전트가 Queue에서 작업을 뺄 때 평가되는 매크로를 사용하여 동적으로 구성할 수 있습니다. 다음 매크로를 설정할 수 있습니다.
매크로
설명
${project_name}
Run이 시작되는 프로젝트의 이름입니다.
${entity_name}
Run이 시작되는 프로젝트의 소유자입니다.
${run_id}
시작되는 Run의 ID입니다.
${run_name}
시작되는 Run의 이름입니다.
${image_uri}
이 Run에 대한 컨테이너 이미지의 URI입니다.
이전 표에 나열되지 않은 사용자 지정 매크로(예: ${MY_ENV_VAR})는 에이전트 환경의 환경 변수로 대체됩니다.
Launch 에이전트를 사용하여 가속기(GPU)에서 실행되는 이미지를 빌드합니다.
Launch를 사용하여 가속기 환경에서 실행되는 이미지를 빌드하는 경우 가속기 기본 이미지를 지정해야 할 수 있습니다.
이 가속기 기본 이미지는 다음 요구 사항을 충족해야 합니다.
Debian 호환성(Launch Dockerfile은 apt-get을 사용하여 Python을 가져옴)
호환 가능한 CPU 및 GPU 하드웨어 명령어 세트(CUDA 버전이 사용하려는 GPU에서 지원되는지 확인)
제공하는 가속기 버전과 ML 알고리즘에 설치된 패키지 간의 호환성
하드웨어와의 호환성을 설정하기 위해 추가 단계가 필요한 설치된 패키지
TensorFlow와 함께 GPU를 사용하는 방법
TensorFlow가 GPU를 제대로 활용하는지 확인합니다. 이를 위해 Queue 리소스 구성에서 builder.accelerator.base_image 키에 대한 Docker 이미지와 해당 이미지 태그를 지정합니다.
예를 들어 tensorflow/tensorflow:latest-gpu 기본 이미지는 TensorFlow가 GPU를 제대로 사용하는지 확인합니다. 이는 Queue의 리소스 구성을 사용하여 구성할 수 있습니다.
다음 JSON 스니펫은 Queue Config에서 TensorFlow 기본 이미지를 지정하는 방법을 보여줍니다.
Launch 에이전트는 Docker 또는 Kaniko를 사용하여 이미지를 빌드할 수 있습니다.
Kaniko: 권한이 필요한 컨테이너로 빌드를 실행하지 않고 Kubernetes에서 컨테이너 이미지를 빌드합니다.
Docker: 로컬에서 docker build 코맨드를 실행하여 컨테이너 이미지를 빌드합니다.
빌더 유형은 launch 에이전트 설정에서 builder.type 키를 docker, kaniko 또는 noop(빌드 해제)으로 설정하여 제어할 수 있습니다. 기본적으로 에이전트 helm chart는 builder.type을 noop로 설정합니다. builder 섹션의 추가 키는 빌드 프로세스를 구성하는 데 사용됩니다.
에이전트 설정에 빌더가 지정되지 않고 작동하는 docker CLI가 발견되면 에이전트는 기본적으로 Docker를 사용합니다. Docker를 사용할 수 없으면 에이전트는 기본적으로 noop를 사용합니다.
Kubernetes 클러스터에서 이미지를 빌드하려면 Kaniko를 사용하세요. 다른 모든 경우에는 Docker를 사용하세요.
컨테이너 레지스트리에 푸시
Launch 에이전트는 빌드하는 모든 이미지에 고유한 소스 해시로 태그를 지정합니다. 에이전트는 builder.destination 키에 지정된 레지스트리에 이미지를 푸시합니다.
예를 들어, builder.destination 키가 my-registry.example.com/my-repository로 설정된 경우 에이전트는 이미지를 my-registry.example.com/my-repository:<source-hash>로 태그 지정하고 푸시합니다. 이미지가 레지스트리에 존재하면 빌드는 건너뜁니다.
에이전트 설정
Helm chart를 통해 에이전트를 배포하는 경우 에이전트 설정은 values.yaml 파일의 agentConfig 키에 제공되어야 합니다.
wandb launch-agent로 에이전트를 직접 호출하는 경우 --config 플래그를 사용하여 에이전트 설정을 YAML 파일 경로로 제공할 수 있습니다. 기본적으로 설정은 ~/.config/wandb/launch-config.yaml에서 로드됩니다.
launch 에이전트 설정(launch-config.yaml) 내에서 대상 리소스 환경의 이름과 environment 및 registry 키에 대한 컨테이너 레지스트리를 각각 제공합니다.
다음 탭은 환경 및 레지스트리를 기반으로 launch 에이전트를 구성하는 방법을 보여줍니다.
AWS 환경 설정에는 region 키가 필요합니다. region은 에이전트가 실행되는 AWS region이어야 합니다.
environment:
type: awsregion: <aws-region>builder:
type: <kaniko|docker># 에이전트가 이미지를 저장할 ECR 리포지토리의 URI입니다.# region이 환경에 구성한 region과 일치하는지 확인하십시오.destination: <account-id>.ecr.<aws-region>.amazonaws.com/<repository-name># Kaniko를 사용하는 경우 에이전트가 빌드 컨텍스트를 저장할 S3 버킷을 지정합니다.build-context-store: s3://<bucket-name>/<path>
에이전트는 boto3을 사용하여 기본 AWS 자격 증명을 로드합니다. 기본 AWS 자격 증명을 구성하는 방법에 대한 자세한 내용은 boto3 설명서를 참조하세요.
Google Cloud 환경에는 region 및 project 키가 필요합니다. region을 에이전트가 실행되는 region으로 설정합니다. project를 에이전트가 실행되는 Google Cloud 프로젝트로 설정합니다. 에이전트는 Python에서 google.auth.default()를 사용하여 기본 자격 증명을 로드합니다.
environment:
type: gcpregion: <gcp-region>project: <gcp-project-id>builder:
type: <kaniko|docker># 에이전트가 이미지를 저장할 Artifact Registry 리포지토리 및 이미지 이름의 URI입니다.# region 및 프로젝트가 환경에 구성한 것과 일치하는지 확인하십시오.uri: <region>-docker.pkg.dev/<project-id>/<repository-name>/<image-name># Kaniko를 사용하는 경우 에이전트가 빌드 컨텍스트를 저장할 GCS 버킷을 지정합니다.build-context-store: gs://<bucket-name>/<path>
에이전트에서 사용할 수 있도록 기본 GCP 자격 증명을 구성하는 방법에 대한 자세한 내용은 google-auth 설명서를 참조하세요.
Azure 환경은 추가 키가 필요하지 않습니다. 에이전트가 시작되면 azure.identity.DefaultAzureCredential()을 사용하여 기본 Azure 자격 증명을 로드합니다.
environment:
type: azurebuilder:
type: <kaniko|docker># 에이전트가 이미지를 저장할 Azure Container Registry 리포지토리의 URI입니다.destination: https://<registry-name>.azurecr.io/<repository-name># Kaniko를 사용하는 경우 에이전트가 빌드 컨텍스트를 저장할 Azure Blob Storage 컨테이너를 지정합니다.build-context-store: https://<storage-account-name>.blob.core.windows.net/<container-name>
builder:
type: kanikobuild-context-store: <my-build-context-store>destination: <my-image-destination>build-job-name: wandb-image-buildkaniko-config:
spec:
template:
spec:
containers:
- args:
- "--cache=false"# Args must be in the format "key=value"env:
- name: "MY_ENV_VAR"value: "my-env-var-value"
CoreWeave에 Launch 에이전트 배포
선택적으로 W&B Launch 에이전트를 CoreWeave Cloud 인프라에 배포합니다. CoreWeave는 GPU 가속 워크로드를 위해 특별히 구축된 클라우드 인프라입니다.
Launch 에이전트를 CoreWeave에 배포하는 방법에 대한 자세한 내용은 CoreWeave 설명서를 참조하세요.
W&B는 Kaniko 빌더를 사용하여 Launch agent가 Kubernetes 클러스터에서 Docker 이미지를 빌드할 수 있도록 합니다. Launch agent용 Kaniko 설정 방법 또는 작업 빌드를 끄고 미리 빌드된 Docker 이미지만 사용하는 방법에 대한 자세한 내용은 고급 agent 설정을 참조하십시오.
Helm을 설치하고 W&B의 Launch agent Helm chart를 적용하거나 업그레이드하려면 Kubernetes 리소스를 생성, 업데이트 및 삭제할 수 있는 충분한 권한으로 클러스터에 대한 kubectl 엑세스 권한이 필요합니다. 일반적으로 cluster-admin 권한이 있는 사용자 또는 이와 동등한 권한이 있는 사용자 정의 역할이 필요합니다.
일부 유스 케이스에서는 CustomResource 정의를 사용하고 싶을 수 있습니다. 예를 들어, 다중 노드 분산 트레이닝을 수행하려는 경우 CustomResource 정의가 유용합니다. Volcano를 사용하여 다중 노드 작업으로 Launch를 사용하는 방법에 대한 튜토리얼에서 예제 애플리케이션을 참조하십시오. 또 다른 유스 케이스는 Kubeflow와 함께 W&B Launch를 사용하려는 경우일 수 있습니다.
다음 YAML 스니펫은 Kubeflow를 사용하는 샘플 Launch 대기열 설정을 보여줍니다.
agent:
labels: {}
# W&B API 키.apiKey: ''# agent에 사용할 컨테이너 이미지.image: wandb/launch-agent:latest# agent 이미지에 대한 이미지 풀 정책.imagePullPolicy: Always# agent spec에 대한 리소스 블록.resources:
limits:
cpu: 1000mmemory: 1Gi# Launch agent를 배포할 네임스페이스namespace: wandb# W&B api URL (여기에 설정하십시오)baseUrl: https://api.wandb.ai# Launch agent가 배포할 수 있는 추가 대상 네임스페이스additionalTargetNamespaces:
- default - wandb# 이것은 Launch agent 구성의 리터럴 내용으로 설정해야 합니다.launchConfig: | queues:
- <queue name>
max_jobs: <n concurrent jobs>
environment:
type: aws
region: <aws-region>
registry:
type: ecr
uri: <my-registry-uri>
builder:
type: kaniko
build-context-store: <s3-bucket-uri># git 자격 증명 파일의 내용. 이것은 k8s secret에 저장됩니다# agent 컨테이너에 마운트됩니다. 비공개 리포를 복제하려면 이것을 설정하십시오.gitCreds: |# wandb 서비스 계정에 대한 어노테이션. gcp에서 워크로드 아이덴티티를 설정할 때 유용합니다.serviceAccount:
annotations:
iam.gke.io/gcp-service-account:
azure.workload.identity/client-id:
# azure와 함께 kaniko를 사용하는 경우 azure 스토리지에 대한 엑세스 키로 설정합니다.azureStorageAccessKey: ''
레지스트리, 환경 및 필요한 agent 권한에 대한 자세한 내용은 고급 agent 설정을 참조하십시오.
4 - Tutorial: Set up W&B Launch on SageMaker
W&B Launch 를 사용하여 제공된 또는 사용자 지정 알고리즘을 사용하여 Amazon SageMaker 에 launch 작업을 제출하여 SageMaker 플랫폼에서 기계 학습 모델을 트레이닝할 수 있습니다. SageMaker 는 컴퓨팅 리소스를 가동 및 해제하는 작업을 처리하므로 EKS 클러스터가 없는 팀에게 적합한 선택이 될 수 있습니다.
Amazon SageMaker 에 연결된 W&B Launch 대기열로 전송된 Launch 작업은 CreateTrainingJob API를 통해 SageMaker 트레이닝 작업으로 실행됩니다. launch 대기열 설정을 사용하여 CreateTrainingJob API 로 전송되는 인수를 제어합니다.
Amazon SageMaker 는 Docker 이미지를 사용하여 트레이닝 작업을 실행합니다. SageMaker 가 가져오는 이미지는 Amazon Elastic Container Registry (ECR)에 저장해야 합니다. 즉, 트레이닝에 사용하는 이미지는 ECR 에 저장해야 합니다.
이 가이드에서는 SageMaker 트레이닝 작업을 실행하는 방법을 보여줍니다. Amazon SageMaker 에서 추론을 위해 모델을 배포하는 방법에 대한 자세한 내용은 이 예제 Launch 작업을 참조하십시오.
launch 작업이 포함된 Docker 이미지를 Amazon ECR 레포지토리로 업로드합니다. 이미지 기반 작업을 사용하는 경우 새 launch 작업을 제출하기 전에 Docker 이미지가 ECR 레지스트리에 있어야 합니다.
5 - Tutorial: Set up W&B Launch on Vertex AI
W&B Launch 를 사용하여 Vertex AI 트레이닝 작업으로 실행하기 위한 작업을 제출할 수 있습니다. Vertex AI 트레이닝 작업을 통해 Vertex AI 플랫폼에서 제공되거나 사용자 정의된 알고리즘을 사용하여 기계학습 모델을 트레이닝할 수 있습니다. Launch 작업이 시작되면 Vertex AI는 기본 인프라, 확장 및 오케스트레이션을 관리합니다.
W&B Launch 는 google-cloud-aiplatform SDK의 CustomJob 클래스를 통해 Vertex AI와 연동됩니다. CustomJob 의 파라미터는 Launch 대기열 설정으로 제어할 수 있습니다. Vertex AI는 GCP 외부의 개인 레지스트리에서 이미지를 가져오도록 구성할 수 없습니다. 즉, W&B Launch 와 함께 Vertex AI를 사용하려면 컨테이너 이미지를 GCP 또는 공용 레지스트리에 저장해야 합니다. Vertex 작업에 컨테이너 이미지를 엑세스할 수 있도록 설정하는 방법에 대한 자세한 내용은 Vertex AI 설명서를 참조하십시오.
전제 조건
Vertex AI API가 활성화된 GCP 프로젝트를 만들거나 엑세스합니다. API 활성화에 대한 자세한 내용은 GCP API Console 문서를 참조하십시오.
Vertex에서 실행하려는 이미지를 저장할 GCP Artifact Registry 저장소를 만듭니다. 자세한 내용은 GCP Artifact Registry 문서를 참조하십시오.
Vertex AI가 메타데이터를 저장할 스테이징 GCS 버킷을 만듭니다. 이 버킷은 스테이징 버킷으로 사용하려면 Vertex AI 워크로드와 동일한 리전에 있어야 합니다. 동일한 버킷을 스테이징 및 빌드 컨텍스트에 사용할 수 있습니다.
Vertex AI 작업을 시작하는 데 필요한 권한이 있는 서비스 계정을 만듭니다. 서비스 계정에 권한을 할당하는 방법에 대한 자세한 내용은 GCP IAM 문서를 참조하십시오.
Vertex 작업을 관리할 수 있는 권한을 서비스 계정에 부여합니다.
권한
리소스 범위
설명
aiplatform.customJobs.create
지정된 GCP 프로젝트
프로젝트 내에서 새로운 기계학습 작업을 생성할 수 있습니다.
aiplatform.customJobs.list
지정된 GCP 프로젝트
프로젝트 내에서 기계학습 작업 목록을 볼 수 있습니다.
aiplatform.customJobs.get
지정된 GCP 프로젝트
프로젝트 내에서 특정 기계학습 작업에 대한 정보를 검색할 수 있습니다.
Vertex AI 워크로드가 비표준 서비스 계정의 ID를 사용하도록 하려면 서비스 계정 생성 및 필요한 권한에 대한 지침은 Vertex AI 설명서를 참조하십시오. Launch 대기열 설정의 spec.service_account 필드를 사용하여 W&B run 에 대한 사용자 정의 서비스 계정을 선택할 수 있습니다.
Vertex AI에 대한 대기열 구성
Vertex AI 리소스에 대한 대기열 구성은 Vertex AI Python SDK의 CustomJob 생성자와 CustomJob 의 run 메소드에 대한 입력을 지정합니다. 리소스 구성은 spec 및 run 키 아래에 저장됩니다.
spec 키에는 Vertex AI Python SDK의 CustomJob 생성자의 명명된 인수에 대한 값이 포함되어 있습니다.
run 키에는 Vertex AI Python SDK의 CustomJob 클래스의 run 메소드의 명명된 인수에 대한 값이 포함되어 있습니다.
실행 환경의 사용자 정의는 주로 spec.worker_pool_specs 목록에서 발생합니다. 작업자 풀 사양은 작업을 실행할 작업자 그룹을 정의합니다. 기본 구성의 작업자 사양은 가속기가 없는 단일 n1-standard-4 머신을 요청합니다. 필요에 따라 머신 유형, 가속기 유형 및 수를 변경할 수 있습니다.
사용 가능한 머신 유형 및 가속기 유형에 대한 자세한 내용은 Vertex AI 설명서를 참조하십시오.
Launch 에이전트가 Vertex AI에서 실행되는 이미지를 빌드하도록 하려면 고급 에이전트 설정을 참조하십시오.
에이전트 권한 설정
이 서비스 계정으로 인증하는 방법은 여러 가지가 있습니다. 이는 Workload Identity, 다운로드된 서비스 계정 JSON, 환경 변수, Google Cloud Platform 코맨드라인 툴 또는 이러한 방법의 조합을 통해 수행할 수 있습니다.
6 - Tutorial: Set up W&B Launch with Docker
다음 가이드는 로컬 장치에서 Docker를 사용하도록 W&B Launch를 구성하여 Launch 에이전트 환경과 대기열의 대상 리소스 모두에 대해 설명합니다.
Docker를 사용하여 작업을 실행하고 동일한 로컬 장치에서 Launch 에이전트의 환경으로 사용하는 것은 컴퓨팅이 Kubernetes와 같은 클러스터 관리 시스템이 없는 장치에 설치된 경우에 특히 유용합니다.
Docker 대기열을 사용하여 강력한 워크스테이션에서 워크로드를 실행할 수도 있습니다.
이 설정은 로컬 장치에서 Experiments를 수행하거나 Launch 작업을 제출하기 위해 SSH로 연결하는 원격 장치를 사용하는 사용자에게 일반적입니다.
W&B Launch와 함께 Docker를 사용하면 W&B는 먼저 이미지를 빌드한 다음 해당 이미지에서 컨테이너를 빌드하고 실행합니다. 이미지는 Docker docker run <image-uri> 코맨드로 빌드됩니다. 대기열 설정은 docker run 코맨드에 전달되는 추가 인수로 해석됩니다.
Docker 대기열 구성
Launch 대기열 설정(Docker 대상 리소스의 경우)은 docker run CLI 코맨드에 정의된 것과 동일한 옵션을 허용합니다.
에이전트는 대기열 설정에 정의된 옵션을 수신합니다. 그런 다음 에이전트는 수신된 옵션을 Launch 작업의 설정에서 가져온 재정의와 병합하여 대상 리소스(이 경우 로컬 장치)에서 실행되는 최종 docker run 코맨드를 생성합니다.
docker run \
--env MY_ENV_VAR=value \
--env MY_EXISTING_ENV_VAR \
--volume "/mnt/datasets:/mnt/datasets"\
--rm <image-uri> \
--gpus all
볼륨은 문자열 목록 또는 단일 문자열로 지정할 수 있습니다. 여러 볼륨을 지정하는 경우 목록을 사용하세요.
Docker는 값이 할당되지 않은 환경 변수를 Launch 에이전트 환경에서 자동으로 전달합니다. 즉, Launch 에이전트에 환경 변수 MY_EXISTING_ENV_VAR가 있는 경우 해당 환경 변수를 컨테이너에서 사용할 수 있습니다. 이는 대기열 설정에서 게시하지 않고 다른 구성 키를 사용하려는 경우에 유용합니다.
docker run 코맨드의 --gpus 플래그를 사용하면 Docker 컨테이너에서 사용할 수 있는 GPU를 지정할 수 있습니다. gpus 플래그를 사용하는 방법에 대한 자세한 내용은 Docker 설명서를 참조하세요.
코드 또는 아티팩트 소스 작업에서 이미지를 빌드하는 경우 에이전트에서 사용하는 기본 이미지를 재정의하여 NVIDIA Container Toolkit을 포함할 수 있습니다.
예를 들어, Launch 대기열 내에서 기본 이미지를 tensorflow/tensorflow:latest-gpu로 재정의할 수 있습니다.
launch-config.yaml이라는 YAML 구성 파일로 Launch 에이전트를 구성합니다. 기본적으로 W&B는 ~/.config/wandb/launch-config.yaml에서 구성 파일을 확인합니다. Launch 에이전트를 활성화할 때 다른 디렉토리를 선택적으로 지정할 수 있습니다.
W&B CLI를 사용하여 구성 YAML 파일 대신 Launch 에이전트에 대한 핵심 구성 가능 옵션(최대 작업 수, W&B Entity 및 Launch 대기열)을 지정할 수 있습니다. 자세한 내용은 wandb launch-agent 코맨드를 참조하세요.
핵심 에이전트 구성 옵션
다음 탭은 W&B CLI와 YAML 구성 파일로 핵심 구성 에이전트 옵션을 지정하는 방법을 보여줍니다.
장치의 Launch 에이전트를 구성하여 Docker 이미지를 빌드할 수 있습니다. 기본적으로 이러한 이미지는 장치의 로컬 이미지 리포지토리에 저장됩니다. Launch 에이전트가 Docker 이미지를 빌드할 수 있도록 하려면 Launch 에이전트 구성에서 builder 키를 docker로 설정합니다.
builder:
type: docker
에이전트가 Docker 이미지를 빌드하지 않고 레지스트리에서 미리 빌드된 이미지를 대신 사용하려면 Launch 에이전트 구성에서 builder 키를 noop로 설정합니다.
builder:
type: noop
컨테이너 레지스트리
Launch는 Dockerhub, Google Container Registry, Azure Container Registry 및 Amazon ECR과 같은 외부 컨테이너 레지스트리를 사용합니다.
빌드한 환경과 다른 환경에서 작업을 실행하려면 컨테이너 레지스트리에서 풀할 수 있도록 에이전트를 구성합니다.
Launch 에이전트를 클라우드 레지스트리에 연결하는 방법에 대한 자세한 내용은 고급 에이전트 설정 페이지를 참조하세요.