메인 콘텐츠로 건너뛰기

Launch란 무엇인가요?

Colab에서 사용해 보기

W&B Launch를 사용하면 로컬 데스크톱에서 돌리던 학습 실행을 Amazon SageMaker, Kubernetes 등의 컴퓨팅 리소스로 손쉽게 확장할 수 있습니다. W&B Launch를 구성해 두면 몇 번의 클릭과 명령만으로 학습 스크립트를 실행하고, 모델 평가 스위트를 실행하며, 프로덕션 추론용 모델을 준비하는 등의 작업을 빠르게 수행할 수 있습니다.

작동 방식

Launch는 launch job, queue, agent의 세 가지 기본 구성 요소로 이루어져 있습니다. launch job은 ML 워크플로에서 작업을 구성하고 실행하기 위한 설정 템플릿입니다. launch job을 만들었다면 이를 launch queue에 추가할 수 있습니다. launch queue는 선입선출(FIFO) 방식의 큐로, Amazon SageMaker나 Kubernetes 클러스터와 같은 특정 컴퓨팅 대상 리소스에 작업을 구성하고 제출할 수 있습니다. 작업이 queue에 추가되면 launch agent가 해당 queue를 폴링하고, queue에서 지정한 대상 시스템에서 job을 실행합니다.
W&B Launch 개요 다이어그램
사용 사례에 따라, 여러분(또는 팀의 다른 구성원)이 선택한 compute resource target(예: Amazon SageMaker)에 맞게 launch queue를 구성하고, 자체 인프라에 launch agent를 배포하게 됩니다. Launch에 대한 더 자세한 내용은 용어 및 개념 페이지를 참고하세요.

시작하기

사용 사례에 따라 다음 리소스를 참고해 W&B Launch 사용을 시작하세요:

워크스루

이 페이지에서는 W&B Launch 워크플로우의 기본 사항을 단계별로 살펴봅니다.
W&B Launch는 컨테이너에서 머신러닝 워크로드를 실행합니다. 컨테이너에 대한 사전 지식은 필수는 아니지만, 이 워크스루를 이해하는 데 도움이 될 수 있습니다. 컨테이너에 대한 기초 설명은 Docker 문서를 참고하세요.

필수 조건

시작하기 전에 다음 요구 사항을 충족했는지 확인하세요:
  1. https://wandb.ai/site에서 계정을 생성한 후 W&B 계정에 로그인합니다.
  2. 이 워크스루를 실행하려면 Docker CLI와 엔진이 정상적으로 동작하는 머신에 터미널로 접속할 수 있어야 합니다. 자세한 내용은 Docker 설치 가이드를 참고하세요.
  3. W&B Python SDK 0.17.1 이상 버전을 설치합니다:
    pip install wandb>=0.17.1
    
  4. 터미널에서 wandb login을 실행하거나 WANDB_API_KEY 환경 변수를 설정해 W&B에 인증합니다.
터미널에서 다음 명령을 실행하세요:
wandb login

Launch job 생성

launch job은 다음과 같은 세 가지 방법 중 하나로 생성할 수 있습니다: Docker 이미지 사용, git 리포지토리에서 실행, 로컬 소스 코드에서 실행.
W&B에 메시지를 기록하는 미리 만들어진 컨테이너를 실행하려면 터미널을 열고 다음 명령을 실행합니다:
wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart
위 명령은 컨테이너 이미지 wandb/job_hello_world:main을 다운로드하고 실행합니다.Launch는 컨테이너를 구성하여 wandb로 기록되는 모든 내용을 launch-quickstart 프로젝트로 전송하도록 설정합니다. 컨테이너는 W&B에 메시지를 기록하고, W&B에서 새로 생성된 실행에 대한 링크를 표시합니다. 링크를 클릭하여 W&B UI에서 실행을 확인하세요.

큐 생성하기

Launch는 팀이 공유 컴퓨팅 자원을 기반으로 워크플로를 구축할 수 있도록 설계되었습니다. 지금까지의 예시에서는 wandb launch 명령이 로컬 머신에서 컨테이너를 동기 방식으로 실행했습니다. Launch 큐와 에이전트는 공유 리소스에서 작업을 비동기적으로 실행하고, 우선순위 지정 및 하이퍼파라미터 최적화와 같은 고급 기능을 사용할 수 있게 해줍니다. 기본 큐를 생성하려면 다음 단계를 따르세요:
  1. wandb.ai/launch로 이동한 다음 Create a queue 버튼을 클릭합니다.
  2. 큐와 연결할 **엔터티(Entity)**를 선택합니다.
  3. Queue name을 입력합니다.
  4. ResourceDocker를 선택합니다.
  5. Configuration은 지금은 비워 둡니다.
  6. Create queue를 클릭합니다. :rocket:
버튼을 클릭하면 브라우저가 큐 화면의 Agents 탭으로 자동으로 이동합니다. 에이전트가 폴링을 시작할 때까지 큐는 Not active 상태로 유지됩니다.
Docker 큐 생성
고급 큐 구성 옵션은 고급 큐 설정 페이지를 참고하세요.

에이전트를 큐에 연결하기

큐에 폴링 에이전트가 하나도 없으면, 큐 화면 상단의 빨간 배너에 Add an agent 버튼이 표시됩니다. 이 버튼을 클릭해 에이전트를 실행할 명령을 복사합니다. 명령은 다음과 같은 형태입니다:
wandb launch-agent --queue <queue-name> --entity <entity-name>
터미널에서 명령을 실행하여 에이전트를 시작합니다. 에이전트는 지정된 큐를 폴링하여 실행할 작업을 가져옵니다. 작업을 받으면, 에이전트는 해당 작업에 사용할 컨테이너 이미지를 다운로드하거나 빌드한 다음, 로컬에서 wandb launch 명령을 실행한 것처럼 이미지를 실행합니다. Launch 페이지로 돌아가 큐가 이제 Active로 표시되는지 확인합니다.

작업을 큐에 제출하기

W&B 계정에서 새 launch-quickstart 프로젝트로 이동한 다음, 화면 왼쪽 탐색 메뉴에서 Jobs 탭을 엽니다. Jobs 페이지에는 이전에 실행된 실행들에서 생성된 W&B Job 목록이 표시됩니다. Launch Job을 클릭하면 소스 코드, 종속성, 그리고 해당 Job에서 생성된 실행들을 확인할 수 있습니다. 이 안내를 모두 완료하면 목록에 Job이 세 개 있어야 합니다. 새로 생성된 Job 중 하나를 선택하고, 다음 지침에 따라 큐에 제출합니다:
  1. Launch 버튼을 클릭하여 Job을 큐에 제출합니다. 그러면 Launch 드로어가 열립니다.
  2. 이전에 생성한 Queue를 선택한 다음 Launch를 클릭합니다.
이렇게 하면 Job이 큐에 제출됩니다. 이 큐를 폴링하는 에이전트가 Job을 가져와 실행합니다. Job의 진행 상황은 W&B UI에서 모니터링하거나, 터미널에서 에이전트 출력 내용을 확인하여 추적할 수 있습니다. wandb launch 명령은 --queue 인수를 지정하여 Job을 큐로 직접 전송할 수 있습니다. 예를 들어, hello-world 컨테이너 Job을 큐에 제출하려면 다음 명령을 실행합니다:
   wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart --queue <queue-name>