메인 콘텐츠로 건너뛰기
sweep 설정은 중첩된 키-값 쌍으로 이루어집니다. sweep 설정의 최상위 키를 사용해 검색할 파라미터(parameter 키), 파라미터 공간을 탐색하는 방식(method 키) 등 sweep 검색의 특성을 정의할 수 있습니다. 다음 표에는 최상위 sweep 설정 키와 각 키에 대한 간단한 설명이 나와 있습니다. 각 키에 대한 자세한 내용은 해당 섹션을 참조하세요.
Top-level keys설명
program(필수) 실행할 트레이닝 스크립트
entity이 sweep의 entity
project이 sweep의 프로젝트
descriptionsweep에 대한 텍스트 설명
nameW&B UI에 표시되는 sweep의 이름
method(필수) 검색 전략
metric최적화할 메트릭(일부 검색 전략 및 중지 기준에서만 사용)
parameters(필수) 검색할 파라미터 범위
early_terminate조기 종료 기준
command트레이닝 스크립트를 호출하고 인수를 전달하기 위한 command 구조
run_cap이 sweep의 최대 run 수
sweep 설정을 구성하는 방법에 대한 자세한 내용은 Sweep configuration 구조를 참조하세요.

metric

metric 최상위 sweep 설정 키를 사용해 최적화할 메트릭의 이름, 목표, 대상 메트릭을 지정합니다.
설명
name최적화할 메트릭의 이름입니다.
goalminimize 또는 maximize입니다(기본값은 minimize).
target최적화할 메트릭의 목표값입니다. run이 지정한 목표값에 도달하면 sweep은 더 이상 새 run을 생성하지 않습니다. run을 실행 중인 활성 에이전트는 해당 run이 목표값에 도달하더라도 run이 완료될 때까지 기다린 후 새 run 생성을 중지합니다.

parameters

YAML 파일 또는 Python 스크립트에서 parameters를 최상위 키로 지정합니다. parameters 키 안에는 최적화하려는 하이퍼파라미터의 이름을 지정합니다. 일반적인 하이퍼파라미터로는 학습률, batch size, 에포크, 옵티마이저 등이 있습니다. sweep 설정에서 정의하는 각 하이퍼파라미터마다 하나 이상의 검색 제약 조건을 지정합니다. 다음 표에는 지원되는 하이퍼파라미터 검색 제약 조건이 나와 있습니다. 하이퍼파라미터와 사용 사례에 따라 아래 검색 제약 조건 중 하나를 사용해, sweep 에이전트가 어디를(분포의 경우) 또는 무엇을(value, values 등) 검색하거나 사용해야 하는지 지정합니다.
검색 제약 조건설명
values이 하이퍼파라미터에 사용할 수 있는 모든 유효한 값을 지정합니다. grid와 호환됩니다.
value이 하이퍼파라미터에 사용할 단일 유효 값을 지정합니다. grid와 호환됩니다.
distribution확률 distribution을 지정합니다. 기본값에 대한 자세한 내용은 이 표 아래의 참고를 참조하세요.
probabilitiesrandom을 사용할 때 values의 각 요소가 선택될 확률을 지정합니다.
min, max(intor float) 최솟값과 최댓값입니다. int인 경우 int_uniform 분포 하이퍼파라미터에 사용합니다. float인 경우 uniform 분포 하이퍼파라미터에 사용합니다.
mu(float) normal 또는 lognormal 분포 하이퍼파라미터의 평균 파라미터입니다.
sigma(float) normal 또는 lognormal 분포 하이퍼파라미터의 표준편차 파라미터입니다.
q(float) 양자화된 하이퍼파라미터의 양자화 step 크기입니다.
parameters최상위 파라미터 아래에 다른 파라미터를 중첩합니다.
distribution을 지정하지 않으면 W&B는 다음 조건에 따라 아래 분포를 설정합니다.
  • values를 지정하면 categorical
  • maxmin을 정수로 지정하면 int_uniform
  • maxmin을 부동소수점으로 지정하면 uniform
  • value에 집합을 제공하면 constant

method

method 키로 하이퍼파라미터 검색 전략을 지정합니다. 하이퍼파라미터 검색 전략으로는 grid, random, 베이즈 검색의 세 가지 중에서 선택할 수 있습니다. 하이퍼파라미터 값의 모든 조합을 순회합니다. 그리드 검색은 각 반복에서 사용할 하이퍼파라미터 값 집합을 별다른 정보 없이 선택합니다. 그리드 검색은 계산 비용이 많이 들 수 있습니다. 연속적인 검색 공간에서 검색하는 경우, 그리드 검색은 끝없이 실행됩니다. 각 반복에서 분포에 따라 아무 사전 정보 없이 무작위로 하이퍼파라미터 값 집합을 선택합니다. 무작위 검색은 명령줄, Python 스크립트 내 또는 W&B App에서 프로세스를 중지하지 않는 한 계속 실행됩니다. 무작위(method: random) 검색을 선택한 경우 메트릭 키와 함께 분포 공간을 지정합니다. 랜덤 검색 및 그리드 검색과 달리, 베이즈 모델은 정보를 바탕으로 의사결정을 내립니다. 베이즈 최적화는 확률적 모델을 사용해, 목적 함수를 평가하기 전에 대리 함수에서 값을 테스트하는 반복적인 과정을 통해 어떤 값을 사용할지 결정합니다. 베이즈 검색은 소수의 연속형 매개변수에는 효과적이지만 확장성은 떨어집니다. 베이즈 검색에 대한 자세한 내용은 Bayesian Optimization Primer paper를 참조하세요. 베이즈 검색은 명령줄, Python 스크립트 내에서, 또는 W&B App에서 프로세스를 중지하지 않는 한 계속 실행됩니다. parameter 키 안에 하이퍼파라미터 이름을 중첩해 지정합니다. 다음으로 distribution 키를 지정하고, 값에 사용할 분포를 설정합니다. 다음 표에는 W&B에서 지원하는 분포가 나와 있습니다.
distribution 키 값설명
constant상수 분포입니다. 사용할 상수 값(value)을 지정해야 합니다.
categorical범주형 분포입니다. 이 하이퍼파라미터에 사용할 수 있는 모든 값(values)을 지정해야 합니다.
int_uniform정수에 대한 이산 균등 분포입니다. maxmin을 정수로 지정해야 합니다.
uniform연속 균등 분포입니다. maxmin을 부동소수점 값으로 지정해야 합니다.
q_uniform양자화된 균등 분포입니다. X가 균등 분포를 따를 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다.
log_uniform로그 균등 분포입니다. 자연로그가 minmax 사이에서 균등 분포하도록 exp(min)exp(max) 사이의 값 X를 반환합니다.
log_uniform_values로그 균등 분포입니다. log(X)log(min)log(max) 사이에서 균등 분포하도록 minmax 사이의 값 X를 반환합니다.
q_log_uniform양자화된 로그 균등 분포입니다. Xlog_uniform일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다.
q_log_uniform_values양자화된 로그 균등 분포입니다. Xlog_uniform_values일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다.
inv_log_uniform역 로그 균등 분포입니다. log(1/X)minmax 사이에서 균등 분포하는 X를 반환합니다.
inv_log_uniform_values역 로그 균등 분포입니다. log(1/X)log(1/max)log(1/min) 사이에서 균등 분포하는 X를 반환합니다.
normal정규 분포입니다. 반환값은 평균 mu(기본값 0)와 표준편차 sigma(기본값 1)를 갖는 정규 분포를 따릅니다.
q_normal양자화된 정규 분포입니다. Xnormal일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다.
log_normal로그 정규 분포입니다. 자연로그 log(X)가 평균 mu(기본값 0)와 표준편차 sigma(기본값 1)를 갖는 정규 분포를 따르는 값 X를 반환합니다.
q_log_normal양자화된 로그 정규 분포입니다. Xlog_normal일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다.

early_terminate

성능이 좋지 않은 run을 중지하려면 조기 종료(early_terminate)를 사용하세요. 조기 종료가 발생하면 W&B는 새로운 하이퍼파라미터 값 집합으로 새 run을 만들기 전에 현재 run을 중지합니다.
early_terminate를 사용하는 경우 중지 알고리즘을 지정해야 합니다. sweep 설정에서 type 키를 early_terminate 아래에 중첩하세요.

중지 알고리즘

W&B는 현재 Hyperband 중지 알고리즘을 지원합니다.
Hyperband 하이퍼파라미터 최적화는 프로그램을 중지할지, 또는 brackets라고 하는 하나 이상의 사전 설정된 반복 횟수까지 계속 실행할지를 평가합니다. W&B run이 브래킷에 도달하면 sweep은 해당 run의 메트릭을 이전에 보고된 모든 메트릭 값과 비교합니다. 목표가 최소화인 경우 run의 메트릭 값이 너무 높으면, 목표가 최대화인 경우 run의 메트릭 값이 너무 낮으면 sweep이 run을 종료합니다. 브래킷은 로깅된 반복 횟수를 기준으로 합니다. 브래킷 수는 최적화 중인 메트릭을 로깅한 횟수에 해당합니다. 반복은 step, 에포크 또는 그 사이의 어떤 단위일 수도 있습니다. 브래킷 계산에는 step 카운터의 숫자 값이 사용되지 않습니다.
브래킷 일정을 만들려면 min_iter 또는 max_iter 중 하나를 지정하세요.
Key설명
min_iter첫 번째 브래킷의 반복 횟수를 지정합니다
max_iter최대 반복 횟수를 지정합니다.
s전체 브래킷 수를 지정합니다(max_iter에 필요).
eta브래킷 배수 일정을 지정합니다(기본값: 3).
strictrun을 더 적극적으로 가지치기하여 원래 Hyperband 논문을 더 가깝게 따르는 ‘strict’ 모드를 활성화합니다. 기본값은 false입니다.
Hyperband는 몇 분마다 한 번씩 어떤 runs를 종료할지 확인합니다. run이나 반복이 짧으면 종료 시점의 타임스탬프가 지정된 브래킷과 다를 수 있습니다.

command

command 키의 중첩 값을 사용해 형식과 내용을 수정할 수 있습니다. 파일명과 같은 고정 컴포넌트도 직접 포함할 수 있습니다.
Unix 시스템에서 /usr/bin/env는 환경에 따라 운영체제가 올바른 Python 인터프리터를 선택하도록 합니다.
W&B는 command의 가변 컴포넌트에 대해 다음 매크로를 지원합니다:
Command macro설명
${env}Unix 시스템에서는 /usr/bin/env로 확장되며, Windows에서는 생략됩니다.
${interpreter}python으로 확장됩니다.
${program}sweep 설정의 program 키에 지정된 트레이닝 스크립트 파일명입니다.
${args}--param1=value1 --param2=value2 형식의 하이퍼파라미터와 해당 값입니다.
${args_no_boolean_flags}--param1=value1 형식의 하이퍼파라미터와 해당 값입니다. 단, 불리언 매개변수는 True일 때 --boolean_flag_param 형식으로 표시되고 False일 때는 생략됩니다.
${args_no_hyphens}param1=value1 param2=value2 형식의 하이퍼파라미터와 해당 값입니다.
${args_json}JSON으로 인코딩된 하이퍼파라미터와 해당 값입니다.
${args_json_file}JSON으로 인코딩된 하이퍼파라미터와 해당 값이 들어 있는 파일의 경로입니다.
${envvar}환경 변수를 전달하는 방법입니다. ${envvar:MYENVVAR} __ 는 MYENVVAR 환경 변수의 값으로 확장됩니다. __