메인 콘텐츠로 건너뛰기
spaCy 는 빠르고 정확한 모델을 최소한의 노력으로 제공하는 인기 있는 “산업용 수준” NLP 라이브러리입니다. spaCy v3부터는 spacy train 과 함께 W&B를 사용하여 spaCy 모델의 트레이닝 메트릭을 추적하고, 모델과 데이터셋의 버전 관리를 수행할 수 있습니다. 설정 파일에 몇 줄만 추가하면 바로 시작할 수 있습니다.

회원 가입 및 API 키 생성

API 키는 W&B에서 사용자의 머신을 인증하는 데 사용됩니다. 사용자 프로필에서 API 키를 생성할 수 있습니다.
For a more streamlined approach, create an API key by going directly to User Settings. Copy the newly created API key immediately and save it in a secure location such as a password manager.
  1. 오른쪽 상단 모서리에 있는 사용자 프로필 아이콘을 클릭합니다.
  2. User Settings 를 선택한 다음 API Keys 섹션으로 스크롤합니다.

wandb 라이브러리 설치 및 로그인

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

spaCy 설정 파일에 WandbLogger 추가하기

spaCy 설정 파일은 로그뿐만 아니라 GPU 할당, 옵티마이저 선택, 데이터셋 경로 등 트레이닝의 모든 측면을 지정하는 데 사용됩니다. 최소한 [training.logger] 아래에 @loggers 키의 값으로 "spacy.WandbLogger.v3"를 제공하고 project_name 을 추가해야 합니다.
spaCy 트레이닝 설정 파일의 작동 방식과 트레이닝 커스터마이징을 위해 전달할 수 있는 다른 옵션에 대한 자세한 내용은 spaCy 공식 문서 를 확인하세요.
[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
이름설명
project_namestr. W&B Projects 의 이름입니다. 프로젝트가 존재하지 않으면 자동으로 생성됩니다.
remove_config_valuesList[str]. W&B에 업로드하기 전 설정에서 제외할 값의 목록입니다. 기본값은 [] 입니다.
model_log_intervalOptional int. 기본값은 None 입니다. 이 옵션을 설정하면 Artifacts 를 통한 모델 버전 관리 가 활성화됩니다. 모델 체크포인트를 로그할 스텝 간격을 입력하세요.
log_dataset_dirOptional str. 경로를 전달하면 트레이닝 시작 시 해당 데이터셋이 Artifact 로 업로드됩니다. 기본값은 None 입니다.
entityOptional str. 지정할 경우, 해당 Entities 에 run 이 생성됩니다.
run_nameOptional str. 지정할 경우, 해당 이름으로 run 이 생성됩니다.

트레이닝 시작

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