메인 콘텐츠로 건너뛰기

Colab에서 사용해 보기

W&B Launch로 하이퍼파라미터 튜닝 작업(Sweeps)을 만드세요. Launch에서 스윕을 사용하면, 스윕할 하이퍼파라미터가 지정된 스윕 스케줄러가 Launch Queue에 푸시됩니다. 스윕 스케줄러는 agent가 가져가는 즉시 시작되며, 선택된 하이퍼파라미터로 동일한 큐에 스윕 run을 실행합니다. 이 과정은 스윕이 완료되거나 중지될 때까지 계속됩니다. 기본 W&B Sweep 스케줄링 엔진을 사용할 수도 있고, 직접 맞춤형 스케줄러를 구현할 수도 있습니다:
  1. 표준 스윕 스케줄러: W&B Sweeps를 제어하는 기본 W&B Sweep 스케줄링 엔진을 사용합니다. 익숙한 bayes, grid, random 방법을 사용할 수 있습니다.
  2. 맞춤형 스윕 스케줄러: 스윕 스케줄러를 작업으로 실행되도록 설정합니다. 이 옵션을 사용하면 완전히 맞춤 설정할 수 있습니다. 표준 스윕 스케줄러를 확장해 logging을 더 포함하는 예시는 아래 섹션에서 확인할 수 있습니다.
이 가이드는 W&B Launch가 이미 설정되어 있다고 가정합니다. W&B Launch가 설정되어 있지 않다면 Launch 문서의 시작하기 섹션을 참조하세요.
Launch에서 스윕을 처음 사용하는 사용자라면 ‘basic’ 방법으로 스윕을 만드는 것을 권장합니다. 표준 W&B 스케줄링 엔진이 요구 사항을 충족하지 못하는 경우에는 Launch의 맞춤형 스윕 스케줄러를 사용하세요.

W&B 표준 스케줄러로 스윕 만들기

Launch를 사용해 W&B Sweeps를 만드세요. W&B App에서 대화형으로 스윕을 만들거나, W&B CLI를 사용해 프로그래밍 방식으로 만들 수 있습니다. 스케줄러를 사용자 지정하는 기능을 포함한 Launch 스윕의 고급 설정이 필요하면 CLI를 사용하세요.
W&B Launch로 스윕을 만들기 전에 먼저 스윕 대상 작업을 생성해야 합니다. 자세한 내용은 Create a Job 페이지를 참조하세요.
W&B App에서 대화형으로 스윕을 만듭니다.
  1. W&B App에서 W&B 프로젝트로 이동합니다.
  2. 프로젝트 사이드바에서 sweeps 아이콘(빗자루 모양 아이콘)을 선택합니다.
  3. 그런 다음 Create Sweep 버튼을 선택합니다.
  4. Configure Launch 버튼을 클릭합니다.
  5. Job 드롭다운 메뉴에서 작업 이름과, 해당 작업을 기반으로 스윕을 만들 작업 버전을 선택합니다.
  6. Queue 드롭다운 메뉴를 사용해 스윕을 실행할 큐를 선택합니다.
  7. Job Priority 드롭다운을 사용해 launch 작업의 우선순위를 지정합니다. launch 큐가 우선순위 지정을 지원하지 않으면 launch 작업의 우선순위는 “Medium”으로 설정됩니다.
  8. (선택 사항) run 또는 스윕 스케줄러의 override args를 설정합니다. 예를 들어 scheduler override를 사용해 num_workers로 스케줄러가 관리하는 동시 run 수를 설정할 수 있습니다.
  9. (선택 사항) Destination Project 드롭다운 메뉴를 사용해 스윕을 저장할 프로젝트를 선택합니다.
  10. Save를 클릭합니다.
  11. Launch Sweep을 선택합니다.
Launch sweep 설정

맞춤형 스윕 스케줄러 만들기

W&B 스케줄러나 맞춤형 스케줄러를 사용해 스윕용 맞춤형 스케줄러를 만드세요.
스케줄러 작업을 사용하려면 wandb CLI 버전이 0.15.4 이상이어야 합니다.
작업으로 W&B sweep 스케줄링 로직을 사용해 launch sweep을 생성합니다.
  1. 공개 wandb/sweep-jobs 프로젝트에서 Wandb scheduler 작업을 파악하거나, 다음 작업 이름을 사용합니다: 'wandb/sweep-jobs/job-wandb-sweep-scheduler:latest'
  2. 이 이름을 가리키는 job 키가 포함된 추가 scheduler 블록으로 설정 yaml을 작성합니다. 아래 예시를 참고하세요.
  3. 새 설정으로 wandb launch-sweep 명령어를 사용합니다.
예시 설정:
# launch-sweep-config.yaml  
description: 스케줄러 작업을 사용하는 Launch sweep 설정
scheduler:
  job: wandb/sweep-jobs/job-wandb-sweep-scheduler:latest
  num_workers: 8  # 동시 sweep run 8개 허용

# sweep run이 실행할 트레이닝/튜닝 작업
job: wandb/sweep-jobs/job-fashion-MNIST-train:latest
method: grid
parameters:
  learning_rate:
    min: 0.0001
    max: 0.1
맞춤형 스윕 스케줄러 작업으로 무엇을 할 수 있는지 보여주는 예제는 wandb/launch-jobs 리포지토리의 jobs/sweep_schedulers에서 확인할 수 있습니다. 이 가이드에서는 공개된 Wandb Scheduler Job을 사용하는 방법을 보여주고, 맞춤형 스윕 스케줄러 작업을 만드는 과정도 설명합니다.

Launch에서 sweep 재개하기

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