RAGとは何か

生成AIでできること

AIチャットに質問したとき、「もっともらしいけど、本当に正しいのかな?」と感じたことはありませんか。

実際、AIは学習データに含まれない情報について聞かれると、事実と異なる回答をしてしまうことがあります。この問題を解決するために生まれた技術が「RAG(ラグ)」です。

この記事では、RAGとは何か、どのようなしくみでAIの回答精度を高めているのかを、専門知識がなくてもわかるようにやさしく解説します。

RAGとは何の略か

RAGは「Retrieval-Augmented Generation」の略で、日本語では「検索拡張生成」と訳されます。名前は難しそうですが、やっていることはシンプルです。

AIが回答を作る前に、関連する情報を外部のデータベースから検索(Retrieval)して取ってきて、その情報をもとに回答を生成(Generation)するというしくみです。検索によって回答の質を拡張(Augmented)しているので、この名前がついています。

RAGを身近なたとえで理解する

RAGのしくみを、日常的な場面にたとえてみましょう。

「カンニングOKのテスト」のたとえ

通常のAIチャットは、「教科書を全部暗記した生徒が、記憶だけで解答するテスト」のようなものです。暗記した範囲なら正確に答えられますが、教科書に載っていなかった問題や、試験後に変わった情報には対応できません。記憶があいまいだと、自信満々に間違った答えを書いてしまうこともあります。

一方、RAGを使ったAIは、「参考書を持ち込んでいいテスト」のようなものです。質問を受けたら、まず手元の参考書から関連するページを探し出し、そこに書かれている情報をもとに回答を組み立てます。暗記に頼らないので、より正確な答えが出せるのです。

なぜRAGが必要なのか

RAGが注目される背景には、大規模言語モデル(LLM)が抱えるいくつかの弱点があります。

ハルシネーション(幻覚)の問題

AIが事実と異なる情報をもっともらしく生成してしまう現象を「ハルシネーション」と呼びます。たとえば、存在しない論文を引用したり、架空の統計データを作り出したりすることがあります。

RAGを使えば、実際のデータベースから取ってきた情報をもとに回答するため、ハルシネーションが起きるリスクを大幅に減らすことができます。

情報の鮮度の問題

大規模言語モデルは、学習データの時点までの情報しか持っていません。たとえば2024年1月までのデータで学習したAIに、2024年6月の出来事を聞いても正しく答えられません。

RAGなら、常に最新のデータベースから情報を取ってくるため、最新の情報を反映した回答が可能になります。

専門的な情報への対応

企業の社内文書や特定の業界の専門資料など、AIが学習データに含んでいない情報についても、RAGなら対応できます。自社のマニュアルやFAQをデータベースとして接続すれば、自社専用のAIアシスタントを作ることができます。

RAGの具体的なしくみ

RAGがどのようなステップで動いているのかを、順を追って見ていきましょう。

ステップ1:データを準備する(前準備)

まず、AIに参照させたい文書やデータを細かいチャンク(塊)に分割し、それぞれの内容を数値ベクトル(意味を表す数値の列)に変換して、データベースに保存します。この数値ベクトルに変換することを「埋め込み(エンベディング)」と呼びます。

図書館で本を分類してインデックスを作るような作業です。あとで必要な情報をすばやく見つけられるようにするための準備段階です。

ステップ2:質問に関連する情報を検索する

ユーザーが質問を入力すると、その質問も同じ方法で数値ベクトルに変換されます。そして、データベースの中から「意味的に近い」チャンクを見つけ出します。

キーワードの一致ではなく「意味の近さ」で検索するため、質問と完全に同じ言葉が使われていなくても、関連する情報を見つけることができます。

ステップ3:検索結果をもとに回答を生成する

検索で見つかった関連情報を、ユーザーの質問と一緒にAI(大規模言語モデル)に渡します。AIは「質問の内容」と「検索で見つかった参考情報」の両方を考慮して、回答を生成します。

このとき、AIは単に情報をコピーするのではなく、質問の意図に合わせて情報を要約・整理して、わかりやすい回答にまとめてくれます。

RAGの活用例

RAGはすでにさまざまな場面で活用されています。

社内AIアシスタント

社内の規程集、マニュアル、過去の議事録などをデータベースとして接続し、社員がAIに質問すると社内情報に基づいた回答が返ってくるしくみです。「有給休暇の申請方法は?」「前回の取締役会で決まったことは?」のような質問に、社内文書をもとに正確に答えることができます。

カスタマーサポート

製品のマニュアルやFAQをデータベースとして使い、お客さまからの問い合わせに自動で回答するシステムです。「この製品の保証期間は?」のような質問に、最新の製品情報をもとに回答できます。

調べものの精度向上

AIチャットで調べものをする際にRAGが使われることで、より正確で信頼性の高い回答を得られます。ChatGPTで調べものをするときの注意点と組み合わせることで、情報の正確性をさらに高められます。

RAGの限界と注意点

RAGは万能ではなく、いくつかの限界もあります。

検索の精度に依存する

RAGの回答品質は、検索ステップで適切な情報を見つけられるかどうかに大きく左右されます。関連する情報がデータベースに存在しない場合や、検索で見つけられなかった場合は、結局AIの学習データだけに頼ることになります。

データベースの品質が重要

参照するデータベースの中に誤った情報や古い情報が含まれていれば、AIの回答も間違ったものになります。「ゴミを入れればゴミが出てくる」という原則は、RAGにもあてはまります。

ハルシネーションが完全になくなるわけではない

RAGはハルシネーションを大幅に減らしますが、完全にゼロにはできません。検索結果の解釈を誤ったり、情報を過度に一般化したりすることはあり得ます。重要な判断に使う場合は、AIの回答を必ず人間が確認することが大切です。

RAGと「ファインチューニング」の違い

AIの回答精度を上げる方法として、RAGのほかに「ファインチューニング」というアプローチもあります。違いを整理しておきましょう。

  • RAG — AIの外側にデータベースを用意し、質問のたびに検索する。データの更新が容易。AIモデル自体は変えない
  • ファインチューニング — AIモデルそのものを追加データで再学習させる。モデルの中に知識を組み込む。更新には再学習が必要

たとえで言えば、RAGは「辞書を引きながら仕事をする」、ファインチューニングは「新しい知識を頭に叩き込む」ようなものです。どちらにも長所と短所があり、目的に応じて使い分けたり、組み合わせたりします。

覚えておきたいポイント

  • RAGは「AIが回答前に外部データベースを検索して情報を取得するしくみ」である
  • ハルシネーションの軽減、最新情報への対応、専門知識の活用が主なメリット
  • 検索の精度やデータベースの品質が回答の質を左右する
  • ハルシネーションを完全にゼロにはできないため、人間の確認は引き続き重要

あわせて読みたい記事

Comment

タイトルとURLをコピーしました