ファインチューニング / LoRA / RAG は何が違うの?
AIや大規模言語モデル(LLM)の話をしていると、次のような質問がありますよね。
- ファインチューニング(Fine-Tuning)
- LoRA
- RAG
最近AIを勉強はじめた方と話をしていると、この3つの違いについて質問されることが多いのです。ただ、違いを明確にして説明してと言われると、自分は結構困ります🥲(そんな即応的な回答は私には無理)
結局、どの機能もモデルを賢くする方法になるのですが、実は「変えている場所」が違います。 今回はこの3つを「何を変える技術なのか」という視点で整理してみました。
まず結論から
簡単にいうと、次のような違いがあります。
| 方法 | 何を変える? |
|---|---|
| ファインチューニング | モデルそのもの |
| LoRA | モデルの考え方・振る舞い |
| RAG | モデルが参照する情報 |
「どれが機能上か」という考えではなく、変える部分の役割が違うと考えるのが良さそうです。
1.ファインチューニング(FT)とは?
イメージ
モデルを一から再教育する
すでに知識を持っているモデルに対して、追加の学習データを使い、内部のパラメータをすべて更新する方法です。
モデルの中身が書き換わるため、能力そのものが変わります。ただし、学習に時間と計算資源がかかりますし、失敗すると元の性能を壊してしまうこともあるので、気軽に試せる方法ではないかも🤔
向いているケース
モデルがそもそも理解できていない分野を扱いたいときや、専用タスク用のモデルを作りたいときに使われます。
2. LoRAとは?
イメージ
モデルはそのまま、考え方だけを調整する
LoRAは、モデル本体を壊さずに「こう振る舞ってほしい」という差分だけを追加する方法です。
モデルの土台は固定したまま、追加するのは小さな差分だけなので、学習が速くて軽いのが特徴です。しかも付け外しができるので、用途に応じて切り替えられるのも便利ですね。
向いているケース
口調や文体を揃えたいとき、出力形式(JSONなど)を安定させたいとき、社内ルールや判断基準を反映したいときなどに向いています。
3. RAGとは?
イメージ
モデルの外にある資料を見せながら答えさせる
RAGは学習をしません。代わりに、質問に応じて関連資料を探して一緒に渡す仕組みです。
モデル自体は変わらず、毎回参照する情報が変わるという点が他の2つとは大きく異なります。最新情報や社内文書に強く、出典を示しやすいのもメリットですね。
向いているケース
社内規程やマニュアルを答えさせたいとき、情報が頻繁に更新されるときや、根拠付きで回答したいときに適しています。
私はナレッジグラフやGraphRAGを用いたシステム開発をしていて、RAGは「どんな情報をどう渡すか」で回答精度が大きく変わるので、奥が深い領域だなと日々感じています。
3つを並べて見ると…
この3つを比べると以下のような感じかなと思います。
| 観点 | FT | LoRA | RAG |
|---|---|---|---|
| モデルを学習する? | する | する(差分のみ) | しない |
| 変わる場所 | 全体 | 考え方・癖 | 参照情報 |
| 学習コスト | 高い | 低い | なし |
短時間のハンズオンで使うなら、LoRAとRAGが扱いやすいですね。ファインチューニングは計算資源の関係で気軽には試しづらいので、概念として理解しておく程度で良いかなと思います。(あくまでも個人的な感想)
よくある誤解
❌ 「RAGは簡易ファインチューニング」
これは違います。RAGは学習ではなく「情報検索」です。モデルの中身は一切変わっていません。
❌ 「LoRAは性能が低い」
これも違います。LoRAの目的は「能力向上」ではなく「振る舞い調整」です。変える部分の土俵が違うので、単純比較はできないのです。
おわりに
かなりざっくりと説明するなら
RAGは記憶、LoRAは人格、ファインチューニングは脳そのもの、変えて賢くする技術
って感じでしょうか。あんまり詳しくない方にも説明するならこのくらいのレベルのほうがいっそ良いと思います。 この違いを押さえておくと、LLM関連の記事や講義の理解が一気に楽になるのかも🙄私自身、AIの技術を話す機会が増えてきて、こういった「そもそもの違い」を整理しておくことの大切さを実感しています。
このブログの内容をGeminiにインフォグラフィックス化してもらいました。こっちの方がわかりやすいかも🥲🥲🥲
