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

큐 설정하기

Launch 큐는 특정 대상 리소스를 가리키도록 설정해야 하며, 해당 리소스에 특화된 추가 구성도 포함해야 합니다. 예를 들어 Kubernetes 클러스터를 대상으로 하는 Launch 큐는 환경 변수나 사용자 지정 네임스페이스와 같은 설정을 큐 구성에 포함할 수 있습니다. 큐를 생성할 때는 사용하려는 대상 리소스와 그 리소스에서 사용할 구성을 모두 지정해야 합니다. 에이전트가 큐에서 작업을 가져오면 큐 구성도 함께 전달받습니다. 에이전트가 작업을 대상 리소스로 제출할 때는 작업 자체에서 정의한 오버라이드 설정과 함께 큐 구성을 포함하여 전달합니다. 예를 들어, 특정 작업 인스턴스에서만 사용할 Amazon SageMaker 인스턴스 타입을 작업 구성으로 지정할 수 있습니다. 이 경우에는 최종 사용자 인터페이스로 queue config templates를 사용하는 것이 일반적입니다.

큐 생성하기

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

Launch 에이전트 설정

Launch 에이전트는 하나 이상의 Launch 큐에서 작업을 주기적으로 가져오는 장기 실행 프로세스입니다. Launch 에이전트는 연결된 큐의 설정에 따라 선입선출(FIFO) 방식 또는 우선순위 순서로 작업을 디큐합니다. 에이전트가 큐에서 작업을 디큐하면 필요에 따라 해당 작업을 위한 이미지를 빌드합니다. 그런 다음 에이전트는 큐 구성에 지정된 설정 옵션과 함께 작업을 대상 리소스에 제출합니다.
에이전트는 매우 유연하며, 다양한 사용 사례를 지원하도록 구성할 수 있습니다. 에이전트에 필요한 구성은 특정 사용 사례에 따라 달라집니다. Docker, Amazon SageMaker, Kubernetes, 또는 Vertex AI에 대한 전용 페이지를 참조하세요.
W&B는 특정 사용자의 API key가 아니라 서비스 계정의 API key로 에이전트를 시작할 것을 권장합니다. 서비스 계정의 API key를 사용할 때의 이점은 다음 두 가지입니다:
  1. 에이전트가 개별 사용자에게 의존하지 않습니다.
  2. Launch를 통해 생성된 실행에 연결된 작성자는, 에이전트와 연결된 사용자가 아니라 Launch 작업을 제출한 사용자로 Launch에서 인식됩니다.

에이전트 구성

launch-config.yaml이라는 이름의 YAML 파일로 launch agent를 구성합니다. 기본적으로 W&B는 ~/.config/wandb/launch-config.yaml에서 설정 파일을 찾습니다. launch agent를 활성화할 때 원하는 경우 다른 디렉터리를 지정할 수 있습니다. launch agent 설정 파일의 내용은 launch agent의 환경, launch queue의 대상 리소스, Docker builder 요구 사항, 클라우드 레지스트리 요구 사항 등에 따라 달라집니다. 사용 사례와 관계없이 launch agent에 대해 설정할 수 있는 핵심 옵션은 다음과 같습니다:
  • max_jobs: 에이전트가 동시에 실행할 수 있는 최대 작업 수
  • entity: 큐가 속한 엔터티
  • queues: 에이전트가 감시(watch)할 하나 이상의 큐 이름
설정 YAML 파일 대신 W&B CLI를 사용해 launch agent에 대한 공통 설정 옵션을 지정할 수 있습니다. 예를 들어 최대 작업 수, W&B 엔터티, launch queue 등을 설정할 수 있습니다. 자세한 내용은 wandb launch-agent 명령을 참조하세요.
다음 YAML 스니펫은 핵심 launch agent 설정 키를 지정하는 방법을 보여줍니다:
launch-config.yaml
# 동시에 수행할 최대 실행 수. -1 = 제한 없음
max_jobs: -1

entity: <entity-name>

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

컨테이너 빌더 구성

launch agent는 이미지를 빌드하도록 구성할 수 있습니다. Git 리포지토리나 코드 아티팩트에서 생성된 launch job을 사용하려면, 에이전트가 컨테이너 빌더를 사용하도록 설정해야 합니다. launch job 생성 방법에 대한 자세한 내용은 Create a launch job을 참조하세요. W&B Launch는 다음 세 가지 빌더 옵션을 지원합니다:
  • Docker: Docker 빌더는 로컬 Docker 데몬을 사용하여 이미지를 빌드합니다.
  • Kaniko: Kaniko는 Docker 데몬을 사용할 수 없는 환경에서 이미지 빌드를 가능하게 하는 Google 프로젝트입니다.
  • Noop: 에이전트는 job을 빌드하지 않고, 대신 미리 빌드된 이미지만 pull합니다.
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 에이전트가 이미지 레지스트리에서 이미지를 pull 할 수 있도록 자격 증명을 제공하도록 하려는 경우
에이전트가 컨테이너 레지스트리와 상호작용하도록 구성하는 방법에 대한 자세한 내용은 고급 에이전트 설정 페이지를 참고하세요.

launch agent 활성화

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