Data Science and AI

Retrieval-Augmented Generation(RAG)とは?

記事をシェアする:

RAGは、外部の知識ベースから事実を検索して、最新の正確な情報に基づいて大規模言語モデル(LLM)に回答を生成させることで、ユーザーの洞察をLLMの生成プロセスに組み込むというAIフレームワークです。

大規模言語モデルは時に一貫性に欠けた振る舞いをします。質問に対して的確に答えることもあれば、学習データに含まれたいい加減な情報を吐き出すこともあります。時折、何を言っているのか自分でもわかっていないように聞こえることがありますが、それは実際にわかっていないからです。LLMは、単語と単語が統計的にどのように関係するかはわかっていますが、それが何を意味するかをわかっているわけではありません。

Retrieval-augmented Generation(RAG、検索により強化した文章生成)は、LLMが持つ知識の内部表現を補うために外部の知識ソースにモデルを接地させる(グラウンドさせる)ことで、LLMが生成する回答の質を向上するAIのフレームワークです。LLMベースの質問応答システムにRAGを実装すると、主に2つの利点があります。すなわち、モデルが最新の信頼できる事実にアクセスできることと、ユーザーがモデルの情報ソースにアクセスできるようにすることで、モデルの主張が正確かどうかをチェック可能にし、最終的に信頼できることを保証することです。

「モデルの答えを元のコンテンツと相互参照することで、モデルの答えが何に基づいているのかを知ることができます」とIBM Researchの言語技術研究のディレクターであるLuis Lastrasは述べています。

RAGには他にも利点があります。LLMを外部の検証可能な事実の集合に基づかせることで、モデルがそのパラメーターに埋め込まれた情報を引き出すことが少なくなります。これにより、LLMが機密データを漏らしたり、不正確な情報や誤解を招く情報の「幻覚(ハルシネーション)」を生成したりする可能性が低くなります。

RAGはまた、継続的に新しいデータでモデルを学習し、状況の変化に応じてパラメーターを更新する必要性を低減します。このようにRAGは、LLMを搭載したチャットボットを企業で運用する際の計算コストと財務コストを下げることができます。IBMは5月、RAGを提供する新しいAIとデータのプラットフォームwatsonxを発表しました。

難しい質問に答えるための「オープンブック」アプローチ

LLMを含むすべての基盤モデルの基礎構造にあるのは、トランスフォーマーと呼ばれるAIアーキテクチャーです。これは、大量の生データをその基本構造を圧縮した知識表現に変換します。基盤モデルはこの未加工の知識表現から出発して、ラベル付けされたドメイン固有の知識に基づいてファイン・チューニングを加えることで、さまざまなタスクに適応させることができます。

しかし、ファイン・チューニングだけでは、刻々と変化する文脈の中で詳細な質問に答えるために必要な知識の幅を、モデルが完全に獲得することは困難です。Meta社(当時はFacebook)は2020年の論文で、LLMが学習データ以外の情報にアクセスできるようにするためのretrieval-augmented generationと呼ばれるフレームワークを発表しました。RAGは、LLMがより正確な方法で質問に答えるために専門的な知識体系を構築することを可能にします。

Lastrasは言います。「いわばオープンブック試験とクローズドブック試験の違いです」(オープンブック試験とは、大学などで行われる教材持ち込み可のテスト形式のこと)。「記憶から事実を思い出そうとするのではなく、RAGシステムでは、本の内容を閲覧して質問に答えるようモデルに求めているというわけです」

その名が示すように、RAGには検索(Retrieval)とコンテンツ生成(Generation)という2つのフェーズがあります。検索フェーズでは、ユーザーのプロンプトや質問に関連する情報のスニペット(断片)をアルゴリズムが検索し、取得します。オープン・ドメインの消費者向け設定では、インターネット上のインデックス化された文書から情報を取得するかもしれません。クローズド・ドメインの企業向け設定では、セキュリティーと信頼性を高めるために、通常、より狭い範囲の情報ソースが使用されます。

取得した外部知識の詰め合わせは、ユーザーのプロンプトに追加され、言語モデルに渡されます。生成フェーズでは、LLMはこの増強されたプロンプトと学習データの内部表現から、その瞬間のユーザーに合わせて気の利いた回答を生成します。そしてこの際の回答は、ソースへのリンクとともにチャットボットに渡すことができます。

パーソナライズされ検証可能な回答を目指して

LLMが登場する前は、デジタル会話エージェントは手作業で作られた対話フローに従っていました。対話フローには、顧客の意図を確認し、要求された情報を取得し、回答を提供するという作業をすべてシナリオ書きしていました。簡単な問い合わせに対してであれば、この手動で作った決定木方式は問題なく機能しました。

しかし、それには限界がありました。顧客から尋ねられる可能性のあるすべての質問に対する答えを、人が予測し、シナリオ書きするのには時間がかかりました。もし、想定していない話の流れになった場合、チャットボットには即興で対応する能力がありませんでした。ポリシーや状況の変化に応じてスクリプトを更新することは、不可能もしくは非現実的でした。

今日、LLMを搭載したチャットボットは、人間が新しいスクリプトを書き出すことなく、パーソナライズされた回答を顧客に返すことができます。そしてRAGは、新しいデータをモデルに与えて再学習させる必要性を大幅に削減するという点で、さらに一歩LLMを前進させます。最新のドキュメントやポリシーをアップロードするだけで、モデルはオープンブック・モードで情報を取得し、質問に回答します。

IBMは現在、社内のカスタマーケア・チャットボットを、検証され信頼できるコンテンツに基づかせるためにRAGを使用しています。この実際の利用例で、この仕組みがどのように機能するかを見てみましょう。従業員のアリスは、息子の学校で今年いっぱい水曜日の下校時間が早くなることを知りました。彼女は、半日単位で休暇を取れるかどうか、また今年末まで十分な休暇があるかどうかを知りたいと思いました。

LLMは応答を作文するために、まずアリスの人事ファイルからデータを取り出し、彼女が長年勤めている従業員としてどれだけの休暇を取得しているのか、そして今年何日休暇が残っているのかを調べます。また、彼女の休暇が半日単位で取得できることを確認するため、会社の規定を検索します。これらの事実は、アリスの最初のクエリと組み合わせてLLMに渡され、LLMは簡潔でパーソナライズされた回答を生成します。そしてチャットボットは、情報ソースへのリンクとともにアリスに回答を提供します。

答えを知らないときに知らないと認識するようモデルに教える

顧客からの問い合わせは、必ずしもこのように単純なものばかりではありません。曖昧な表現であったり、複雑であったり、モデルが持っていない、あるいは容易に解析できない知識を必要としたりします。そのような場合に、LLMは間違った回答をひねり出しがちになります。

Lastrasは次のように言います。「LLMというものは、事実を確認する前に答えを口に出してしまう、熱心すぎる若手社員のようなものだと考えてください」「経験によって私たちは、わからないことがあるときは立ち止まり、わからないと言うべきだと学びます。しかしLLMは、答えられない質問を認識するよう明確に訓練される必要があります」

アリスが何日間の産休がもらえるか知りたがっているというような、現実に見られる少し難しいシナリオで、RAGを使っていないチャットボットは、明るく(そして間違って)こう答えるかもしれません。「好きなだけ取ってください」

産前産後休暇の規定は、従業員の本拠地の州や国によって異なるため、複雑なのです。Lastrasは言います。LLMは正確な答えを見つけられなかったとき、「申し訳ありませんが、わかりません」と答えるか、明確に答えられる質問にたどり着くまで追加の質問をすべきです。その代わりに先の例では、学習データの中から、共感にあふれ顧客を喜ばせるフレーズを引き出してしまったのでした。

十分なファイン・チューニングをすれば、LLMは行き詰まったときに一時停止して、わからないと言うように訓練することができます。しかし、そのためには答えられる質問と答えられない質問の例を何千と見る必要があるかもしれません。そうして初めて、モデルは答えられない質問を識別することを学習し、答えられる情報を持っている質問にぶつかるまで、さらに詳細を問い合わせることができるようになるのです。

RAGは現在、LLMに最新の検証可能な情報を提供して、LLMの再学習や更新にかかるコストを削減するために最もよく知られた方法です。しかし、RAGは不完全であり、RAGを正しく実行するには多くの興味深い課題が残されています。

IBM Researchでは、RAGのプロセスの両側、すなわち、検索(Retrieval)において可能な限り最も関連性の高い情報を検索して取得しLLMに供給することと、生成(Generation)においてLLMから最も豊かな応答を得るためにその情報を最適に構成する方法での技術革新に力を入れています。

この記事は英語版IBM Researchブログ「What is retrieval-augmented generation?」(2023年8月22日公開)を翻訳し一部更新したものです。

More Data Science and AI stories

ジェネレートするAI。クリエートする人類 。 | Think Lab Tokyo 宇宙の旅(THE TRIP)

IBM Data and AI, IBM Partner Ecosystem, IBM Sustainability Software

その日、船長ジェフ・ミルズと副船長COSMIC LAB(コズミック・ラブ)は、新宿・歌舞伎町にいた。「THE TRIP -Enter The Black Hole-」(以下、「THE TRIP」)と名付けられた13度目の ...続きを読む


イノベーションを起こす方法をイノベーションしなければならない(From IBVレポート「エコシステムとオープン・イノベーション」より)

Client Engineering, IBM Data and AI, IBM Partner Ecosystem

不確実性が増し、変化が絶え間なく続く時代には「イノベーション疲れ」に陥るリスクがある。誰もがイノベーションを起こしていると主張するならば、結局、誰もイノベーション(革新的なこと)を起こしてなどいないことになるだろう 当記 ...続きを読む


キー・パートナーに訊く | 毛利 茂弘(株式会社システムリサーチ)

IBM Data and AI, IBM Partner Ecosystem

株式会社システムリサーチでPM/Tech Advisorとして活躍する毛利茂弘氏に、日本IBMで中部地区パートナーを担当する大石正武が訊きます。 (写真左)毛利 茂弘(もうり しげひろ) | 株式会社システムリサーチ 製 ...続きを読む