메인 콘텐츠로 건너뛰기
이 페이지에서는 W&B Launch를 설정하는 데 필요한 상위 수준의 step을 설명합니다:
  1. 큐 설정: 큐는 FIFO 방식이며 큐 설정을 가집니다. 큐 설정은 작업이 대상 리소스에서 어디서, 어떻게 실행되는지를 제어합니다.
  2. 에이전트 설정: 에이전트는 머신/인프라에서 실행되며 하나 이상의 큐를 폴링해 launch job을 확인합니다. 작업을 가져오면 에이전트는 이미지가 빌드되어 사용 가능한 상태인지 확인합니다. 그런 다음 작업을 대상 리소스에 제출합니다.

큐 설정

Launch 큐는 특정 대상 리소스를 가리키도록 구성되어야 하며, 해당 리소스에 필요한 추가 설정도 함께 포함해야 합니다. 예를 들어 Kubernetes 클러스터를 가리키는 Launch 큐에는 환경 변수가 포함되거나, Launch 큐 설정에서 맞춤형 네임스페이스를 지정할 수 있습니다. 큐를 생성할 때는 사용할 대상 리소스와 해당 리소스에 적용할 설정을 모두 지정합니다. 에이전트가 큐에서 작업을 받으면 큐 설정도 함께 받습니다. 에이전트가 작업을 대상 리소스에 제출할 때는 작업 자체에서 지정한 override와 함께 큐 설정도 포함합니다. 예를 들어 특정 작업 인스턴스에만 Amazon SageMaker 인스턴스 유형을 지정하기 위해 작업 설정을 사용할 수 있습니다. 이 경우 일반적으로 queue config templates를 최종 사용자 인터페이스로 사용합니다.

큐 생성

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

Launch 에이전트 설정

Launch 에이전트는 하나 이상의 Launch 큐에서 작업을 폴링하는 장시간 실행 프로세스입니다. Launch 에이전트는 가져오는 큐에 따라 작업을 선입선출(FIFO) 순서 또는 우선순위 순서로 큐에서 꺼냅니다. 에이전트가 큐에서 작업을 꺼내면, 필요에 따라 해당 작업의 이미지를 빌드합니다. 그런 다음 에이전트는 큐 설정에 지정된 설정 옵션과 함께 작업을 대상 리소스에 제출합니다.
에이전트는 매우 유연하므로 다양한 사용 사례를 지원하도록 설정할 수 있습니다. 에이전트에 필요한 설정은 구체적인 사용 사례에 따라 달라집니다. Docker, Amazon SageMaker, Kubernetes, 또는 Vertex AI의 전용 페이지를 참조하세요.
W&B는 특정 사용자의 API 키보다 서비스 계정의 API 키로 에이전트를 시작할 것을 권장합니다. 서비스 계정의 API 키를 사용하면 두 가지 이점이 있습니다:
  1. 에이전트가 특정 개인 사용자에게 종속되지 않습니다.
  2. Launch를 통해 생성된 run의 작성자는 에이전트와 연결된 사용자가 아니라 launch job을 제출한 사용자로 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 에이전트의 핵심 설정 키를 지정하는 방법을 보여줍니다.
launch-config.yaml
# 동시에 수행할 최대 run 수. -1 = 제한 없음
max_jobs: -1

entity: <entity-name>

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

컨테이너 빌더 설정

Launch 에이전트는 이미지를 빌드하도록 설정할 수 있습니다. git 리포지토리 또는 코드 artifact에서 생성된 launch job을 사용하려면 에이전트가 컨테이너 빌더를 사용하도록 설정해야 합니다. launch job을 만드는 방법에 대한 자세한 내용은 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 또는 VertexAI에서 실행하려는 경우
  • Launch 에이전트가 이미지 저장소에서 이미지를 가져오는 데 필요한 자격 증명을 제공하도록 하려는 경우
에이전트가 컨테이너 레지스트리와 상호작용하도록 설정하는 방법을 자세히 알아보려면 고급 에이전트 설정 페이지를 참조하세요.

Launch 에이전트 활성화

launch-agent W&B CLI 명령을 사용해 Launch 에이전트를 활성화하세요:
wandb launch-agent -q <queue-1> -q <queue-2> --max-jobs 5
일부 경우에는 Kubernetes 클러스터 내부에서 큐를 폴링하는 Launch 에이전트를 실행할 수 있습니다. 자세한 내용은 고급 큐 설정 페이지를 참조하세요.