> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

> Hugging Face의 Transformers 라이브러리와 W&B를 통합하는 방법을 알아봅니다.

# Hugging Face Simple Transformers

이 페이지에서는 Weights & Biases(W\&B)를 Simple Transformers와 통합하여 Transformer 모델 트레이닝을 시각화하고 추적하는 방법을 설명합니다. 이 페이지를 읽고 나면 Simple Transformers 모델에서 W\&B 로깅을 활성화하는 방법과 일반적인 NLP 작업 예시를 찾을 수 있는 곳을 알 수 있습니다.

Simple Transformers는 Hugging Face의 Transformers 라이브러리를 기반으로 하며, Transformer 모델을 트레이닝하고 평가할 수 있게 해 줍니다. 단 세 줄의 코드만으로 모델을 초기화하고, 트레이닝하고, 평가할 수 있습니다. 시퀀스 분류, 토큰 분류(NER), 질의응답, 언어 모델 파인튜닝, 언어 모델 트레이닝, 언어 생성, T5 모델, Seq2Seq 작업, 멀티모달 분류, 대화형 AI를 지원합니다.

W\&B로 모델 트레이닝을 시각화하려면 `args` 딕셔너리의 `wandb_project` 속성에 W\&B 프로젝트 이름을 설정하세요. 이렇게 하면 모든 하이퍼파라미터 값, 트레이닝 손실, 평가 메트릭이 지정한 프로젝트에 로깅됩니다.

```python theme={"system"}
model = ClassificationModel('roberta', 'roberta-base', args={'wandb_project': 'project-name'})
```

`wandb.init()`에 전달할 추가 인수가 있다면 모두 `wandb_kwargs`로 전달할 수 있습니다.

<h2 id="structure">
  구조
</h2>

이 섹션에서는 Simple Transformers의 클래스 구성 방식을 설명합니다. 이를 통해 작업에 따라 어떤 모듈을 임포트해야 하는지 파악할 수 있습니다. 이 라이브러리는 NLP 작업마다 별도의 클래스를 제공하도록 설계되었으며, 비슷한 기능을 하는 클래스끼리 묶여 있습니다.

* `simpletransformers.classification` - 모든 분류 모델이 포함되어 있습니다.
  * `ClassificationModel`
  * `MultiLabelClassificationModel`
* `simpletransformers.ner` - 모든 개체명 인식 모델이 포함되어 있습니다.
  * `NERModel`
* `simpletransformers.question_answering` - 모든 질의응답 모델이 포함되어 있습니다.
  * `QuestionAnsweringModel`

다음 섹션에서는 자주 사용되는 두 가지 작업의 최소 예시를 통해 `wandb_project` 인수로 W\&B 로깅을 활성화하는 방법을 보여줍니다.

<h2 id="multi-label-classification">
  다중 레이블 분류
</h2>

```python theme={"system"}
  model = MultiLabelClassificationModel("distilbert","distilbert-base-uncased",num_labels=6,
    args={"reprocess_input_data": True, "overwrite_output_dir": True, "num_train_epochs":epochs,'learning_rate':learning_rate,
                'wandb_project': "simpletransformers"},
  )
   # 모델 학습
  model.train_model(train_df)

  # 모델 평가
  result, model_outputs, wrong_predictions = model.eval_model(eval_df)
```

<h2 id="question-answering">
  질의응답
</h2>

```python theme={"system"}
  train_args = {
    'learning_rate': wandb.config.learning_rate,
    'num_train_epochs': 2,
    'max_seq_length': 128,
    'doc_stride': 64,
    'overwrite_output_dir': True,
    'reprocess_input_data': False,
    'train_batch_size': 2,
    'fp16': False,
    'wandb_project': "simpletransformers"
}

model = QuestionAnsweringModel('distilbert', 'distilbert-base-cased', args=train_args)
model.train_model(train_data)
```

<h2 id="global-arguments">
  전역 인수
</h2>

SimpleTransformers는 일반적인 자연어 작업 전반에 사용할 수 있는 클래스와 트레이닝 스크립트를 제공합니다. 다음은 라이브러리에서 지원하는 전역 인수와 각 인수의 기본값을 정리한 전체 목록입니다. 앞에서 설명한 W\&B 전용 옵션 외에 트레이닝 동작을 더 세부적으로 사용자 지정하려면 이 목록을 참고하세요.

```python theme={"system"}
global_args = {
  "adam_epsilon": 1e-8,
  "best_model_dir": "outputs/best_model",
  "cache_dir": "cache_dir/",
  "config": {},
  "do_lower_case": False,
  "early_stopping_consider_epochs": False,
  "early_stopping_delta": 0,
  "early_stopping_metric": "eval_loss",
  "early_stopping_metric_minimize": True,
  "early_stopping_patience": 3,
  "encoding": None,
  "eval_batch_size": 8,
  "evaluate_during_training": False,
  "evaluate_during_training_silent": True,
  "evaluate_during_training_steps": 2000,
  "evaluate_during_training_verbose": False,
  "fp16": True,
  "fp16_opt_level": "O1",
  "gradient_accumulation_steps": 1,
  "learning_rate": 4e-5,
  "local_rank": -1,
  "logging_steps": 50,
  "manual_seed": None,
  "max_grad_norm": 1.0,
  "max_seq_length": 128,
  "multiprocessing_chunksize": 500,
  "n_gpu": 1,
  "no_cache": False,
  "no_save": False,
  "num_train_epochs": 1,
  "output_dir": "outputs/",
  "overwrite_output_dir": False,
  "process_count": cpu_count() - 2 if cpu_count() > 2 else 1,
  "reprocess_input_data": True,
  "save_best_model": True,
  "save_eval_checkpoints": True,
  "save_model_every_epoch": True,
  "save_steps": 2000,
  "save_optimizer_and_scheduler": True,
  "silent": False,
  "tensorboard_dir": None,
  "train_batch_size": 8,
  "use_cached_eval_features": False,
  "use_early_stopping": False,
  "use_multiprocessing": True,
  "wandb_kwargs": {},
  "wandb_project": None,
  "warmup_ratio": 0.06,
  "warmup_steps": 0,
  "weight_decay": 0,
}
```

<h2 id="additional-resources">
  추가 리소스
</h2>

자세한 문서는 [GitHub의 simpletransformers](https://github.com/ThilinaRajapakse/simpletransformers)를 참고하세요.

가장 널리 쓰이는 GLUE 벤치마크 데이터셋 몇 가지로 트랜스포머를 트레이닝하는 방법은 W\&B 리포트 [Using simpleTransformer on common NLP applications](https://forge.coreweave.com/wandb/cayush/simpletransformers/reports/Using-simpleTransformer-on-common-NLP-applications---Vmlldzo4Njk2NA)에서 확인하세요. [Colab에서 직접 사용해 보세요](https://colab.research.google.com/drive/1oXROllqMqVvBFcPgTKJRboTq96uWuqSz?usp=sharing).
