> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-serverless-sft-revamp.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# spaCy

[spaCy](https://spacy.io) 는 빠르고 정확한 모델을 최소한의 노력으로 제공하는 인기 있는 "산업용 수준" NLP 라이브러리입니다. spaCy v3부터는 [`spacy train`](https://spacy.io/api/cli#train) 과 함께 W\&B를 사용하여 spaCy 모델의 트레이닝 메트릭을 추적하고, 모델과 데이터셋의 버전 관리를 수행할 수 있습니다. 설정 파일에 몇 줄만 추가하면 바로 시작할 수 있습니다.

## 회원 가입 및 API 키 생성

API 키는 W\&B에서 사용자의 머신을 인증하는 데 사용됩니다. 사용자 프로필에서 API 키를 생성할 수 있습니다.

<Note>
  For a more streamlined approach, create an API key by going directly to [User Settings](https://wandb.ai/settings). Copy the newly created API key immediately and save it in a secure location such as a password manager.
</Note>

1. 오른쪽 상단 모서리에 있는 사용자 프로필 아이콘을 클릭합니다.
2. **User Settings** 를 선택한 다음 **API Keys** 섹션으로 스크롤합니다.

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

로컬에 `wandb` 라이브러리를 설치하고 로그인하려면:

<Tabs>
  <Tab title="Command Line">
    1. `WANDB_API_KEY` [환경 변수](/models/track/environment-variables/)를 해당 API 키로 설정합니다.

       ```bash theme={null}
       export WANDB_API_KEY=<your_api_key>
       ```

    2. `wandb` 라이브러리를 설치하고 로그인합니다.

       ```shell theme={null}
       pip install wandb

       wandb login
       ```
  </Tab>

  <Tab title="Python">
    ```bash theme={null}
    pip install wandb
    ```

    ```python theme={null}
    import wandb
    wandb.login()
    ```
  </Tab>

  <Tab title="Python notebook">
    ```notebook theme={null}
    !pip install wandb

    import wandb
    wandb.login()
    ```
  </Tab>
</Tabs>

## spaCy 설정 파일에 `WandbLogger` 추가하기

spaCy 설정 파일은 로그뿐만 아니라 GPU 할당, 옵티마이저 선택, 데이터셋 경로 등 트레이닝의 모든 측면을 지정하는 데 사용됩니다. 최소한 `[training.logger]` 아래에 `@loggers` 키의 값으로 `"spacy.WandbLogger.v3"`를 제공하고 `project_name` 을 추가해야 합니다.

<Note>
  spaCy 트레이닝 설정 파일의 작동 방식과 트레이닝 커스터마이징을 위해 전달할 수 있는 다른 옵션에 대한 자세한 내용은 [spaCy 공식 문서](https://spacy.io/usage/training) 를 확인하세요.
</Note>

```python theme={null}
[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_name`         | `str`. W\&B Projects 의 이름입니다. 프로젝트가 존재하지 않으면 자동으로 생성됩니다.                                                                                             |
| `remove_config_values` | `List[str]`. W\&B에 업로드하기 전 설정에서 제외할 값의 목록입니다. 기본값은 `[]` 입니다.                                                                                         |
| `model_log_interval`   | `Optional int`. 기본값은 `None` 입니다. 이 옵션을 설정하면 [Artifacts](/models/artifacts/) 를 통한 [모델 버전 관리](/models/registry/) 가 활성화됩니다. 모델 체크포인트를 로그할 스텝 간격을 입력하세요. |
| `log_dataset_dir`      | `Optional str`. 경로를 전달하면 트레이닝 시작 시 해당 데이터셋이 Artifact 로 업로드됩니다. 기본값은 `None` 입니다.                                                                      |
| `entity`               | `Optional str`. 지정할 경우, 해당 Entities 에 run 이 생성됩니다.                                                                                                   |
| `run_name`             | `Optional str`. 지정할 경우, 해당 이름으로 run 이 생성됩니다.                                                                                                         |

## 트레이닝 시작

spaCy 트레이닝 설정에 `WandbLogger` 를 추가했다면 평소처럼 `spacy train` 을 실행할 수 있습니다.

<Tabs>
  <Tab title="Command Line">
    ```python theme={null}
    python -m spacy train \
        config.cfg \
        --output ./output \
        --paths.train ./train \
        --paths.dev ./dev
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    python -m spacy train \
        config.cfg \
        --output ./output \
        --paths.train ./train \
        --paths.dev ./dev
    ```
  </Tab>

  <Tab title="Python notebook">
    ```notebook theme={null}
    !python -m spacy train \
        config.cfg \
        --output ./output \
        --paths.train ./train \
        --paths.dev ./dev
    ```
  </Tab>
</Tabs>

트레이닝이 시작되면 해당 트레이닝 [W\&B 페이지](/models/runs/) 로 연결되는 링크가 출력되며, 이 링크를 통해 W\&B 웹 UI의 실험 추적 [대시보드](/models/track/workspaces/) 로 이동할 수 있습니다.
