概要
機械学習を使った最新の自然言語処理に関する用語を最大限かみ砕いて説明する。
本論
事前学習済みモデル
すでに膨大な文章を読んで、日本語(言葉)の文法や基礎知識を身につけた「天才新入社員」のこと。無料公開されてる代表的なモデルの一つにBERTがある。
Hugging Face
「天才新入社員(事前学習済みモデル)」たちが大量に登録されている、世界最大の「AI人材派遣サイト(ライブラリ)」のようなもの
AutoModelForSequenceClassification
Hugging Faceにある数万個のモデル(天才新入社員)の中から、「文章を分類する仕事(Sequence Classification)専用の型」としてモデルを呼び出すためのPythonの命令。
「BERTさん、あなたを『問い合わせ分類担当』としてスカウト(ロード)します!」と呼び出すコード。
ファインチューニング
スカウト(ロード)してきた「天才新入社員(BERT)」は、日本語の文法や一般知識は完璧だが、「あなたの会社の問い合わせ(『不具合』『解約』『質問』など)をどう分類するか」という社内ルール(独自タスク)はまだ知らない。
そこで、あなたが用意した少量のデータ(数万〜数百件の問い合わせ文と正解ラベル)を使って、「うちの会社では、こういう文が来たら『解約希望』に分類してね」とOJT(追加の研修)を行う作業のことを「ファインチューニング」と呼ぶ。
- ゼロから育てる: 数か月かかるし、データも大量に必要。
- ファインチューニング: すでに賢い奴を連れてきて社内ルールだけ教えるので、数分〜数時間・少量のデータで即戦力になる。
Trainer API と「PyTorchの素の学習ループ」
研修(ファインチューニング)を進める時の「教え方のスタイルの違い」
- Trainer API(全自動・全自動洗濯機スタイル)
Hugging Faceが用意してくれている便利な「自動学習ツール」- 特徴: 「データ」と「設定(何回学習させるか等)」を渡して trainer.train() と1行書くだけで、裏側で学習・エラー計算・モデルの更新を全部全自動でやってくれる
- メリット: コードが短くて済み、初心者でもミスなく簡単にファインチューニングができる。
- PyTorchの素の学習ループ(手動・手洗いスタイル)
AI開発の根本的なライブラリ(PyTorch)を使って、自分の手で1ステップずつコードを書く方法- 自分で for epoch in range(...): という繰り返し文を書き、「データをモデルに入れる」→「間違えた分(Loss)を計算する」→「モデルのパラメータを少し書き換える」という処理を1行ずつ手動で記述する。
- メリット: 中で何が起きているかが完全にコントロールできる。(研究者や、特殊なカスタマイズをしたいプロがよく使う)
まとめ
【ロード】
Hugging Faceから、日本語が完璧な「BERT」という賢いモデルを呼び出す(AutoModelForSequenceClassification)。
【ファインチューニング】
そのBERTに、自分の手元のデータ(問い合わせ文)を見せて「こういう文は『解約希望』だよ」と研修(追加学習)する。
【Trainer API】
その研修の面倒な計算プロセスを、Hugging Faceの自動ツール(Trainer)にお任せして楽に実行する。