「自社データでファインチューニングしたAI」という言葉をニュースで見かけたことはありませんか。ファインチューニングは、汎用のLLMを特定の目的に合わせて作り替える強力な手段ですが、万能ではなく、向き不向きや落とし穴もあります。このページでは、その仕組みから実務での使いどころまでを一段深く解説します。

📖 ひと言でいうと

ファインチューニング(Fine-tuning)とは、事前学習を終えたモデルに対して、目的に合わせたデータで追加の学習を行い、モデル内部のパラメーター(振る舞いを決める数値)を微調整することです。

身近な例えでいうと、「オーダーメイドのスーツの仕立て直し」です。既製品のスーツ(事前学習済みモデル)は多くの人にそこそこ合いますが、袖丈や胴回りを自分の体型(目的のタスク)に合わせて直すと、ぐっと使いやすくなります。ゼロから布を織って仕立てる(ゼロから学習する)のに比べ、直しは短時間・低コストで済みます。

🖼 1枚でわかるファインチューニング

ファインチューニング = 学習済みモデルの微調整
  • パラメーターを実際に書き換える — プロンプトの工夫と違い、モデル本体が変わる
  • 事前学習よりずっと少ないデータ・コストで済む — 土台の能力を再利用するため
  • 用途は多彩 — 指示応答化・専門分野特化・出力スタイルの統一など
  • 注意点もある — 元の能力を失う「忘却」やデータ品質への依存
  • 最初の選択肢ではない — プロンプト工夫やRAGで足りるかを先に検討
つくもち屋「生成AI入門」SUMMARY

🔍 しっかり理解する

仕組み: 「少しだけ」学習し直す

ファインチューニングの学習の仕組み自体は、事前学習と同じ「予測→答え合わせ→パラメーター修正」の反復です。違いは、すでに賢いモデルから出発すること、そして目的に絞った比較的少量のデータを使うことです。

事前学習で獲得した言語能力や知識は、モデルの膨大なパラメーターの中に刻まれています。ファインチューニングでは、この土台を壊さないように、パラメーターを目的の方向へ少しずつ動かします。「fine(細かい)」という名前のとおり、大改造ではなく微調整である点が本質です。土台の能力を再利用できるため、ゼロからの学習に比べてデータ量も計算コストも桁違いに小さく済みます。

何のために使うのか: 代表的な3つの目的

ファインチューニングの目的は、大きく3つに整理できます。

💡 ポイント
  • 振る舞いの変更: 「続きの予測機械」を「指示に従うアシスタント」に変える調整です。指示とお手本回答のペアで学習させる方法はインストラクションチューニング(項目k1-4-3)と呼ばれ、ファインチューニングの代表的な応用です
  • 専門分野への特化: 医療・法律・金融など、特定分野の文書で追加学習し、専門用語や言い回しへの対応力を高めます
  • スタイル・形式の固定: 自社の文体、決まった出力フォーマット、特定のキャラクターの口調などを安定して再現させます

フルチューニングと軽量チューニング

パラメーターの動かし方にも種類があります。モデルの全パラメーターを更新する方法はフルファインチューニングと呼ばれ、効果は大きい反面、大型モデルでは膨大な計算資源が必要です。そこで、大部分のパラメーターは凍結し、追加した少数の部品だけを学習する軽量な手法が広く使われています。代表例がLoRA(ローラ。ひと言でいうと、モデル本体は触らず小さな「調整用の差分」だけを学習する方法)で、項目1-9の「計算資源の効率化」でも登場します。少ない計算資源でファインチューニングの恩恵を得られるため、オープンモデルの活用シーンで特に人気があります。

落とし穴: ファインチューニングの注意点

強力な手段ですが、次の注意点を知らないと失敗します。

  • 破滅的忘却(ひと言でいうと、新しいことを学ぶ過程で以前できていたことを忘れてしまう現象): 特定分野のデータに寄せすぎると、汎用的な能力が劣化することがあります
  • データ品質への強い依存: 誤りや偏りを含むデータで調整すれば、その誤りや偏りごと学習します。少量で効くからこそ、質の悪いデータの影響も濃く出ます
  • 過学習: 少ないデータを学習しすぎると、手持ちデータの丸暗記に陥り、初めての入力に弱くなります
  • 知識の追加には不向きな場合がある: ファインチューニングは「振る舞い・型」を教えるのは得意ですが、「最新の事実を覚えさせて正確に答えさせる」用途では、後述のRAGのほうが向く場面が多くあります

プロンプト・RAG・ファインチューニングの使い分け

実務では「いきなりファインチューニング」はまず選びません。より手軽な手段から順に検討するのが定石です。

観点 プロンプトの工夫 RAG(検索で情報を渡す) ファインチューニング
モデル本体の変更 なし なし あり(パラメーター更新)
手軽さ ◎ すぐ試せる ○ 検索の仕組みが必要 △ データ整備と学習が必要
得意なこと 指示・形式の調整 最新・社内情報の反映 振る舞い・文体・専門性の定着
情報の更新 入力のたびに変えられる 検索対象を差し替えるだけ 再学習が必要
プロンプトの工夫
指示や例示で解決できないか試す
RAGの検討
足りないのが「情報」なら検索連携で補う
ファインチューニング
足りないのが「振る舞い」なら本体を調整

覚え方はシンプルです。足りないのが「情報」ならRAG、足りないのが「振る舞い」ならファインチューニング。この判断軸は実務でもテスト対策でも役立ちます。

💡 具体例で考える

あるコールセンターの会社が、問い合わせメールへの返信文を下書きするAIを導入したとします。汎用モデルをそのまま使うと、内容は正しいのに文体が会社の基準と合わず、毎回大幅な手直しが必要でした。プロンプトに文体の指示を書き込むと改善しましたが、指示が長くなりすぎて管理が大変です。そこで、過去の「問い合わせと模範返信」のペアを数千件整備してファインチューニングしたところ、指示をほとんど書かなくても会社の文体で安定した下書きが出るようになりました。「毎回プロンプトで教えていたことを、モデルに覚え込ませた」わけです。

一方、同じ会社が「最新の料金プランを正確に答えさせたい」と考えたときは、ファインチューニングではなくRAGを選びました。料金は頻繁に改定されるため、そのたびに再学習するのは非効率で、検索対象の資料を差し替えるだけで済むRAGが適していたからです。この2つの選択の対比が、まさに使い分けの実例です。

⚠️ よくある誤解・つまずきポイント

💡 ポイント
  • 誤解:「ファインチューニングすればどんな課題も解決する」 → 正しくは、振る舞いや文体の定着には強い一方、最新情報の反映などはRAGのほうが適する場合が多くあります
  • 誤解:「プロンプトで例を見せるのもファインチューニングの一種」 → 正しくは、プロンプトの工夫(コンテキスト内学習)はパラメーターを一切変えません。パラメーターを実際に書き換えるのがファインチューニングです
  • 誤解:「追加学習だから、元の能力はそのまま全部残る」 → 正しくは、調整のしかたによっては元の汎用能力が劣化する(破滅的忘却)リスクがあります
  • 誤解:「データは多ければ多いほどよい」 → 正しくは、量よりも質と目的への適合が重要です。誤りを含むデータはその誤りごと定着します

📝 生成AIテストではこう出る

💡 ポイント
  • 定義を問う形式。「事前学習済みモデルに目的別のデータで追加学習を行い、パラメーターを調整すること」を選ばせる問題が想定されます
  • コンテキスト内学習との対比。「ファインチューニングはパラメーターを更新するが、プロンプトによる例示(Few-Shotなど)は更新しない」という区別の正誤判定が定番です
  • 事前学習との比較。「ファインチューニングは事前学習より少ないデータ・計算量で実施できる」という理解の確認が考えられます
  • LoRAなどの軽量化手法との関連。「一部のパラメーターのみを学習して計算資源を節約する手法がある」という趣旨の記述が正しい選択肢として登場し得ます

📚 まとめ

💡 ポイント
  • ファインチューニングは、事前学習済みモデルのパラメーターを目的に合わせて微調整する追加学習で、土台を再利用するため低コストです
  • 用途は「指示応答化」「専門分野特化」「文体・形式の固定」が代表で、インストラクションチューニングもその一種です
  • 全部を更新するフル方式のほか、LoRAのような軽量方式が広く使われます
  • 破滅的忘却・データ品質・過学習という落とし穴があり、「情報が足りないならRAG、振る舞いが足りないならファインチューニング」という使い分けが実務の定石です