Try in Colab
몇 줄의 코드로 차세대 로깅 구현

코드를 바로 사용하고 싶다면 Google Colab을 확인해 보세요.
시작하기: Experiments 추적
가입하고 API 키 만들기
API 키는 사용자의 컴퓨터가 W&B에 인증되도록 합니다. 사용자 프로필에서 API 키를 생성할 수 있습니다.보다 간소화된 방법을 원하시면 https://wandb.ai/authorize로 바로 이동하여 API 키를 생성할 수 있습니다. 표시된 API 키를 복사하여 비밀번호 관리자와 같은 안전한 위치에 저장하세요.
- 오른쪽 상단 모서리에 있는 사용자 프로필 아이콘을 클릭합니다.
- User Settings를 선택한 다음 API Keys 섹션으로 스크롤합니다.
- Reveal을 클릭합니다. 표시된 API 키를 복사합니다. API 키를 숨기려면 페이지를 새로 고칩니다.
wandb 라이브러리 설치 및 로그인
wandb 라이브러리를 로컬에 설치하고 로그인하는 방법:
- Command Line
- Python
- Python notebook
-
WANDB_API_KEY환경 변수를 API 키로 설정합니다. -
wandb라이브러리를 설치하고 로그인합니다.
프로젝트 이름 지정
W&B Project는 관련 Runs에서 기록된 모든 차트, 데이터 및 Models가 저장되는 곳입니다. 프로젝트 이름을 지정하면 작업을 구성하고 단일 프로젝트에 대한 모든 정보를 한 곳에 보관하는 데 도움이 됩니다. Run을 프로젝트에 추가하려면WANDB_PROJECT 환경 변수를 프로젝트 이름으로 설정하기만 하면 됩니다. WandbCallback은 이 프로젝트 이름 환경 변수를 가져와 Run을 설정할 때 사용합니다.
- Command Line
- Python
- Python notebook
Trainer를 초기화하기 전에 프로젝트 이름을 설정해야 합니다.huggingface로 설정됩니다.
트레이닝 Runs를 W&B에 로깅
Trainer 트레이닝 인수를 정의할 때 코드 내부 또는 커맨드라인에서 가장 중요한 단계는 W&B를 사용하여 로깅을 활성화하기 위해 report_to를 "wandb"로 설정하는 것입니다.
TrainingArguments의 logging_steps 인수는 트레이닝 중에 트레이닝 메트릭이 W&B로 푸시되는 빈도를 제어합니다. run_name 인수를 사용하여 W&B에서 트레이닝 Run의 이름을 지정할 수도 있습니다.
이제 모델이 트레이닝하는 동안 손실, 평가 메트릭, 모델 토폴로지 및 그레이디언트를 W&B에 로깅합니다.
- Command Line
- Python
TensorFlow를 사용하고 계신가요? PyTorch
Trainer를 TensorFlow TFTrainer로 바꾸기만 하세요.모델 체크포인트 설정
Artifacts를 사용하면 최대 100GB의 Models 및 Datasets를 무료로 저장한 다음 Weights & Biases Registry를 사용할 수 있습니다. Registry를 사용하면 Models를 등록하여 탐색하고 평가하고, 스테이징을 준비하거나 프로덕션 환경에 배포할 수 있습니다. Hugging Face 모델 체크포인트를 Artifacts에 로깅하려면WANDB_LOG_MODEL 환경 변수를 다음 _중 하나_로 설정합니다.
checkpoint:TrainingArguments에서args.save_steps마다 체크포인트를 업로드합니다.end:load_best_model_at_end도 설정된 경우 트레이닝이 끝나면 모델을 업로드합니다.false: 모델을 업로드하지 않습니다.
- Command Line
- Python
- Python notebook
Trainer는 Models를 W&B Project에 업로드합니다. 로깅하는 모델 체크포인트는 Artifacts UI를 통해 볼 수 있으며 전체 모델 계보가 포함됩니다(UI에서 예제 모델 체크포인트를 보려면 여기 참조).
기본적으로
WANDB_LOG_MODEL이 end로 설정된 경우 모델은 model-{run_id}로 W&B Artifacts에 저장되고, WANDB_LOG_MODEL이 checkpoint로 설정된 경우 checkpoint-{run_id}로 저장됩니다.
그러나 TrainingArguments에서 run_name을 전달하면 모델은 model-{run_name} 또는 checkpoint-{run_name}로 저장됩니다.W&B Registry
체크포인트를 Artifacts에 로깅한 후에는 **Registry**를 사용하여 최고의 모델 체크포인트를 등록하고 팀 전체에서 중앙 집중화할 수 있습니다. Registry를 사용하면 작업별로 최고의 Models를 구성하고, Models의 라이프사이클을 관리하고, 전체 ML 라이프사이클을 추적 및 감사하고, 다운스트림 작업을 자동화할 수 있습니다. 모델 Artifact를 연결하려면 Registry를 참조하세요.트레이닝 중 평가 결과 시각화
트레이닝 또는 평가 중 모델 출력을 시각화하는 것은 모델 트레이닝 방식을 실제로 이해하는 데 종종 필수적입니다. Transformers Trainer의 콜백 시스템을 사용하면 모델의 텍스트 생성 출력 또는 기타 예측과 같은 추가적인 유용한 데이터를 W&B Tables에 로깅할 수 있습니다. 아래의 **사용자 지정 로깅 섹션**에서 트레이닝 중 평가 출력을 로깅하여 다음과 같은 W&B Table에 로깅하는 방법에 대한 전체 가이드를 참조하세요.
W&B Run 종료(노트북 전용)
트레이닝이 Python 스크립트에 캡슐화된 경우 스크립트가 완료되면 W&B Run이 종료됩니다. Jupyter 또는 Google Colab 노트북을 사용하는 경우wandb.finish()를 호출하여 트레이닝이 완료되었음을 알려야 합니다.
결과 시각화
트레이닝 결과를 로깅했으면 W&B Dashboard에서 결과를 동적으로 탐색할 수 있습니다. 유연하고 대화형 시각화를 통해 한 번에 수십 개의 Runs를 비교하고, 흥미로운 발견을 확대하고, 복잡한 데이터에서 통찰력을 얻는 것이 쉽습니다.고급 기능 및 FAQ
최고의 모델을 저장하는 방법은 무엇인가요?
TrainingArguments를 load_best_model_at_end=True로 Trainer에 전달하면 W&B는 가장 성능이 좋은 모델 체크포인트를 Artifacts에 저장합니다.
모델 체크포인트를 Artifacts로 저장하는 경우 Registry로 승격할 수 있습니다. Registry에서 다음을 수행할 수 있습니다.
- ML 작업별로 최고의 모델 버전을 구성합니다.
- Models를 중앙 집중화하고 팀과 공유합니다.
- 프로덕션을 위해 Models를 스테이징하거나 추가 평가를 위해 북마크합니다.
- 다운스트림 CI/CD 프로세스를 트리거합니다.
저장된 모델을 로드하는 방법은 무엇인가요?
WANDB_LOG_MODEL을 사용하여 모델을 W&B Artifacts에 저장한 경우 추가 트레이닝을 위해 또는 추론을 실행하기 위해 모델 가중치를 다운로드할 수 있습니다. 이전과 동일한 Hugging Face 아키텍처에 다시 로드하기만 하면 됩니다.
체크포인트에서 트레이닝을 재개하는 방법은 무엇인가요?
WANDB_LOG_MODEL='checkpoint'를 설정한 경우 model_dir을 TrainingArguments의 model_name_or_path 인수로 사용하고 resume_from_checkpoint=True를 Trainer에 전달하여 트레이닝을 재개할 수도 있습니다.
트레이닝 중에 평가 샘플을 로깅하고 보는 방법
TransformersTrainer를 통해 W&B에 로깅하는 것은 Transformers 라이브러리의 WandbCallback에서 처리합니다. Hugging Face 로깅을 사용자 지정해야 하는 경우 WandbCallback을 서브클래싱하고 Trainer 클래스의 추가적인 메서드를 활용하는 추가적인 기능을 추가하여 이 콜백을 수정할 수 있습니다.
아래는 이 새로운 콜백을 HF Trainer에 추가하는 일반적인 패턴이며, 아래에는 평가 출력을 W&B Table에 로깅하는 코드 완성 예제가 있습니다.
트레이닝 중 평가 샘플 보기
다음 섹션에서는 모델 예측을 실행하고 트레이닝 중에 평가 샘플을 W&B Table에 로깅하도록WandbCallback을 사용자 지정하는 방법을 보여줍니다. Trainer 콜백의 on_evaluate 메서드를 사용하여 모든 eval_steps에서 수행합니다.
여기서는 토크나이저를 사용하여 모델 출력에서 예측 및 레이블을 디코딩하는 decode_predictions 함수를 작성했습니다.
그런 다음 예측 및 레이블에서 pandas DataFrame을 만들고 DataFrame에 epoch 열을 추가합니다.
마지막으로 DataFrame에서 wandb.Table을 만들고 wandb에 로깅합니다.
또한 예측을 freq 에포크마다 로깅하여 로깅 빈도를 제어할 수 있습니다.
참고: 일반적인 WandbCallback과 달리 이 사용자 지정 콜백은 Trainer를 인스턴스화한 후에 Trainer에 추가해야 하며 Trainer 초기화 중에는 추가하면 안 됩니다.
Trainer 인스턴스는 초기화 중에 콜백에 전달되기 때문입니다.
어떤 추가 W&B 설정이 제공되나요?
환경 변수를 설정하여Trainer로 로깅되는 항목을 추가로 구성할 수 있습니다. W&B 환경 변수의 전체 목록은 여기에서 찾을 수 있습니다.
| 환경 변수 | 사용법 |
|---|---|
WANDB_PROJECT | 프로젝트 이름 지정(기본값: huggingface) |
WANDB_LOG_MODEL | 모델 체크포인트를 W&B Artifact로 로깅(기본값:
|
WANDB_WATCH | 모델 그레이디언트, 파라미터 또는 둘 다를 로깅할지 여부 설정
|
WANDB_DISABLED | true로 설정하여 로깅을 완전히 끕니다(기본값: false) |
WANDB_SILENT | true로 설정하여 wandb에서 인쇄된 출력을 표시하지 않습니다(기본값: false) |
- Command Line
- Notebook
wandb.init를 사용자 지정하는 방법은 무엇인가요?
Trainer가 사용하는 WandbCallback은 Trainer가 초기화될 때 내부적으로 wandb.init를 호출합니다. 또는 Trainer를 초기화하기 전에 wandb.init를 호출하여 Run을 수동으로 설정할 수 있습니다. 이렇게 하면 W&B Run 구성을 완전히 제어할 수 있습니다.
init에 전달할 수 있는 예는 아래와 같습니다. wandb.init를 사용하는 방법에 대한 자세한 내용은 참조 설명서를 확인하세요.