NLP Academy · レッスン

Trainer API でファインチューニングする

手元のデータで分類器を学習する

レッスン 3/413 ステップ

「Trainer API でファインチューニングする」はCoddyKit上の無料NLP Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNLP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 NLP Academyコースには全4レッスンが含まれています。

ファインチューニングする理由

事前学習済みモデルはすでに言語を理解しています。fine-tuningでは、ラベル付きデータを使って特定のタスクで力を発揮できるよう調整します。

Checkpointから始める

ラベル数に合わせた分類ヘッドを持つモデルを読み込みます。ベースの重みは再利用し、headだけを新しく学習します。

from transformers import AutoModelForSequenceClassification
m = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)

Trainerを知る

Trainer APIは、バッチ処理、勾配計算、評価、保存を含む学習ループ全体を1つのクラスで処理します。

データセットを準備する

テキストをtokenizeし、ラベルを保持します。Hugging FaceのDatasetオブジェクトは、そのままTrainerに接続できます。

ds = ds.map(lambda x: tok(x["text"], truncation=True), batched=True)

学習引数を設定する

TrainingArgumentsは、学習率、バッチサイズ、エポック数、checkpointsの保存先など、すべての設定を1か所にまとめます。

from transformers import TrainingArguments
args = TrainingArguments("out", num_train_epochs=3)

Trainerを構築する

model、args、データセットをTrainerに渡します。これで、学習に必要なものがすべて1つのobjectにまとまります。

from transformers import Trainer
trainer = Trainer(model=m, args=args, train_dataset=train, eval_dataset=val)

学習を開始する

1回の呼び出しで、完全な学習ループが実行されます。Trainerはエポックを進めながら重みを更新し、learnsしていきます。

trainer.train()

学習率が重要な理由

ファインチューニングでは、たとえば2e-5程度の小さなlearning rateを使い、事前学習済みの重みを壊さず慎重に調整します。

数エポックだけで十分

Transformersでは通常、データを2〜4回通すだけで十分です。epochsが多すぎると、モデルは過学習を始めます。

メトリクスを追跡する

compute_metrics関数をTrainerに渡すと、各evaluationでaccuracyやF1を報告するため、進捗をリアルタイムで確認できます。

trainer = Trainer(..., compute_metrics=metric_fn)

データコレーターを使う

データcollatorは各バッチを最長の例に合わせて動的にパディングするため、すべてを同じ長さにパディングするよりメモリを節約できます。

クイックチェック

ファインチューニングで小さなlearning rateを使うのはなぜですか?

まとめ

新しいheadを持つモデルを読み込み、データをtokenizeし、TrainingArgumentsを設定して、低い学習率で数エポックTrainerを実行します。✅

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Trainer API でファインチューニングする」レッスンは無料ですか?

はい。「Trainer API でファインチューニングする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、NLP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 NLP Academyコースには全4レッスンが含まれています。

「Trainer API でファインチューニングする」で何を学びますか?

手元のデータで分類器を学習する ブラウザで直接実行するハンズオンコードでNLP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

NLP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのNLP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「Trainer API でファインチューニングする」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このNLP Academyレッスンでコードを書いて実行できますか?

はい。すべてのNLP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Transformers ライブラリをひとめぐり
  2. Transformer モデル向けにトークン化する
  3. Trainer API でファインチューニングする
  4. モデルを評価して保存する
← NLP Academyに戻る