인테그레이션 설계
- wandb를 필수 종속성으로 할지 선택 종속성으로 할지
- 사용자가 W&B 데이터를 저장하거나 업로드하지 않고도 라이브러리를 실행할 수 있도록 할지
- 라이브러리에서 로깅할 설정 값, 메트릭, 아티팩트
- W&B Sweeps를 사용한 하이퍼파라미터 튜닝을 지원할지
- 모델 및 데이터셋 같은 아티팩트를 조직의 W&B 레지스트리를 통해 공유할지
- 라이브러리에서 분산 트레이닝과 여러 프로세스를 처리하는 방식
W&B 설치 방식 결정
W&B를 의존성으로 추가
wandb를 의존성에 추가하세요.
requirements.txt 파일의 경우:
requirements.txt
pyproject.toml 파일의 경우:
pyproject.toml
W&B를 선택 종속성으로 지정
wandb 없이도 라이브러리를 설치할 수 있게 하세요.
pyproject.toml에서 W&B를 선택 종속성으로 선언합니다.
pyproject.toml
사용자 인증
wandb 클라이언트에서 이를 사용할 수 있게 해야 합니다.
W&B는 CLI, 환경 변수 및 wandb.login()을 통한 인증을 지원합니다.
API 키 생성
더 간편하게 하려면 User Settings로 이동해 API 키를 생성하세요. API 키는 즉시 복사해 비밀번호 관리자와 같은 안전한 위치에 저장하세요.
명령줄에서 인증하기
WANDB_API_KEY 환경 변수를 설정하세요:
Python에서 인증
wandb.login()을 자동으로 호출하면 비대화형 워크플로가 중단될 수 있으므로 피하세요.
W&B 로깅을 선택적으로 사용
run 데이터를 저장하지 않으려면
disabled를 사용합니다. 나중에 업로드할 데이터를 로컬에 저장하려면 offline를 사용합니다.
disabled 모드 사용
wandb.init()에 mode="disabled"를 전달하세요:
WANDB_MODE를 설정합니다:
offline 모드 사용
wandb.init()에 mode="offline"을 전달하세요:
WANDB_MODE를 설정하세요:
wandb.init()를 호출하기 전에 환경 변수를 설정하세요:
run 초기화
wandb.init()을 호출하고 프로젝트와 팀 entity를 지정합니다. 프로젝트를 생략하면 W&B는 기본 "uncategorized" 프로젝트에 run을 저장합니다.
트레이닝 루프를 wandb.init() 컨텍스트 관리자 안에서 사용합니다. 블록을 벗어나면 프로세스가 종료되기 전에 W&B가 run을 종료하고 보류 중인 데이터를 처리합니다.
예를 들어, 라이브러리에 다음 트레이닝 루프가 있다고 가정합니다.
Python
wandb.init()에 전달한 다음, wandb.Run.log()로 메트릭을 로깅하세요:
Python
설정 및 메트릭 로깅
설정 값 기록
wandb.init()에 전달하세요.
설명적인 키와 JSON 직렬화 가능한 값을 사용하세요:
wandb.init()에 전달하세요:
wandb.Run.config.update()를 사용해 추가하세요:
메트릭 로깅
wandb.Run.log()에 전달합니다.
다음 코드 스니펫은 트레이닝 및 검증 메트릭을 W&B에 로깅합니다:
Python
train/, val/과 같은 접두사를 사용하여 관련 메트릭을 그룹화하세요.
지원되는 데이터 유형 로깅, 자동 추적되는 데이터 및 권장 사항에 대한 자세한 내용은 메트릭 및 데이터 로깅을 참조하세요.
모델과 데이터셋을 추적하려면 아티팩트로 모델 및 데이터셋 추적 섹션을 참조하세요.
맞춤형 로깅 축 정의
wandb.Run.log()를 호출할 때마다 step이 증가합니다.
wandb.Run.define_metric()을 사용하면 에포크나 전역 step과 같은 다른 값을 기준으로 메트릭을 플롯할 수 있습니다.
다음 예시에서는 validation_loss의 x축으로 x_axis_squared를 정의합니다. 각 루프 반복에서 x_axis_squared는 인덱스 i의 제곱이며, validation_loss는 무작위로 생성된 값입니다:
Python
아티팩트를 사용해 모델과 데이터셋 추적하기
- 로깅할 파일
- 아티팩트 로깅을 선택 사항으로 제공할지 여부
- 체크포인트를 로깅할 빈도
- 아티팩트와 별칭의 이름을 지정하는 방법
- 어떤 아티팩트가 run 입력 및 출력을 나타내는지
모델 체크포인트 로깅
Python
run 입력 추적
wandb.Run.use_artifact()를 사용하세요. W&B는 해당 아티팩트를 run의 입력으로 기록합니다.
아티팩트 이름과 선택적 별칭을 지정하여 해당 아티팩트의 특정 버전을 참조하세요. 아티팩트 이름은 artifact_name:version 또는 artifact_name:alias 형식입니다.
Python
run 출력 추적
wandb.Run.log_artifact()를 사용하여 아티팩트를 run의 출력으로 로깅하세요.
wandb.Artifact()로 아티팩트를 생성합니다.- 아티팩트에 하나 이상의 파일을 추가합니다.
wandb.Run.log_artifact()로 아티팩트를 로깅합니다.
아티팩트 다운로드
아티팩트를 W&B 레지스트리에 연결하기
대상 레지스트리가 이미 존재해야 합니다.
하이퍼파라미터 튜닝
분산 트레이닝 지원
- 메인 프로세스에서만 로깅합니다. 이 방법은 중복된 메트릭과 아티팩트를 방지합니다.
- 각 프로세스에 대해 하나의 run을 생성하고 공유
group값으로 run을 그룹화합니다.