메인 콘텐츠로 건너뛰기

Launch란 무엇인가요?

Colab에서 시도해보기

W&B Launch를 사용하면 데스크톱의 트레이닝 Runs를 Amazon SageMaker, Kubernetes 등과 같은 컴퓨팅 리소스로 쉽게 확장할 수 있습니다. W&B Launch가 설정되면 몇 번의 클릭과 코맨드만으로 트레이닝 스크립트 실행, 모델 평가 제품군 실행, 프로덕션 추론을 위한 모델 준비 등을 신속하게 수행할 수 있습니다.

작동 방식

Launch는 launch jobs, queues, 그리고 agents라는 세 가지 핵심 구성 요소로 이루어져 있습니다. launch job은 기계학습 워크플로우에서 태스크를 설정하고 실행하기 위한 청사진입니다. launch job이 생성되면 이를 launch queue에 추가할 수 있습니다. launch queue는 선입선출(FIFO) 큐로, Amazon SageMaker나 Kubernetes 클러스터와 같은 특정 컴퓨팅 타겟 리소스에 jobs를 설정하고 제출할 수 있는 곳입니다. jobs가 큐에 추가되면, launch agents가 해당 큐를 폴링하여 큐가 지정한 시스템에서 job을 실행합니다.
W&B Launch 개요 다이어그램
사용자의 유스 케이스에 따라, 사용자(또는 팀 구성원)는 선택한 컴퓨팅 리소스 타겟(예: 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에서 새로 생성된 run으로 연결되는 링크를 표시합니다. 링크를 클릭하여 W&B UI에서 run을 확인하세요.

큐 생성하기

Launch는 팀이 공유 컴퓨팅 리소스를 중심으로 워크플로우를 구축할 수 있도록 설계되었습니다. 지금까지의 예시에서 wandb launch 코맨드는 로컬 머신에서 동기적으로 컨테이너를 실행했습니다. Launch queues와 agents를 사용하면 공유 리소스에서 비동기적으로 jobs를 실행할 수 있으며 우선순위 지정 및 하이퍼파라미터 최적화와 같은 고급 기능을 사용할 수 있습니다. 기본 큐를 생성하려면 다음 단계를 따르세요:
  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>
터미널에서 이 코맨드를 실행하여 에이전트를 시작합니다. 에이전트는 지정된 큐에서 실행할 jobs가 있는지 폴링합니다. job을 받으면 에이전트는 wandb launch 코맨드가 로컬에서 실행된 것처럼 컨테이너 이미지를 다운로드하거나 빌드한 후 실행합니다. Launch 페이지로 돌아가서 큐가 이제 Active로 표시되는지 확인합니다.

큐에 job 제출하기

W&B 계정에서 새로운 launch-quickstart 프로젝트로 이동하여 화면 왼쪽 내비게이션에서 jobs 탭을 엽니다. Jobs 페이지에는 이전에 실행된 Runs로부터 생성된 W&B Jobs 목록이 표시됩니다. launch job을 클릭하면 소스 코드, 종속성 및 해당 job에서 생성된 모든 Runs를 볼 수 있습니다. 이 워크스루를 완료하면 목록에 세 개의 jobs가 있어야 합니다. 새로운 jobs 중 하나를 선택하고 다음 지침에 따라 큐에 제출하세요:
  1. Launch 버튼을 클릭하여 job을 큐에 제출합니다. Launch 창이 나타납니다.
  2. 이전에 생성한 Queue를 선택하고 Launch를 클릭합니다.
이렇게 하면 job이 큐에 제출됩니다. 이 큐를 폴링하는 에이전트가 job을 가져와 실행합니다. job의 진행 상황은 W&B UI에서 모니터링하거나 터미널에서 에이전트의 출력을 확인하여 알 수 있습니다. wandb launch 코맨드에 --queue 인수를 지정하여 큐에 직접 jobs를 푸시할 수도 있습니다. 예를 들어, hello-world 컨테이너 job을 큐에 제출하려면 다음 코맨드를 실행하세요:
wandb launch --docker-image wandb/job_hello_world:main --project launch-quickstart --queue <queue-name>