〇〇業界特化モデルの作り方|RAG・LoRA・継続事前学習をどう選ぶか
はじめに
「〇〇業界特化モデル」って、最近よく見かけるんですが、その中身はだいたい決まったパターンに落ち着くんです。
前回までに、金融業の「社内マニュアル問い合わせAI」と、製造業の「出荷前外観検査VLM」の2本を書きました。この2つ、業種はぜんぜん違うのに、やってることは同じ問いに集約されるんです。
「汎用のLLMを、どうやって特定の業界・業務に寄せるか」
今回はその方法論を、特定の業界に縛らずにまとめます。RAG、ファインチューニング(LoRA)、継続事前学習の3つをどう使い分けるか、という話です。
結論を先に言うと、実務ではほぼ「RAG+LoRA」の組み合わせに落ち着く。ただ、この3つは「何を変えたいか」がぜんぜん違うので、使い分けを間違えると時間とGPU代をドブに捨てます。軸は一つ、「知識を足す」と「振る舞いを変える」は別物ということ。この区別さえ付けておけば、あとは迷いません。
業界特化の手段は、ざっくり3つ
汎用LLMを業界に寄せる方法は、大きく分けて3つです。
- RAG(検索拡張生成):モデルはそのまま、外部の文書を検索で引っ張ってきて読ませる
- ファインチューニング/LoRA:モデルの重みを一部だけ追加学習して、出力の仕方を変える
- 継続事前学習:業界の文書でモデルを追加学習して、専門用語・文脈ごと覚えさせる
比喩にすると分かりやすいです。
- RAGは「試験にカンニングペーパーを持ち込ませる」。モデルは賢くならないけど、必要な知識をその場で渡せる
- ファインチューニングは「仕事の作法を教える」。知識は増えないけど、答える形式・口調・判定が変わる
- 継続事前学習は、この2つと違って比喩というより本当にモデルを業界の文書で追加学習し直す話。上2つよりガチの作業で、金も時間も一番かかります。
どれを選ぶか:判断基準
一番よくある間違いが、ファインチューニングで何とかしようとすることです。ファインチューニングでも新しい事実は多少覚えられますが、確実に知識を足すならRAGの方が向いています。社内文書や規程の内容を答えさせたいならRAGが正解です。逆に「回答の形式を揃えたい」「判定を安定させたい」なら、RAGでは効かなくてLoRAの出番。
表にするとこんな感じです。
| やりたいこと | 選ぶべき手段 |
|---|---|
| 社内文書・規程の内容を答えさせたい | RAG |
| 回答の形式・口調・JSON出力を揃えたい | LoRA/ファインチューニング |
| 業界特有の用語・言い回しを根本から理解させたい | 継続事前学習 |
| 特定の不良パターン・事例を覚えさせたい | LoRA(RAGと併用) |
実務では「RAG+LoRA」の2段構えに落ち着く
金融編・製造編で実際にやったのも、結局これでした。
- まずRAGで社内文書や検査基準を引けるようにする
- 取りこぼしやブレをLoRAで調整して詰める
RAGだけで8割方カバーして、残りの「どうしても安定しないところ」をLoRAで固める。いきなり全部を学習させようとしないのが、コスト的にも現実的でした。
出来上がったものの流れは、ざっくりこんな感じです。
逆に、最初から「継続事前学習で業界特化モデルをゼロから作る」のは、データもGPUも時間もかかるので、よほどの理由がない限りやらない。まずRAG、次にLoRA、継続事前学習は最後の手段、くらいの優先順位で考えています。
それぞれのハマりどころを正直に
RAG:敵はモデルじゃなくて前処理
RAGは図にすると綺麗なんですが、実際は検索の質で全部決まります。PDFの表が崩れて抽出されたり、似た条文を隣から引いてきたり。前処理・チャンク設計・検索方式(ハイブリッド+リランカー)をきっちりやらないと、モデルをいくら賢くしても無駄です。
ちなみにRAGはわりと枯れた技術で、「検索で引いた文書を根拠に答えさせる」という基本線は昔から変わっていません。
LoRA:過学習と「データの質」に泣く
LoRAは少ないデータで効くのが売りですが、学習データが偏ってると、その偏りを素直に覚えてしまう。「この角度のこの傷」だけに敏感になって他を見逃す、みたいな。結局、データの質と量のバランスが一番大事でした。
ちなみにLoRAは、重みを直接いじらず「小さな差分」だけ学習する手法です。量子化と組み合わせたQLoRAを使うと、消費メモリをさらに抑えられます。
継続事前学習:データ量と「忘れる」問題
継続事前学習は、業界の文書を大量に用意しないと効果が出ないし、やりすぎると 元々できてたことができなくなる(破壊的忘却) リスクもあります。GPUも時間も段違いに要るので、個人や小チームで気軽にやるものではない、というのが正直なところです。
「ドメインに合わせて追加学習する」という発想自体は昔からあるもので、「忘れる」問題も古くから知られています。
LLMとVLMで、データもRAGもぜんぜん違う
ここまでLLM(テキスト)とVLM(画像も読む)をまとめて書いてきましたが、正直この2つは「データ」と「RAG」の話がかなり違います。ここを混ぜると痛い目を見るので、分けて書きます。
テキストのLLMは、データがとにかく集めやすい。社内文書もPDFもWordも、テキストに落とせば学習にもRAGにも使える。RAGなら文書をチャンクに切って埋め込むだけ。データ集めで詰まることは少ないです。
画像のVLMは、これが真逆で 「画像とテキストのペア」が要る のがきつい。たとえば「この不良品の写真+これは欠けです」みたいなペアがないと、再学習もまともに効きません。しかも製造業の不良品画像なんて、そもそも集めるのが大変(不良は出てほしくないから)。RAGの話も、テキストの「文書を引いてくる」とは勝手が違って、VLMは画像をそのまま読めるので「検索で画像を引っ張ってくる」ケースはむしろ少ない。どちらかというと、「読ませる画像」と「判定基準のテキスト」をどう渡すか、がVLMの肝になります。
要するに、「業界特化」と一言で言っても、テキストの仕事と画像の仕事ではデータの難易度が段違い。ここを最初に見誤ると、データが集まらずに計画が頓挫します。
データ準備が結局いちばん重い
ここまで読むと「RAGが一番ラクで、LoRA、継続事前学習の順に重い」と分かると思うんですが、もう一つ正直に言っておくと、どの手段でも「データ準備」が工数の大半を食う。
- RAG:文書をちゃんと抽出して、チャンクに切って、メタデータを付ける。PDFの表が崩れてたら直す。この前処理が甘いと検索が死ぬ
- LoRA/ファインチューニング:教師データ(入力→出力のペア)を用意する。ここが一番地味で一番時間がかかる。「モデルを学習させる」より「学習データを作る」方が何倍も重い
- 継続事前学習:業界の文書を大量に集めて、ゴミ(重複・ノイズ・個人情報)を除去する。これも泥臭い
具体的には、こんなデータを用意する
「データ準備」と言われてもピンとこないので、具体例を出します。
RAGは、社内の文書をそのまま用意します。金融なら約款・手数料規程・事務手順書のPDF、製造なら検査基準書・作業標準書みたいなやつ。これをテキストに起こして、条文や見出し単位で切って、メタデータを付けます。
LoRA/ファインチューニングは、入出力のペアです。テキストならこんな感じ。
{"input": "振込手数料はいくらですか", "output": "〜円です(出典:手数料規程 第3条)"}
画像のVLMなら、不良品の写真と判定ラベルのセット。
{"image": "kake_001.jpg", "output": "NG(欠け、location: [x1,y1,x2,y2])"}
こういう「問い→答え」のペアを、数十〜数百件、質を揃えて用意する。ここが一番地味で時間がかかる、というのが伝わればと思います。
継続事前学習は、これらと違ってラベル付けは要らない。業界の文書を大量に(数千〜数万件)かき集めます。法律なら条文の全文、金融なら社内規程の全ページ、みたいな。とにかく量が要るので、「集める」フェーズと「きれいにする」フェーズで時間が大半消えます。
量の目安と品質チェック
データの量は手段によってぜんぜん違います。目安はこんな感じです。
| 手段 | データ量の目安 | 品質チェック |
|---|---|---|
| RAG | 文書 数十〜数百件(チャンクは数百〜数千) | 抽出崩れ・チャンク境界の確認、検索のヒット率で検証 |
| LoRA | 数十〜数百件(単純な形式・判定なら50件程度から) | 入出力の対応、偏り・重複の除去、評価セットで過学習を確認 |
| 継続事前学習 | 数千〜数万件以上(数千万〜数億トークン) | 重複・ノイズ・個人情報の除去、破壊的忘却のチェック |
LoRAが「数十件で足りる」のは意外かもしれませんが、形式や判定のような単純なタスクなら、50件もあればそこそこ効きます。逆に複雑なタスクは数百〜数千件、フルのファインチューニングなら万単位と一気に増える。継続事前学習はさらにその上で、とにかく量勝負です。
品質チェックで一番大事なのは、「偏り」と「ゴミ」の除去。特定のパターンに寄ったデータで学習すると、その偏りをそのまま覚えてしまいます。あと、学習したあとは学習に使っていない評価用データでちゃんと測ること。学習データでいい点を取っても意味がないので、これはどの手段でも共通です。
世の中の「業界特化AI」って、聞こえはいいですが、実態はこのデータ準備の泥臭い作業が大半だったりします。賢いモデルを選ぶより、良いデータを作る方が結局効く——これはAI業界の表に出にくい本音です。
どんな機材が要るか
前2編でも書きましたが、RAGだけなら実はGPU必須ではない(埋め込みと検索はCPUでも回る)。ただ、LoRAや継続事前学習をやるならGPUは必須で、見るべきはクロックよりVRAMです。
モデルサイズとVRAMの関係は、ローカルLLM構築のハードウェア選定ガイドにまとめてあるので、そちらを参照してください。
まとめ
業界特化LLMを作るなら、まずこの3つの使い分けを押さえる。
- 知識を足す → RAG(前処理・検索の質が命)
- 振る舞いを整える → LoRA/ファインチューニング(データの質が命)
- 業界の言葉ごと変える → 継続事前学習(最後の手段、重い)
- 実務では 「RAGで8割 → LoRAで詰める」 の2段構えが現実解
- 結局はデータ準備が8割。モデル選びより良いデータを作る方が効く
この区別さえ付けておけば、構成の迷いがかなり減ります。金融編・製造編で痛感したことを、一般的な形にしたのがこの記事です。誰かの「どうやって業界に寄せるか」の見取り図になれば。
💡 ローカルLLM開発について、ご関心やご相談がございましたら、以下よりお気軽にお問い合わせください。
Discussion