메인 콘텐츠로 건너뛰기
spaCy는 빠르고 정확한 모델을 복잡한 설정 없이 제공하는 널리 사용되는 “산업용” NLP 라이브러리입니다. spaCy v3부터는 spacy train과 함께 W&B를 사용하여 spaCy 모델의 학습 지표를 추적하고, 모델과 데이터셋을 저장 및 버전 관리할 수 있습니다. 이 모든 것은 설정 파일에 몇 줄만 추가하면 됩니다.

회원가입 및 API key 생성

API key를 사용하면 머신을 W&B에 인증할 수 있습니다. API key는 사용자 프로필에서 생성할 수 있습니다.
보다 간편하게 설정하려면 User Settings로 바로 이동해 API key를 생성하세요. 새로 생성된 API key는 즉시 복사하여 비밀번호 관리자와 같은 안전한 위치에 저장하세요.
  1. 오른쪽 상단에서 사용자 프로필 아이콘을 클릭합니다.
  2. User Settings를 선택한 다음 아래로 스크롤하여 API Keys 섹션으로 이동합니다.

wandb 라이브러리를 설치하고 로그인하기

로컬 환경에 wandb 라이브러리를 설치하고 로그인하려면:
  1. WANDB_API_KEY 환경 변수를 API key 값으로 설정합니다.
    export WANDB_API_KEY=<your_api_key>
    
  2. wandb 라이브러리를 설치하고 로그인합니다.
    pip install wandb
    
    wandb login
    

spaCy config 파일에 WandbLogger 추가하기

spaCy config 파일은 로깅뿐 아니라 GPU 할당, 옵티마이저 선택, 데이터셋 경로 등 학습의 모든 측면을 지정하는 데 사용됩니다. 최소한 [training.logger] 섹션 아래에 @loggers 키에 "spacy.WandbLogger.v3" 값을 지정하고, project_name도 추가로 설정해야 합니다.
spaCy 학습 config 파일이 어떻게 작동하는지와, 학습을 커스터마이즈하기 위해 지정할 수 있는 다른 옵션들에 대한 자세한 내용은 spaCy’s documentation을 참고하세요.
[training.logger]
@loggers = "spacy.WandbLogger.v3"
project_name = "my_spacy_project"
remove_config_values = ["paths.train", "paths.dev", "corpora.train.path", "corpora.dev.path"]
log_dataset_dir = "./corpus"
model_log_interval = 1000
NameDescription
project_namestr. W&B Project의 이름입니다. Project가 아직 없으면 자동으로 생성됩니다.
remove_config_valuesList[str] . W&B로 업로드하기 전에 config에서 제외할 값들의 목록입니다. 기본값은 [] 입니다.
model_log_intervalOptional int. 기본값은 None 입니다. 설정하면 model versioningArtifacts와 함께 활성화됩니다. 모델 체크포인트 로깅 간 대기할 스텝 수를 전달하세요. 기본값은 None 입니다.
log_dataset_dirOptional str. 경로를 지정하면 학습 시작 시점에 데이터셋이 아티팩트로 업로드됩니다. 기본값은 None 입니다.
entityOptional str . 지정하면 실행이 해당 엔터티 내에서 생성됩니다.
run_nameOptional str . 지정하면 실행이 지정한 이름으로 생성됩니다.

학습 시작

WandbLogger를 spaCy 학습 설정에 추가했다면, 평소처럼 spacy train을 실행하면 됩니다.
python -m spacy train \
    config.cfg \
    --output ./output \
    --paths.train ./train \
    --paths.dev ./dev
학습이 시작되면 학습 실행의 W&B 페이지에 대한 링크가 출력되고, 이 링크를 통해 W&B 웹 UI에서 해당 실행의 실험 추적 대시보드로 이동할 수 있습니다.