메인 콘텐츠로 건너뛰기

Colab에서 시도하기

W&B Launch를 사용하여 하이퍼파라미터 튜닝 작업 (Sweeps)을 생성하세요. Launch에서의 Sweeps를 사용하면, 탐색할 하이퍼파라미터가 지정된 Sweep 스케줄러가 Launch Queue에 푸시됩니다. 에이전트가 Sweep 스케줄러를 가져와 시작하면, 선택된 하이퍼파라미터로 해당 큐에 Sweep Runs를 실행합니다. 이 과정은 Sweep이 완료되거나 중단될 때까지 계속됩니다. 기본 W&B Sweep 스케줄링 엔진을 사용하거나 사용자 정의 스케줄러를 직접 구현할 수 있습니다.
  1. 표준 Sweep 스케줄러: W&B Sweeps를 제어하는 기본 W&B Sweep 스케줄링 엔진을 사용합니다. 익숙한 bayes, grid, random 메소드를 사용할 수 있습니다.
  2. 커스텀 Sweep 스케줄러: Sweep 스케줄러를 하나의 작업(job)으로 실행되도록 설정합니다. 이 옵션은 완전한 커스터마이징을 가능하게 합니다. 더 많은 로깅을 포함하도록 표준 Sweep 스케줄러를 확장하는 예시는 아래 섹션에서 확인할 수 있습니다.
이 가이드는 W&B Launch가 이전에 구성되었다고 가정합니다. W&B Launch가 구성되지 않은 경우, Launch 문서의 시작 방법 섹션을 참조하세요.
Launch에서의 Sweeps를 처음 사용하는 경우 ‘basic’ 메소드를 사용하여 생성을 시작하는 것을 권장합니다. 표준 W&B 스케줄링 엔진이 요구 사항을 충족하지 못할 때 커스텀 스케줄러를 사용하세요.

W&B 표준 스케줄러로 Sweep 생성하기

Launch를 사용하여 W&B Sweeps를 생성하세요. W&B App에서 대화형으로 생성하거나 W&B CLI를 사용하여 프로그래밍 방식으로 생성할 수 있습니다. 스케줄러 커스터마이징을 포함한 고급 Launch Sweeps 설정의 경우 CLI를 사용하세요.
W&B Launch로 Sweep을 생성하기 전에, 먼저 Sweep을 수행할 작업을 생성해야 합니다. 자세한 내용은 작업 생성하기 페이지를 참조하세요.
W&B App을 통해 대화형으로 Sweep을 생성합니다.
  1. W&B App에서 해당 W&B Project로 이동합니다.
  2. 왼쪽 패널에서 Sweeps 아이콘(빗자루 이미지)을 선택합니다.
  3. 다음으로, Create Sweep 버튼을 선택합니다.
  4. Configure Launch 버튼을 클릭합니다.
  5. Job 드롭다운 메뉴에서 Sweep을 생성할 원본 작업의 이름과 버전을 선택합니다.
  6. Queue 드롭다운 메뉴를 사용하여 Sweep을 실행할 큐를 선택합니다.
  7. Job Priority 드롭다운을 사용하여 Launch 작업의 우선순위를 지정합니다. Launch Queue가 우선순위를 지원하지 않는 경우 “Medium”으로 설정됩니다.
  8. (선택 사항) Run 또는 Sweep 스케줄러에 대한 오버라이드 인수를 설정합니다. 예를 들어, 스케줄러 오버라이드를 사용하여 num_workers로 스케줄러가 관리하는 동시 실행 수를 설정할 수 있습니다.
  9. (선택 사항) Destination Project 드롭다운 메뉴를 사용하여 Sweep을 저장할 프로젝트를 선택합니다.
  10. Save를 클릭합니다.
  11. Launch Sweep을 선택합니다.
Launch sweep configuration

커스텀 Sweep 스케줄러 생성하기

W&B 스케줄러 또는 커스텀 스케줄러를 사용하여 커스텀 Sweep 스케줄러를 생성하세요.
스케줄러 작업을 사용하려면 wandb cli 버전 0.15.4 이상이 필요합니다.
W&B Sweep 스케줄링 로직을 작업으로 사용하여 Launch Sweep을 생성합니다.
  1. 공개 wandb/sweep-jobs 프로젝트에서 Wandb 스케줄러 작업을 식별하거나, 다음 작업 이름을 사용합니다: 'wandb/sweep-jobs/job-wandb-sweep-scheduler:latest'
  2. 이 이름을 가리키는 job 키를 포함한 scheduler 블록을 추가하여 설정 yaml 파일을 구성합니다 (아래 예시 참조).
  3. 새 설정과 함께 wandb launch-sweep 명령을 사용합니다.
설정 예시:
# launch-sweep-config.yaml  
description: Launch sweep config using a scheduler job
scheduler:
  job: wandb/sweep-jobs/job-wandb-sweep-scheduler:latest
  num_workers: 8  # 8개의 동시 sweep runs 허용

# sweep runs가 실행할 트레이닝/튜닝 작업
job: wandb/sweep-jobs/job-fashion-MNIST-train:latest
method: grid
parameters:
  learning_rate:
    min: 0.0001
    max: 0.1
커스텀 Sweep 스케줄러 작업으로 가능한 예시들은 wandb/launch-jobs 레포지토리의 jobs/sweep_schedulers 아래에서 확인할 수 있습니다. 이 가이드는 공개적으로 사용 가능한 Wandb Scheduler Job을 사용하는 방법과 커스텀 Sweep 스케줄러 작업을 만드는 프로세스를 보여줍니다.

Launch에서의 Sweep 재개 방법

이전에 실행된 Launch Sweep에서 작업을 재개하는 것도 가능합니다. 하이퍼파라미터와 트레이닝 작업은 변경할 수 없지만, 스케줄러 관련 파라미터와 푸시되는 큐는 변경할 수 있습니다.
초기 Sweep이 ‘latest’와 같은 에일리어스가 지정된 트레이닝 작업을 사용한 경우, 마지막 실행 이후 최신 작업 버전이 변경되었다면 재개 시 결과가 달라질 수 있습니다.
  1. 이전에 실행된 Launch Sweep의 이름/ID를 확인합니다. Sweep ID는 W&B App의 프로젝트에서 찾을 수 있는 8자리 문자열(예: hhd16935)입니다.
  2. 스케줄러 파라미터를 변경하는 경우 업데이트된 설정 파일을 작성합니다.
  3. 터미널에서 다음 명령을 실행합니다. < >로 감싸진 내용을 해당 정보로 교체하세요:
wandb launch-sweep <optional config.yaml> --resume_id <sweep id> --queue <queue_name>