이 튜토리얼에서는 하이퍼파라미터 검색을 자동화하고 최고 성능 모델을 만드는 설정을 찾을 수 있도록 스윕을 정의, 초기화하고 실행하는 방법을 설명합니다. 이 튜토리얼은 이미 W&B에 run을 로깅하는 데 익숙하며, 대규모 하이퍼파라미터 튜닝을 시작하려는 사용자를 위한 것입니다.
이 튜토리얼의 주요 단계는 네 가지입니다:
- 트레이닝 코드를 설정합니다
- 스윕 설정으로 검색 공간을 정의합니다
- 스윕를 초기화합니다
- 스윕 에이전트를 시작합니다
시작하려면 다음 코드를 Jupyter Notebook 또는 Python 스크립트에 복사하여 붙여넣으세요. 다음 섹션에서는 이 예제의 각 부분을 나누어 설명합니다.
스윕 에이전트는 시도할 각 하이퍼파라미터 값 조합으로 트레이닝 함수를 호출하므로, 첫 번째 단계는 해당 값을 받아 W&B에 메트릭을 보고하는 함수를 작성하는 것입니다.
wandb.Run.config에서 하이퍼파라미터 값을 받아, 이를 사용해 모델을 트레이닝하고 메트릭을 반환하는 트레이닝 함수를 정의합니다.
선택 사항으로 run의 출력이 저장될 프로젝트 이름을 지정할 수 있습니다(wandb.init()의 project 파라미터). 프로젝트를 지정하지 않으면 W&B는 run을 “Uncategorized” 프로젝트에 저장합니다.
스윕와 run은 모두 동일한 프로젝트에 있어야 합니다. 따라서 W&B를 초기화할 때 지정하는 이름은 스윕를 초기화할 때 지정하는 프로젝트 이름과 일치해야 합니다.
트레이닝 함수가 준비되면, 다음 단계는 어떤 하이퍼파라미터를 변경할지와 이를 어떻게 검색할지를 W&B에 알려주는 것입니다.
딕셔너리에서 스윕할 하이퍼파라미터를 지정합니다. 설정 옵션은 스윕 설정 정의를 참조하세요.
다음 예제는 무작위 검색('method':'random')을 사용하는 스윕 설정을 보여줍니다. 이 스윕은 x 및 y 파라미터에 대해 설정에 나열된 값 집합을 무작위로 선택합니다.
W&B는 metric 키에 지정된 메트릭과 "goal": "minimize"가 연결되어 있으면 해당 메트릭을 최소화합니다. 이 경우 W&B는 메트릭 score("name": "score")가 최소화되도록 최적화합니다.
스윕를 초기화하면 검색 공간이 W&B에 등록되고 에이전트가 하이퍼파라미터 조합을 요청하는 데 사용하는 식별자가 반환됩니다.
W&B는 하나 이상의 머신에서 클라우드(standard) 또는 로컬(local) 환경에 걸쳐 스윕를 관리하기 위해 Sweep Controller를 사용합니다. Sweep Controller에 대한 자세한 내용은 로컬에서 검색 및 중지 알고리즘을 참조하세요.
스윕를 초기화하면 스윕 식별 번호가 반환됩니다:
자세한 내용은 Sweeps 초기화를 참조하세요.
스윕이 등록되면 에이전트를 시작해 Runs를 실행하고 검색 공간을 탐색하세요.
스윕을 시작하려면 wandb.agent() API 호출을 사용하세요.
에이전트가 시작되면 W&B에 하이퍼파라미터 조합을 요청하고, 각 조합에 대해 트레이닝 함수를 호출한 뒤, 생성된 메트릭을 프로젝트에 기록합니다.
스윕이 실행되면 W&B App에서 다양한 하이퍼파라미터 조합이 메트릭에 어떤 영향을 미치는지 살펴볼 수 있습니다.
프로젝트를 열어 W&B App 대시보드에서 실시간 결과를 확인하세요. 몇 번의 클릭만으로 병렬 좌표 플롯, 파라미터 중요도 분석, 다른 차트 유형과 같은 대화형 차트를 구축할 수 있습니다.
자세한 내용은 스윕 결과 시각화를 참조하세요. 대시보드 예시는 이 샘플 Sweeps 프로젝트를 참조하세요.
터미널에서 현재 run을 중지하려면 Ctrl+C를 누르세요. 한 번 더 누르면 에이전트가 종료됩니다.