はじめに
ChatGPTをはじめとしたLLM (Large Language Models) を活用したサービスが昨今注目を集めています。 質疑応答やソースコード生成など幅広いタスクで利用可能であり、その精度の高さには目を見張るものがあります。 一方でLLMが回答可能な知識は、基本的に学習時に獲得した知識のみであり、独自のデータに即した回答を得るためには何かしらの工夫が必要です。
今回はそんな工夫の一つである、RAG (Retrieval-Augmented Generation) という手法を紹介します。
RAGとは?
例えば社内情報をベースにしたChatBotを作成したいとします。
まず社内情報のDBをあらかじめ作成しておきます。 システムがユーザーの質問を受け取ったらそれを直接LLMには投げず、代わりにDBで関連情報を検索します。 そしてこの検索結果を基にLLMに回答させます。
これがRAGです。 外部情報の検索と組み合わせることでLLMの性能を拡張することができます。
RAGには以下のようなメリットがあります。
-
簡単、低コスト
LLMは検索結果を基に回答するのみで、QAの対応を学習する必要がありません。 一般にLLMをFineTuningするには大量の学習データとマシンリソースが必要になるため、コストがかかり、技術的にも難しいです。 RAGであればFineTuningをする必要がないため比較的簡単で、低コストです。 -
比較的高精度
DBから取得した内容をもとに回答するため、無関係な情報が入りづらいです。 また回答の根拠が明確になるため、ハルシネーションを抑制する効果も期待できます。
RAGがない場合、ある場合の回答例
社内ChatBotを想定して、RAGの有無で回答がどう変わるか見てみましょう。
- RAGなしの場合
社内情報を与えず直接ChatGPT(GPT-4o)に「休暇の種類について教えてください」と訊くと、 以下のような一般的な答えが返ってきます。
休暇にはさまざまな種類があります。以下に代表的な休暇の種類を紹介します。 1. 年次有給休暇 年次有給休暇は、労働者が一定の勤務期間を経過した後に取得できる有給の休暇です。日本の労働基準法では、6ヶ月以上継続して勤務し、全労働日の8割以上出勤した労働者に対して、最低10日の有給休暇が付与されます。 |
上の答えも間違いではないのですが、ユーザーは社内情報に特化した回答が欲しいはずです。
- RAGありの場合
RAGを使用したChatBot(実際に弊社で動いているBotです!)に同じ質問をしてみます。
休暇の種類は以下の通りです: 1. 有給休暇:事前に申請し、1年以内に残った日数は翌年に持ち越すことができます。 2. 特別休暇:特定の理由(結婚、出産、葬儀など)による休暇です。 3. 半日休暇(半休):事前に申請し、半日だけ休暇を取ることができます。 4. サマーフレックス休暇(SFH):事前の申請は必要ありませんが、事後申請が可能です。 |
社内情報を元に欲しい回答が得られました!
おわりに
弊社ではAI、LLMを活用した業務を行っています。 ご興味のある方は、ぜひご応募ください。 あなたのスキルと情熱をお待ちしています!