Trainer API でファインチューニングする
手元のデータで分類器を学習する
「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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Transformers ライブラリをひとめぐり
- Transformer モデル向けにトークン化する
- Trainer API でファインチューニングする
- モデルを評価して保存する