스윕 구성 옵션
스윕 구성은 중첩된 키-값 쌍으로 구성됩니다. 스윕 구성에서 최상위 키를 사용하여 스윕 검색의 특성을 정의하세요. 예를 들면, 검색할 파라미터(parameter
키), 파라미터 공간을 검색하는 방법론(method
키) 등을 정의할 수 있습니다.
다음 표는 최상위 스윕 구성 키와 간단한 설명을 나열합니다. 각 키에 대한 자세한 정보는 해당 섹션을 참조하세요.
최상위 키 | 설명 |
---|---|
program | (필수) 실행할 트레이닝 스크립트. |
entity | 이 스윕의 엔티티를 지정. |
project | 이 스윕의 프로젝트를 지정. |
description | 스윕의 텍스트 설명. |
name | W&B UI에 표시되는 스윕의 이름. |
method | (필수) 검색 전략을 지정. |
metric | 최적화할 메트릭을 지정(특정 검색 전략과 정지 기준에서만 사용). |
parameters | (필수) 검색할 파라미터 범위를 지정. |
early_terminate | 조기 정지 기준을 지정. |
command | 트레이닝 스크립트를 호출하고 인수를 전달하기 위한 코맨드 구조를 지정. |
run_cap | 스윕에서 실행할 최대 run 수를 지정. |
스윕 구성의 구조에 대한 자세한 정보는 스윕 구성을 참조하세요.
metric
metric
최상위 스윕 구성 키를 사용하여 이름, 목표, 최적화할 대상 메트릭을 지정하세요.
키 | 설명 |
---|---|
name | 최적화할 메트릭의 이름. |
goal | minimize 또는 maximize 중 하나(기본값은 minimize ). |
target | 최적화하고 있는 메트릭의 목표 값. 목표 값을 지정하면 스윕은 해당 값을 달성하는 실행이 있을 때 또는 실행이 목표에 도달했을 때 새 실행을 생성하지 않습니다. 실행 중인 에이전트는 실행이 완료될 때까지 기다린 다음 에이전트가 새 실행을 생성하는 것을 중지합니다. |
parameters
YAML 파일이나 파이썬 스크립트에서 parameters
를 최상위 키로 지정하세요. parameters
키 내에 최적화하려는 하이퍼파라미터의 이름을 제공하세요. 흔히 사용되는 하이퍼파라미터에는 학습률, 배치 크기, 에포크, 옵티마이저 등이 포함됩니다. 스윕 구성에서 정의한 각 하이퍼파라미터에 대해 하나 이상의 검색 제약 조건을 지정하세요.
다음 표는 지원되는 하이퍼파라미터 검색 제약 조건을 보여줍니다. 하이퍼파라미터와 유스 케이스에 따라 아래의 검색 제약 조건 중 하나를 사용하여 스윕 에이전트가 어디에서(분포의 경우) 또는 무엇을(value
, values
등) 검색하거나 사용할 지 알려주세요.
검색 제약 조건 | 설명 |
---|---|
values | 이 하이퍼파라미터에 대한 모든 유효한 값 지정. grid 와 호환됨. |
value | 이 하이퍼파라미터에 대한 단일 유효 값 지정. grid 와 호환됨. |
distribution | 확률 분포를 지정. 분포가 지정되지 않은 경우 기본 값에 대한 정보는 이 표 다음의 주석을 참조하세요. |
probabilities | random 을 사용할 때 values 의 각 요소를 선택할 확률을 지정. |
min , max | (int 또는 float ) 최대 및 최소 값. int 인 경우 int_uniform 분포 하이퍼파라미터에 대해. float 인 경우 uniform 분포 하이퍼파라미터에 대해. |
mu | (float ) normal 또는 lognormal 분포 하이퍼파라미터에 대한 평균 파라미터. |
sigma | (float ) normal 또는 lognormal 분포 하이퍼파라미터에 대한 표준 편차 파라미터. |
q | (float ) 양자화된 하이퍼파라미터에 대한 양자화 단계 크기. |
parameters | 루트 레벨 파라미터 안에 다른 파라미터를 중첩. |
W&B는 분포가 지정되지 않은 경우 다음 조건에 따라 다음 분포를 설정합니다:
values
를 지정하면categorical
max
와min
을 정수로 지정하면int_uniform
max
와min
을 부동소수점으로 지정하면uniform
value
로 집합을 제공하면constant
method
method
키로 하이퍼파라미터 검색 전략을 지정하세요. 선택할 수 있는 하이퍼파라미터 검색 전략에는 그리드, 랜덤, 베이지안 탐색이 있습니다.
그리드 검색
하이퍼파라미터 값의 모든 조합을 반복합니다. 그리드 검색은 각 반복에서 사용할 하이퍼파라미터 값 세트에 대해 정보가 없는 결정을 내립니다. 그리드 검색은 계산 비용이 많이 들 수 있습니다.
그리드 검색은 연속적인 검색 공간 내에서 검색하는 경우 영원히 실행됩니다.
랜덤 검색
분포에 기반한 하이퍼파라미터 값 세트를 각 반복마다 무작위로 선택합니다. 랜덤 검색은 커맨드라인에서 프로세스를 중지하거나, 파이썬 스크립트 내에서, 또는 W&B App UI에서 중지하지 않는 한 영원히 실행됩니다.
랜덤(method: random
) 검색을 선택하는 경우 메트릭 키로 분포 공간을 지정하세요.
베이지안 탐색
랜덤 및 그리드 검색과 달리, 베이지안 모델은 정보에 기반한 결정을 내립니다. 베이지안 최적화는 확률 모델을 사용하여 대리 함수에서 값을 테스트하는 반복적인 프로세스를 거쳐 목표 함수를 평가하기 전에 사용할 값들을 결정합니다. 베이지안 탐색은 연속적인 매개변수의 작은 수에 대해 잘 작동하지만, 크기가 커지면 잘 확장되지 않습니다. 베이지안 탐색에 대한 자세한 정보는 베이지안 최적화 기초 논문을 참조하세요.
베이지안 탐색은 커맨드라인에서 프로세스를 중지하거나, 파이썬 스크립트 내에서, 또는 W&B App UI에서 중지하지 않는 한 영원히 실행됩니다.
랜덤 및 베이지안 검색을 위한 분포 옵션
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 | 로그 균일 분포. exp(min) 과 exp(max) 사이의 값 X 를 반환하며, 자연 로그가 min 과 max 사이에서 균일하게 분포합니다. |
log_uniform_values | 로그 균일 분포. min 과 max 사이의 값 X 를 반환하며, log(X) 가 log(min) 과 log(max) 사이에서 균일하게 분포합니다. |
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 | 역 로그 균일 분포. X 를 반환하며, 여기서 log(1/X) 는 min 과 max 사이에서 균일하게 분포합니다. |
inv_log_uniform_values | 역 로그 균일 분포. X 를 반환하며, 여기서 log(1/X) 는 log(1/max) 와 log(1/min) 사이에서 균일하게 분포합니다. |
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는 새로운 하이퍼파라미터 값 세트로 새 실행을 생성하기 전에 현재 실행을 중지합니다.
early_terminate
를 사용하는 경우 정지 알고리즘을 지정해야 합니다. 스윕 구성 내에서 early_terminate
내에 type
키를 중첩하세요.
정지 알고리즘
W&B는 현재 Hyperband 정지 알고리즘을 지원합니다.
Hyperband 하이퍼파라미터 최적화는 프로그램이 중지되어야 하는지 또는 계속되어야 하는지를 하나 이상의 사전 설정된 반복 횟수, 즉 브래킷에서 평가합니다.
W&B 실행이 브래킷에 도달하면, 스윕은 해당 실행의 메트릭을 이전에 보고된 모든 메트릭 값과 비교합니다. 실행의 메트릭 값이 너무 높은 경우(목표가 최소화일 때) 또는 실행의 메트릭이 너무 낮은 경우(목표가 최대화일 때) 스윕은 실행을 종료합니다.
브래킷은 로그된 반복 횟수에 기반합니다. 브래킷의 수는 최적화하고 있는 메트릭을 로그하는 횟수와 일치합니다. 반복은 단계, 에포크 또는 그 사이의 것일 수 있습니다. 단계 카운터의 수치적 값은 브래킷 계산에 사용되지 않습니다.
브래킷 일정을 생성하기 위해 min_iter
또는 max_iter
를 지정하세요.
키 | 설명 |
---|---|
min_iter | 첫 번째 브래킷을 위한 반복 횟수를 지정 |
max_iter | 반복의 최대 횟수를 지정. |
s | 브래킷의 총 수를 지 |