NLP II — Transformer / BERT・Hugging Face
Transformer と BERT の考え方、Hugging Face でのファインチューニング、LLM 活用の概観を学びます。
Transformer と BERT#
Transformer は自己注意(self-attention)で文中の語の関係を捉えるアーキテクチャです。 BERT は大量テキストで事前学習された Transformer で、これを各タスクに **転移学習(ファインチューニング)**して使うのが NLP の主流です。
Hugging Face でファインチューニング#
transformers ライブラリで、事前学習済みモデルとトークナイザを簡単に呼べます。
from transformers import AutoTokenizer, AutoModelForSequenceClassification
name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForSequenceClassification.from_pretrained(name, num_labels=2)
enc = tokenizer(texts, padding=True, truncation=True, max_length=256, return_tensors="pt")
# あとは通常の PyTorch 学習ループ、または Trainer で学習ファインチューニングでは小さめの学習率(例 2e-5)と短いエポック、
検証での早期終了が定番です。GPU メモリに応じてバッチサイズや max_length を調整します。
LLM 活用の概観#
近年は大規模言語モデル(LLM)を、ゼロショット/few-shot 推論や埋め込み生成、 データ拡張(擬似データ生成)に使うアプローチも増えています。ただしコンペでは **規約(外部データ・モデルの利用可否)**を必ず確認します。
注意
事前学習モデルやデータにはライセンスとコンペ規約があります。利用可否・商用条件・ 外部データ規約を確認してから使いましょう(L6 の引用・倫理も参照)。
ヒント
BERT 系は強力ですが学習コストが高めです。TF-IDF + 線形(前レッスン)とアンサンブルすると、 誤りの相関が低く伸びやすい組み合わせになります。
理解度チェック#
次のステップ#
次は時系列予測の考え方と、検証でのリーク回避を学びます。