業務でLLMを使えるようになっても、「一般的な回答しか返ってこない」「自社の業務に即していない」と限界を感じるケースは少なくありません。書籍『Pythonによるディープラーニングと生成AI・LLM』(François Chollet、Matthew Watson著)を手がかりに、LLMを「自社の文書・ルール・求める口調」に沿った実務仕様へと近づける手法を整理します。

  • (書影1)『Pythonによるディープラーニングと生成AI・LLM』

LLMを自社向けにする2つの方法 - 振る舞いを整えるか、知識を参照させるか

LLMを自社の業務にフィットさせたい――こうした課題に対処する軸は2つあります。回答の「振る舞い」を変えたいのか、回答に必要な「知識」を渡したいのかです。

前者は出力の形式や口調、指示への従い方を自社向けに寄せる形で、モデル自体を調整します。後者はモデルに手を加えず、回答に必要な情報を都度与えるアプローチです。

LLMの振る舞いを自社向けに調整する「インストラクションチューニングとLoRA」

まず、出力の振る舞いを寄せる方法です。汎用的なLLMは、そのままでは必ずしも指示どおりに応答してくれるとは限りません。同書は、この課題を出発点に一つの訓練手法を挙げています。

特に、指示に従うチャットボットを構築したい場合、この訓練手法はインストラクションファインチューニング(instruction fine-tuning、以下「インストラクションチューニング」)と呼ばれます。

その中身は、シンプルな考え方に基づいています。

インストラクションチューニングでは、モデルに入力と出力のペア(ユーザーの指示とそれに対するモデルの応答)を与えます。

つまり、「こう指示されたら、こう答える」という例をモデルに学ばせることで、指示に従う応答へと近づけていくわけです。ここで大切なのは、新しい知識を覚え込ませる作業ではない点です。同書は次のように述べています。

望ましい応答を含んだサンプルを使って追加の訓練を行うことで、実質的には、モデルの出力を意図した方向へと少しずつ曲げていることになります。ここで行っているのは、言語の潜在空間を新たに学習することではありません。それはすでに数兆トークンにおよぶ事前学習によって完了しています。すでに学習済みの表現をわずかに調整し、出力のトーンや内容を制御しているだけです。

つまり、事前学習で得た土台はそのままに、出力のトーンや従い方を自社向けに寄せる作業です。

ただし、数十億のパラメータを持つモデルを丸ごと訓練し直すには、大きな計算資源が必要です。そこで同書が紹介するのが「LoRA(Low-Rank Adaptation)」です。

LoRA論文では、このkernel行列を凍結し、その代わりに「低ランクな」分解による更新項を追加することが提案されています。

大半のパラメータを凍結し、一部だけを低ランクの更新に絞る――。一見複雑な処理に思えますが、KerasHubを使えば、次の1行でシンプルに実装できます。

gemma_lm.backbone.enable_lora(rank=8)

その効果を同書はこう示します。

モデル全体のパラメータは依然として約3.7GB を占めていますが、訓練可能なパラメータが使うデータはわずか5MB にまで削減されました ―― およそ1,000分の1の削減です。その結果、GPU上で必要となるオプティマイザ状態も、数ギガバイトからわずか数メガバイトにまで縮小されます。

この割り切りが、小さな計算資源での調整を可能にしうるわけです。

知識として社内文書や最新情報を参照させる「RAG」

もうひとつの道はモデルに知識を渡す方法で、その代表がRAG(検索拡張生成)です。同書はまず、LLM単体が抱える弱点を挙げます。

▪ LLMはときどき事実を捏造する
訓練データには存在しないにもかかわらず、訓練データから補間できそうな誤った「事実」を生成することがあります。こうした情報は誤解を招くだけではなく、場合によっては危険です。

▪ LLM の知識にはカットオフ日がある
LLM の世界知識は、せいぜい事前学習が行われた時点までに限定されます。LLM の再訓練は非常に高コストであり、最新のデータを使って継続的に訓練し続けることは現実的ではありません。

事実と異なる出力(いわゆるハルシネーション)や学習時点より新しい情報を持たない限界は、社内資料を扱う場面で見過ごせません。RAGはこの弱点を補う発想から生まれています。

RAGでは、まずユーザーの質問を受け取り、それに基づいて何らかのクエリを実行し、追加のテキスト文脈を取得します。このクエリは、データベースでも検索エンジンでも、質問に関連する情報を返せる仕組みに対するものであれば何でもかまいません。そうして得られた追加情報は、そのままプロンプトに挿入されます。

質問を受けるたびに関連文書を取得し、プロンプトに添えて回答させる――。その効果を同書はこう説明します。

モデルの出力を事実に基づいて補強できる。ハルシネーションを完全に防ぐ特効薬は存在しないが、正しい文脈がプロンプトとして与えられている場合、LLM が事実を捏造する可能性は大幅に低くなる。

RAGはハルシネーションを完全に封じる特効薬ではなく、正確さを補強する手立てです。それでも、モデルを再訓練せずに最新情報や社内知識を反映できるため、実務で大きな利点になりえます。

目的から選ぶ、チューニング・LoRA・RAGの使い分け

インストラクションチューニング、LoRA、RAG、これらの手法は目的に応じて選び分けられます。

■実現したいこと
主な選択肢 LLMに与えるもの
変えるもの
位置づけ
■出力の形式・指示への従い方・口調を寄せたい
インストラクション
チューニング
学習済みモデルの
振る舞い
出力の調整
■調整を少ない訓練可能パラメータで行いたい
LoRA 更新パラメータを
限定
現実的な
調整手法
■質問に必要な社内文書・外部情報を回答時に使わせたい
RAG 関連テキストを
プロンプトに追加
知識の参照

(同書をもとに編集部作成)

自社向けのLLM活用を検討するときは、まず「回答の仕方を変えたいのか」「回答の材料を増やしたいのか」を分けて考えるとよいでしょう。前者ではインストラクションチューニングとLoRA、後者ではRAGが中心になります。目的が異なるため、必要に応じて両者を組み合わせることもできます。手法から入るのではなく、業務で求める回答を起点に選ぶことが、使いこなしの近道につながります。

【関連記事】
▶生成AIの過熱報道をどう見極めるか - 誇張と技術的な実態を判別する視点
▶LLMはなぜ嘘をつくのか? ハルシネーションの仕組みを「補間」から読み解く

Pythonによるディープラーニングと生成AI・LLM
著者:François Chollet、Matthew Watson
翻訳者:株式会社クイープ
監修者:巣籠悠輔
発売日:2026年3月18日
販売ページ:電子書籍ストア「マナティ」
マイナビBOOKS
Amazon
  • (書影2)『Pythonによるディープラーニングと生成AI・LLM』