■技術解説■ 生成AIのハルシネーションを低減するRAG。図表データまで特定できる"企業向けRAG"とは?(前編)

■技術解説■ 生成AIのハルシネーションを低減するRAG。図表データまで特定できる"企業向けRAG"とは?(前編)


生成AIのハルシネーションを低減する技術として注目されるRAG(Retrieval Augmented Generation:検索拡張生成)。

このRAG(ラグ)という技術を活用することで、特定ドキュメント等から回答を自動生成できます。

企業向けの生成AIツールを提供している企業でも、RAG機能を前面に打ち出す企業も増えているため、目にしたことのある方も多いかもしれません。

本記事では、RAGの概念、動作の仕組み、RAGにおける検索性能の重要さ、RAGの性能を向上させる戦略について説明します。

1回目の今回は、RAGの概念、仕組み、RAGにおいて重要なポイントについて簡単に解説します。

RAGとは?

RAGの概念

RAGは、2020年5月に発表された論文「Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks(知識集約型NLPタスクのための検索拡張生成)」で初めて登場した概念です。
この論文の第一著者であるパトリック・ルイス(Patrick Lewis)博士はMeta社に在籍中にこの論文を執筆し、現在はCohereでLLM(大規模言語モデル)のモデル開発リードを務めています。

RAGは、この論文の中でLLMの持つ課題に対する解決策として提示されました。

論文では、LLMに対する問題定義が明確になされています。

まず、ドメインに特化した知識については限界がある点です。LLMは膨大な一般情報をもとにトレーニングが行われており、一般的な質問に対してはかなり上手に答えることができます。しかし、業界特有の情報など、領域特化の知識については学習できていない場合があり、適切な回答を返せないことがあります。

また、LLMはあらかじめトレーニングした情報をもとに回答するため、その知識は学習当時の情報です。継続的に新しい知識がアップデートされない点も課題として挙げられます。

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
Large pre-trained language models have been shown to store factual knowledge in their parameters, and achieve state-of-the-art results when fine-tuned on downstream NLP tasks. However, their ability to access and precisely manipulate knowledge is still limited, and hence on knowledge-intensive tasks, their performance lags behind task-specific architectures. Additionally, providing provenance for their decisions and updating their world knowledge remain open research problems. Pre-trained models with a differentiable access mechanism to explicit non-parametric memory can overcome this issue, but have so far been only investigated for extractive downstream tasks. We explore a general-purpose fine-tuning recipe for retrieval-augmented generation (RAG) -- models which combine pre-trained parametric and non-parametric memory for language generation. We introduce RAG models where the parametric memory is a pre-trained seq2seq model and the non-parametric memory is a dense vector index of Wikipedia, accessed with a pre-trained neural retriever. We compare two RAG formulations, one which conditions on the same retrieved passages across the whole generated sequence, the other can use different passages per token. We fine-tune and evaluate our models on a wide range of knowledge-intensive NLP tasks and set the state-of-the-art on three open domain QA tasks, outperforming parametric seq2seq models and task-specific retrieve-and-extract architectures. For language generation tasks, we find that RAG models generate more specific, diverse and factual language than a state-of-the-art parametric-only seq2seq baseline.

参考)論文へのリンク



このLLMの問題点に対する代替案は主に2つあります。

1つ目の案は、LLMに対してドメイン特化の情報を追加学習させる方法、つまりファインチューニングです。しかし、このアプローチはコストもかかり、新たな情報に対応させるためには追加学習を繰り返す必要があり、最新情報への迅速な対応が難しいというデメリットがあります。

そして、もう1つの案として提案されたのが、RAGの仕組みです。

LLMが質問に対する回答を生成する際に、回答に必要な情報を外部から検索し、LLMに参考情報として与えることで、追加学習せずともLLMが未学習の情報も含めて回答を生成できるようにします。

この論文では、RAGの実現方法として、パラメータとノンパラメータを組み合わせるアプローチを提案しています。わかりやすく例えるならば、参考図書を持ち込める試験(オープンブック試験)と考えていただければと思います。
オープンブック試験では、既に覚えている内容(=パラメータ)と、参考図書に記載されている情報(=ノンパラメータ)を組み合わせ、解答を作成します。

同じように、RAGも、回答を生成する際に外部のデータベースを参照することで、社内情報や最新情報など、LLMが事前学習していない情報を回答に反映して回答を生成することができるのです。

それでは、RAGがどのような流れでどのように回答を生成するのか、簡単にご紹介します。

RAGの仕組み

1. 検索(Retrieve)

質問を入力すると、外部ナレッジから質問に関連する内容をAIが検索します。
ベクトルデータベースから情報を検索し、質問と関連度の高い情報がLLMへ追加情報として与えるコンテキストとして抽出します。

2. 拡張(Augment)

前段の検索(Retrieve)の段階で検索した情報を、ユーザーが入力した質問に追加します。(=拡張)
外部情報が追加されたコンテキストを、プロンプトテンプレートに入力します。

3. 生成(Generate)

最後に、拡張されたプロンプトがLLMに連携され、外部情報も加味した内容で回答が生成されます。

RAG(検索拡張生成)の仕組み

RAGにおいて重要なこと

上記の検索→拡張→生成のステップを見ていただくと、RAGにおいて、検索(Retriver)の精度が重要であることにお気づきになるのではないでしょうか。

質問に関して適切な答えを外部データベースから見つけることができれば、その後の拡張、生成のステップにうまく繋がり、ユーザーが求める回答を返すことができます。

逆を言えば、最初の検索ステップの検索精度が低い場合、適切でない情報を抽出してしまう可能性があります。そうすると、誤った情報をもとにLLMが回答を生成してしまい、最終的に生成される回答内容が期待と異なってしまう恐れがあります。

企業利用に耐えうるRAGとは

企業が実際の業務で使用するドキュメントは、文章量も多く、内容も複雑で、さらに表や図が入るような文書も珍しくありません。

企業向けのRAGにおいては、複雑な表から情報を特定したり、ページ数の多い文書から質問に関連する記述箇所を特定するなど、Retrieverが解決しなければならない要素がたくさんあります。

"RAGを実装している"というソリューションの中には、単純な文書や簡単な質問に対応できるだけ、というものも存在しますので、注意が必要です。

次回の「■技術解説■ 生成AIのハルシネーションを低減するRAG。図表データまで特定できる"企業向けRAG"とは?(後編)」では、表形式のドキュメントに対してRAG性能を高めるためのAllganizeのアプローチをご紹介します。

関連情報

Allganize | Alli LLM App Market
Alli LLM App Marketは、企業向けの生成AI、LLMアプリを100個以上のテンプレートから選び、即座に業務に活用できるLLMアプリプラットフォームです。「契約書チェック」「クレーム対応メール作成」「特定文書の要約」「社内ドキュメントから自動応答」「新規事業アイディア提案」など、すぐに業務活用できる生成AI、LLMアプリのテンプレートを提供しています。
Allganize|ドキュメントから回答自動生成(Alli LLM App Market)
社内情報・特定情報からAIが回答を自動生成!独自のRAG技術により、表形式のドキュメントも高精度で回答自動生成。大量の情報の中から求める回答を総合的に簡潔に要約した回答を生成AI・LLMで生成し、情報源も合わせて提示します。
■技術解説■ RAGを活用した生成AIの回答生成精度に直結する「Retriever」。Retrieverの仕組みと最適化戦略とは?
生成AI・LLMを活用し、企業の社内情報や特定情報から回答を生成するにあたって、LLMのハルシネーションを低減するRAG(Retrieval Augmented Generation:検索拡張生成)への関心が高まっています。最近では、多数のRAGソリューションの中から自社に適したものを探す企業が増えています。 RAGの仕組みや企業向けのRAGにつきましては、以前の当ブログの記事でもご紹介しておりますので、よろしければ過去記事(技術解説:企業向けRAGとは?)もご覧ください。 ■技術解説■ 生成AIのハルシネーションを低減するRAG。図表データまで特定できる”企業向けRAG”とは?(前編)生成AIのハルシネーションを低減する技術として注目されるRAG(Retrieval Augmented Generation:検索拡張生成)。 このRAGという技術を活用することで、特定ドキュメント等から回答を自動生成できます。 本記事では、RAGの概念、動作の仕組み、RAGにおける検索性能の重要さ、RAGの性能を向上させる戦略について説明します。 1回目の今回は、RAGの概念や仕組みや、RAGにお