메인 콘텐츠로 건너뛰기
이 페이지에서는 W&B Launch 를 설정하는 데 필요한 상위 레벨의 단계를 설명합니다:
  1. 큐(queue) 설정: 큐는 FIFO(선입선출) 방식이며 큐 설정을 가집니다. 큐의 설정은 대상 리소스에서 작업이 실행되는 위치와 방법을 제어합니다.
  2. 에이전트 설정: 에이전트는 사용자의 머신/인프라에서 실행되며 하나 이상의 큐에서 launch 작업을 폴링합니다. 작업이 추출되면 에이전트는 이미지가 빌드되고 사용 가능한지 확인합니다. 그런 다음 에이전트는 대상 리소스에 작업을 제출합니다.

큐 설정

Launch 큐는 특정 대상 리소스를 가리키도록 구성되어야 하며, 해당 리소스와 관련된 추가 설정이 포함되어야 합니다. 예를 들어, Kubernetes 클러스터를 가리키는 launch 큐는 큐 설정에 환경 변수를 포함하거나 커스텀 네임스페이스를 설정할 수 있습니다. 큐를 생성할 때 사용할 대상 리소스와 해당 리소스가 사용할 설정을 모두 지정하게 됩니다. 에이전트가 큐에서 작업을 받으면 큐 설정도 함께 받습니다. 에이전트가 대상 리소스에 작업을 제출할 때, 작업 자체의 오버라이드 값과 함께 큐 설정을 포함합니다. 예를 들어, 작업 설정을 사용하여 해당 작업 인스턴스에 대해서만 Amazon SageMaker 인스턴스 유형을 지정할 수 있습니다. 이 경우 최종 사용자 인터페이스로 큐 설정 템플릿을 사용하는 것이 일반적입니다.

큐 생성

  1. wandb.ai/launch의 Launch 앱으로 이동합니다.
  2. 화면 오른쪽 상단의 create queue 버튼을 클릭합니다.
Creating a Launch queue
  1. Entity 드롭다운 메뉴에서 큐가 속할 엔티티를 선택합니다.
  2. Queue 필드에 큐 이름을 입력합니다.
  3. Resource 드롭다운에서 이 큐에 추가된 작업이 사용할 컴퓨팅 리소스를 선택합니다.
  4. 이 큐에 대해 Prioritization(우선순위 지정)을 허용할지 여부를 선택합니다. 우선순위 지정이 활성화되면 팀의 사용자가 launch 작업을 큐에 넣을 때 우선순위를 정의할 수 있습니다. 우선순위가 높은 작업이 낮은 작업보다 먼저 실행됩니다.
  5. Configuration 필드에 JSON 또는 YAML 형식으로 리소스 설정을 제공합니다. 설정 문서의 구조와 의미는 큐가 가리키는 리소스 유형에 따라 달라집니다. 자세한 내용은 대상 리소스에 대한 전용 설정 페이지를 참조하세요.

Launch 에이전트 설정

Launch 에이전트는 하나 이상의 launch 큐에서 작업을 폴링하는 장기 실행 프로세스입니다. Launch 에이전트는 가져오는 큐에 따라 FIFO(선입선출) 순서 또는 우선순위 순서로 작업을 디큐(dequeue)합니다. 에이전트가 큐에서 작업을 디큐하면 선택적으로 해당 작업에 대한 이미지를 빌드합니다. 그런 다음 에이전트는 큐 설정에 지정된 설정 옵션과 함께 작업을 대상 리소스에 제출합니다.
에이전트는 매우 유연하며 다양한 유스 케이스를 지원하도록 설정할 수 있습니다. 에이전트에 필요한 설정은 특정 유스 케이스에 따라 달라집니다. Docker, Amazon SageMaker, Kubernetes 또는 Vertex AI 전용 페이지를 참조하세요.
W&B는 특정 사용자의 API 키가 아닌 서비스 계정의 API 키로 에이전트를 시작할 것을 권장합니다. 서비스 계정의 API 키를 사용하면 두 가지 장점이 있습니다:
  1. 에이전트가 개별 사용자에게 종속되지 않습니다.
  2. 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: 큐가 속한 엔티티
  • queues: 에이전트가 모니터링할 하나 이상의 큐 이름
(설정 YAML 파일 대신) W&B CLI를 사용하여 launch 에이전트의 공통 설정 옵션을 지정할 수 있습니다: 최대 작업 수, W&B 엔티티 및 launch 큐. 자세한 내용은 wandb launch-agent 커맨드를 참조하세요.
다음 YAML 코드조각은 핵심 launch 에이전트 설정 키를 지정하는 방법을 보여줍니다:
launch-config.yaml
# 수행할 동시 run의 최대 수. -1 = 제한 없음
max_jobs: -1

entity: <entity-name>

# 폴링할 큐 목록.
queues:
  - <queue-name>

컨테이너 빌더 설정

Launch 에이전트는 이미지를 빌드하도록 설정할 수 있습니다. Git 저장소나 코드 아티팩트에서 생성된 launch 작업을 사용하려면 컨테이너 빌더를 사용하도록 에이전트를 설정해야 합니다. launch 작업을 생성하는 방법에 대한 자세한 내용은 Create a launch job을 참조하세요. W&B Launch는 세 가지 빌더 옵션을 지원합니다:
  • Docker: Docker 빌더는 로컬 Docker 데몬을 사용하여 이미지를 빌드합니다.
  • Kaniko: Kaniko는 Docker 데몬을 사용할 수 없는 환경에서 이미지 빌드를 가능하게 하는 Google 프로젝트입니다.
  • Noop: 에이전트가 작업을 빌드하려고 시도하지 않고, 미리 빌드된 이미지만 가져옵니다.
Docker 데몬을 사용할 수 없는 환경(예: Kubernetes 클러스터)에서 에이전트가 폴링하는 경우 Kaniko 빌더를 사용하세요.Kaniko 빌더에 대한 자세한 내용은 Set up Kubernetes를 참조하세요.
이미지 빌더를 지정하려면 에이전트 설정에 builder 키를 포함하세요. 예를 들어, 다음 코드조각은 Docker 또는 Kaniko 사용을 지정하는 launch 설정(launch-config.yaml)의 일부를 보여줍니다:
launch-config.yaml
builder:
  type: docker | kaniko | noop

컨테이너 레지스트리 설정

경우에 따라 launch 에이전트를 클라우드 레지스트리에 연결하고 싶을 수 있습니다. launch 에이전트를 클라우드 레지스트리에 연결하려는 일반적인 시나리오는 다음과 같습니다:
  • 강력한 워크스테이션이나 클러스터와 같이 이미지를 빌드한 환경이 아닌 다른 환경에서 작업을 실행하려는 경우.
  • 에이전트를 사용하여 이미지를 빌드하고 이 이미지를 Amazon SageMaker 또는 Vertex AI에서 실행하려는 경우.
  • Launch 에이전트가 이미지 저장소에서 풀(pull)하기 위한 자격 증명을 제공하도록 하려는 경우.
에이전트가 컨테이너 레지스트리와 상호 작용하도록 설정하는 방법에 대한 자세한 내용은 Advanced agent set up 페이지를 참조하세요.

Launch 에이전트 활성화

launch-agent W&B CLI 커맨드로 launch 에이전트를 활성화합니다:
wandb launch-agent -q <queue-1> -q <queue-2> --max-jobs 5
일부 유스 케이스에서는 Kubernetes 클러스터 내에서 launch 에이전트가 큐를 폴링하도록 하고 싶을 수 있습니다. 자세한 내용은 Advanced queue set up page를 참조하세요.