> ## 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 モデルのトレーニングと評価を行えます。モデルの初期化、トレーニング、評価に必要なコードはわずか 3 行です。系列分類、トークン分類 (NER)、質問応答、言語モデルのファインチューニング、言語モデルのトレーニング、言語生成、T5 モデル、Seq2Seq タスク、マルチモーダル分類、対話型 AI をサポートしています。

W\&B でモデル トレーニングを可視化するには、`args` 辞書の `wandb_project` 属性に W\&B のプロジェクト名を設定します。これにより、すべてのハイパーパラメーターの値、トレーニング損失、評価メトリクスが指定した project にログされます。

```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`

以下のセクションでは、代表的な 2 つのタスクについて最小限のサンプルを示し、`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) を参照してください。

W\&B report の [Using simpleTransformer on common NLP applications](https://forge.coreweave.com/wandb/cayush/simpletransformers/reports/Using-simpleTransformer-on-common-NLP-applications---Vmlldzo4Njk2NA) もあわせてご覧ください。この report では、特によく使われる GLUE ベンチマークのデータセットをいくつか使用して Transformer をトレーニングする方法を紹介しています。[Colab で実際に試してみてください](https://colab.research.google.com/drive/1oXROllqMqVvBFcPgTKJRboTq96uWuqSz?usp=sharing)。


## Related topics

- [サンプルコードとノートブック](/ja/products/wandb/examples.md)
