ファインチューニング、流行っていない
大手クラウドサービスでは、基盤モデルのファインチューニングが可能です。
これによりカスタムモデルを作成できるはずですが、多くの場合、採用が見送られるか、失敗しています。
その理由について、機械学習をかじった程度の無職が考察しました。
1. OpenAI公式が第一の手段として推奨していない
モデルの出力をカスタマイズする最も簡単な方法はプロンプトの調整です。
OpenAIも、ファインチューニングを第一選択肢としては推奨していません。
2. ユーザーの求めるものは「対応力の広さ」
ファインチューニングを行うと、特定のタスクに特化します。
例えば、Vercelのv0は特定のコンポーネント形式とライブラリのセットでJavaScriptを出力するようにトレーニングされているようです。
これは、システムとの連携を強化する上では理にかなっていますが、一般的なチャットボットでは幅広い質問に対応できる方が求められます。
3. 知識の蓄積には向かない
「学習」という言葉に引っ張られがちですが、ファインチューニングの本質は入力と出力の対応パターンを学ぶことです。
例えば、v0の場合、「ReactのJSXで書く」「shadcn/ui + Tailwindでスタイリングする」といったルールを高精度で遂行するようになります。
しかし、知識を増やす目的で使うと、うまくいかないことが多いです。
失敗の例を挙げると、以下のようなデータセットで学習した場合です。
User「太郎君はどんな人ですか?」
Assistant「太郎君は人ではなく犬です」
User「太郎君の年齢は?」
Assistant「太郎君は6ヶ月です」
こうしたデータで学習すると、以下のような問題が発生します。
- 太郎君の情報を正しく返せない
- 他の質問にも太郎君のプロフィール(または似た形式)で回答する
- 学習データにない質問に対し、架空の情報をでっち上げる
結果として、検索ツールを活用する方が適切な場合が多いのです。
4. コストとスケーリングの問題
ファインチューニングにはコストがかかるという単純な問題もあります。
学習時も推論時も料金が高く、時間も必要です。
そのため、リアルタイムに変化する情報を扱う用途には向いていません。
OpenAI Deep Researchのように、素直に検索エンジンを組み込む方が賢明でしょう。
5. そもそもデータがない
LLMのためにデータを集めている組織はほぼ存在せず、データエンジニアの介在をもってしてもファインチューニングタスクでよい結果を得られるとは限りません。