sweep 설정은 중첩된 키-값 쌍으로 이루어집니다. sweep 설정의 최상위 키를 사용해 검색할 파라미터(Documentation Index
Fetch the complete documentation index at: https://wb-21fd5541-john-wbdocs-2044-rename-serverless-products.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
parameter 키), 파라미터 공간을 탐색하는 방식(method 키) 등 sweep 검색의 특성을 정의할 수 있습니다.
다음 표에는 최상위 sweep 설정 키와 각 키에 대한 간단한 설명이 나와 있습니다. 각 키에 대한 자세한 내용은 해당 섹션을 참조하세요.
| Top-level keys | 설명 |
|---|---|
program | (필수) 실행할 트레이닝 스크립트 |
entity | 이 sweep의 entity |
project | 이 sweep의 프로젝트 |
description | sweep에 대한 텍스트 설명 |
name | W&B UI에 표시되는 sweep의 이름 |
method | (필수) 검색 전략 |
metric | 최적화할 메트릭(일부 검색 전략 및 중지 기준에서만 사용) |
parameters | (필수) 검색할 파라미터 범위 |
early_terminate | 조기 종료 기준 |
command | 트레이닝 스크립트를 호출하고 인수를 전달하기 위한 command 구조 |
run_cap | 이 sweep의 최대 run 수 |
metric
metric 최상위 sweep 설정 키를 사용해 최적화할 메트릭의 이름, 목표, 대상 메트릭을 지정합니다.
| 키 | 설명 |
|---|---|
name | 최적화할 메트릭의 이름입니다. |
goal | minimize 또는 maximize입니다(기본값은 minimize). |
target | 최적화할 메트릭의 목표값입니다. run이 지정한 목표값에 도달하면 sweep은 더 이상 새 run을 생성하지 않습니다. run을 실행 중인 활성 에이전트는 해당 run이 목표값에 도달하더라도 run이 완료될 때까지 기다린 후 새 run 생성을 중지합니다. |
parameters
parameters를 최상위 키로 지정합니다. parameters 키 안에는 최적화하려는 하이퍼파라미터의 이름을 지정합니다. 일반적인 하이퍼파라미터로는 학습률, batch size, 에포크, 옵티마이저 등이 있습니다. sweep 설정에서 정의하는 각 하이퍼파라미터마다 하나 이상의 검색 제약 조건을 지정합니다.
다음 표에는 지원되는 하이퍼파라미터 검색 제약 조건이 나와 있습니다. 하이퍼파라미터와 사용 사례에 따라 아래 검색 제약 조건 중 하나를 사용해, sweep 에이전트가 어디를(분포의 경우) 또는 무엇을(value, values 등) 검색하거나 사용해야 하는지 지정합니다.
| 검색 제약 조건 | 설명 |
|---|---|
values | 이 하이퍼파라미터에 사용할 수 있는 모든 유효한 값을 지정합니다. grid와 호환됩니다. |
value | 이 하이퍼파라미터에 사용할 단일 유효 값을 지정합니다. grid와 호환됩니다. |
distribution | 확률 distribution을 지정합니다. 기본값에 대한 자세한 내용은 이 표 아래의 참고를 참조하세요. |
probabilities | random을 사용할 때 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를 지정하면categoricalmax와min을 정수로 지정하면int_uniformmax와min을 부동소수점으로 지정하면uniformvalue에 집합을 제공하면constant
method
method 키로 하이퍼파라미터 검색 전략을 지정합니다. 하이퍼파라미터 검색 전략으로는 grid, random, 베이즈 검색의 세 가지 중에서 선택할 수 있습니다.
그리드 검색
무작위 검색
method: random) 검색을 선택한 경우 메트릭 키와 함께 분포 공간을 지정합니다.
베이즈 검색
무작위 및 베이즈 검색을 위한 분포 옵션
parameter 키 안에 하이퍼파라미터 이름을 중첩해 지정합니다. 다음으로 distribution 키를 지정하고, 값에 사용할 분포를 설정합니다.
다음 표에는 W&B에서 지원하는 분포가 나와 있습니다.
distribution 키 값 | 설명 |
|---|---|
constant | 상수 분포입니다. 사용할 상수 값(value)을 지정해야 합니다. |
categorical | 범주형 분포입니다. 이 하이퍼파라미터에 사용할 수 있는 모든 값(values)을 지정해야 합니다. |
int_uniform | 정수에 대한 이산 균등 분포입니다. max와 min을 정수로 지정해야 합니다. |
uniform | 연속 균등 분포입니다. max와 min을 부동소수점 값으로 지정해야 합니다. |
q_uniform | 양자화된 균등 분포입니다. X가 균등 분포를 따를 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다. |
log_uniform | 로그 균등 분포입니다. 자연로그가 min과 max 사이에서 균등 분포하도록 exp(min)과 exp(max) 사이의 값 X를 반환합니다. |
log_uniform_values | 로그 균등 분포입니다. log(X)가 log(min)과 log(max) 사이에서 균등 분포하도록 min과 max 사이의 값 X를 반환합니다. |
q_log_uniform | 양자화된 로그 균등 분포입니다. X가 log_uniform일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다. |
q_log_uniform_values | 양자화된 로그 균등 분포입니다. X가 log_uniform_values일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다. |
inv_log_uniform | 역 로그 균등 분포입니다. log(1/X)가 min과 max 사이에서 균등 분포하는 X를 반환합니다. |
inv_log_uniform_values | 역 로그 균등 분포입니다. log(1/X)가 log(1/max)와 log(1/min) 사이에서 균등 분포하는 X를 반환합니다. |
normal | 정규 분포입니다. 반환값은 평균 mu(기본값 0)와 표준편차 sigma(기본값 1)를 갖는 정규 분포를 따릅니다. |
q_normal | 양자화된 정규 분포입니다. X가 normal일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다. |
log_normal | 로그 정규 분포입니다. 자연로그 log(X)가 평균 mu(기본값 0)와 표준편차 sigma(기본값 1)를 갖는 정규 분포를 따르는 값 X를 반환합니다. |
q_log_normal | 양자화된 로그 정규 분포입니다. X가 log_normal일 때 round(X / q) * q를 반환합니다. q의 기본값은 1입니다. |
early_terminate
early_terminate)를 사용하세요. 조기 종료가 발생하면 W&B는 새로운 하이퍼파라미터 값 집합으로 새 run을 만들기 전에 현재 run을 중지합니다.
early_terminate를 사용하는 경우 중지 알고리즘을 지정해야 합니다. sweep 설정에서 type 키를 early_terminate 아래에 중첩하세요.중지 알고리즘
W&B는 현재 Hyperband 중지 알고리즘을 지원합니다.
브래킷 일정을 만들려면
min_iter 또는 max_iter 중 하나를 지정하세요.| Key | 설명 |
|---|---|
min_iter | 첫 번째 브래킷의 반복 횟수를 지정합니다 |
max_iter | 최대 반복 횟수를 지정합니다. |
s | 전체 브래킷 수를 지정합니다(max_iter에 필요). |
eta | 브래킷 배수 일정을 지정합니다(기본값: 3). |
strict | run을 더 적극적으로 가지치기하여 원래 Hyperband 논문을 더 가깝게 따르는 ‘strict’ 모드를 활성화합니다. 기본값은 false입니다. |
Hyperband는 몇 분마다 한 번씩 어떤 runs를 종료할지 확인합니다. run이나 반복이 짧으면 종료 시점의 타임스탬프가 지정된 브래킷과 다를 수 있습니다.
command
command 키의 중첩 값을 사용해 형식과 내용을 수정할 수 있습니다. 파일명과 같은 고정 컴포넌트도 직접 포함할 수 있습니다.
Unix 시스템에서
/usr/bin/env는 환경에 따라 운영체제가 올바른 Python 인터프리터를 선택하도록 합니다.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 환경 변수의 값으로 확장됩니다. __ |