「LLMにおけるリトリーバル・オーグメンテッド・ジェネレーションについての深い探求」
「LLMでのリテリバル・オーグメンテッド・ジェネレーションに関する深い探究」
アナリストであり、大規模な言語モデルにアクセスできると想像してください。それはあなたのワークフローにもたらす可能性に興奮しています。しかし、最新の株価や現在のインフレ率について尋ねたとき、次のような返答が返ってきます。
「申し訳ありませんが、リアルタイムデータまたは基準日以降のデータを提供することはできません。私の最後のトレーニングデータは2022年1月までのものです。」
大規模な言語モデルは、その言語の能力に優れていますが、『現在』を把握する能力には欠けています。そして、高速な世界では、『現在』こそがすべてです。
研究によれば、大規模な事前学習された言語モデル(LLM)は事実知識の蓄積場所でもあります。
彼らは非常に多くのデータでトレーニングされており、数々の事実や数字も吸収しています。微調整されると、さまざまなNLPタスクで驚くほどの結果を出すことができます。
しかし、ここでの問題は次のようなものです:この蓄積された知識にアクセスし、操作する能力は、時に完璧ではありません。特に知識集約型の作業の場合、これらのモデルはより専門化されたアーキテクチャに遅れることがあります。まるで世界中の本が揃った図書館を持っていても、何を必要とするかを見つけるための目録がないようなものです。
OpenAIのChatGPTがブラウジングのアップグレードを受ける
OpenAIの最近の発表によると、ChatGPTのブラウジング機能はRetrieval-Augmented Generation(RAG)の方向性への大きな進歩です。ChatGPTは現在、インターネットを検索して現在の正確な情報を提供できるようになり、外部の情報源からデータを動的に引っ張ってくるRAGのアプローチを反映しています。
ChatGPT can now browse the internet to provide you with current and authoritative information, complete with direct links to sources. It is no longer limited to data before September 2021. pic.twitter.com/pyj8a9HWkB
— OpenAI (@OpenAI) September 27, 2023
現在はPlusおよびEnterpriseユーザー向けに利用可能であり、OpenAIは近くすべてのユーザーにこの機能を提供する予定です。ユーザーはGPT-4オプションの下で「Bingと一緒にブラウズ」を選択することでこの機能を有効にすることができます。
Chatgpt New ’Bing’ Browsing Feature
プロンプトエンジニアリングは有効ですが不十分です
プロンプトはLLMの知識への入り口となります。モデルを導く役割を果たし、応答のための方向性を提供します。ただし、効果的なプロンプトを作成することは、LLMから望むものを得るための完全な解決策ではありません。それでも、プロンプトを書く際に考慮すべき良い方法をいくつか説明します:
- 明確さ:明確に定義されたプロンプトは曖昧さを排除します。ユーザーの意図をモデルが理解できるようにするため、シンプルであるべきです。この明確さは、より一貫性のある関連性のある応答につながることがしばしばあります。
- 文脈:特に長い入力の場合、指示の配置は出力に影響を与えることがあります。例えば、長いプロンプトの最後に指示を移動すると、より良い結果が得られることがしばしばあります。
- 指示の精度:質問の力は、しばしば「誰、何、どこ、いつ、なぜ、どのように」という枠組みを通じて伝えられ、モデルをより焦点の絞られた応答に導くことができます。また、出力の形式やサイズを指定することで、モデルの出力をさらに微調整することができます。
- 不確実性の処理:モデルに不確かな場合の応答方法を指示することは重要です。例えば、不確かな場合に「分かりません」と返答するよう指示することで、不正確なまたは「幻想的な」応答を生成することを防ぐことができます。
- ステップバイステップの思考:複雑な指示の場合、モデルに体系的に考えるように指示したり、タスクを小さなサブタスクに分割することで、より包括的かつ正確な出力が得られる場合があります。
ChatGPTを導くプロンプトの重要性に関連して、詳細な記事はUnite.aiで見つけることができます。
生成型AIモデルの課題
プロンプトエンジニアリングは、モデルへの指示を微調整してパフォーマンスを向上させる方法です。それはGenerative AIアプリケーションの正確性を向上させる非常に費用対効果の高い方法であり、わずかなコードの調整だけを必要とします。プロンプトエンジニアリングは出力を大幅に向上させることができますが、大規模な言語モデル(LLM)の固有の制限を理解することが重要です。主な課題は「幻想」と「知識の切れ端」です。
- 幻覚:これは、モデルが自信を持って間違ったまたはでっち上げの回答を返す場合を指します。ただし、高度なLLMには、そのような出力を認識して回避するための内蔵メカニズムがあります。
LLMにおける幻覚
- 知識の切り捨て:各LLMモデルには、トレーニング終了日があり、それ以降のイベントや進展を知りません。この制限により、モデルの知識は最後のトレーニング日の時点で停止します。たとえば、2022年までトレーニングされたモデルは、2023年の出来事を知りません。
LLMにおける知識の切り捨て
リトリーバル強化生成(RAG)は、これらの課題に対する解決策を提供します。プロプライエタリやドメイン固有のデータへのアクセスを提供することで、モデルが幻覚の問題を和らげることができます。知識の切り捨てに対しては、RAGはモデルのトレーニング日よりも新しい情報にアクセスできるため、出力が最新のものになります。
RAGはまた、LLMがリアルタイムでさまざまな外部ソースからデータを取得することも可能にします。これには、知識ベース、データベース、あるいはインターネットの広大な範囲などが含まれます。
リトリーバル強化生成の概要
リトリーバル強化生成(RAG)は、特定の技術ではなく、大規模言語モデルがトレーニングされていないデータを活用するためのフレームワークです。RAGを実装するための複数の方法があり、最適な方法は、具体的なタスクとデータの性質に依存します。
RAGフレームワークは次のように構成されています:
プロンプト入力
プロセスは、ユーザーの入力またはプロンプトから始まります。これは、特定の情報を求める質問または声明である場合があります。
外部ソースからのリトリーバル
モデルは、トレーニングに基づいて直接応答を生成するのではなく、リトリーバー部分のヘルプを借りて、外部データソースを検索します。これらのソースには、知識ベース、データベース、文書ストア、インターネットにアクセス可能なデータなどが含まれます。
リトリーバルの理解
リトリーバルは検索操作を反映したものです。ユーザーの入力に応じて最も関連性の高い情報を抽出することに関連しています。このプロセスは次の2つのステージに分けることができます:
- インデックス作成:RAGの全体的なプロセスの中で、もっとも困難な部分は、ナレッジベースのインデックス作成です。インデックス作成のプロセスは、大まかに2つのフェーズに分けることができます:ロードおよびスプリッティング。LangChainなどのツールでは、これらのプロセスは「ローダー」と「スプリッター」と呼ばれます。ローダーはウェブページやPDFなど、さまざまなソースからコンテンツを取得します。取得した後、スプリッターはこのコンテンツを適切な大きさに切り分け、埋め込みや検索に最適化します。
- 検索クエリ:これは、検索語に基づいて最も関連性の高い知識フラグメントを抽出する作業です。
リトリーバルには、シンプルなテキストマッチングからGoogleなどの検索エンジンを使用するまで、さまざまなアプローチがありますが、現代のリトリーバル強化生成(RAG)システムは、セマンティックサーチに依存しています。セマンティックサーチの核心には、エンベッディングの概念があります。
エンベッディングは、大規模言語モデル(LLM)が言語を理解する方法において中心的な役割を果たします。人間が単語の意味をどのように理解するかを説明しようとすると、しばしば内在的な理解に戻って説明が回ります。認知の構造の深部において、私たちは「子供」と「子ども」が同義であること、また「赤」と「緑」がどちらも色を表すことを認識しています。
プロンプトの拡張
取得した情報は、元のプロンプトと組み合わされ、拡張されたプロンプトまたはオージュメントされたプロンプトを作成します。この拡張されたプロンプトは、データがドメイン固有である場合や、モデルの元のトレーニングコーパスに含まれていない場合に特に有用な追加の文脈情報をモデルに提供します。
補完の生成
拡張されたプロンプトを手にして、モデルは補完または応答を生成します。この応答は、モデルのトレーニングに基づくだけでなく、リアルタイムのデータの取得によっても情報を提供されます。
再検索増強生成
最初のRAG LLMのアーキテクチャ
メタによって2020年に発表された研究論文「知識集約型NLPタスク向けの再検索増強生成」 によれば、再検索増強生成モデルは、外部の再検索または検索機構を用いて、従来の生成プロセスを拡張します。これにより、モデルはデータの巨大なコーパスから関連情報を引き出し、文脈に即した正確な応答を生成する能力を向上させます。
以下はその動作方法です:
- パラメトリックメモリ: これは通常の言語モデルで、seq2seqモデルのようなものです。膨大なデータでトレーニングされ、多くの知識を持っています。
- ノンパラメトリックメモリ: これは検索エンジンのようなものです。例えばWikipediaのような大量のデータの密ベクトルインデックスであり、ニューラルリトリーバーを使用してアクセスできます。
これらの2つを組み合わせることで、正確なモデルを作成します。RAGモデルはまず、非パラメトリックメモリから関連情報を取得し、その後パラメトリックな知識を使って一貫した応答を返します。
メタによる元のRAGモデル
1. 2ステッププロセス:
RAG LLMは2ステッププロセスで動作します:
- 再検索: モデルはまず、大規模なデータセットから関連するドキュメントやパッセージを検索します。これは、埋め込みを使用してクエリとドキュメントの両方を表現する密な検索メカニズムを使用して行われます。埋め込みは類似性スコアを計算するために使用され、上位ランクのドキュメントが取得されます。
- 生成: 上位kの関連ドキュメントを手に入れたら、それらは初期クエリとともにシーケンスツーシーケンスジェネレータに導かれます。このジェネレータは最終的な出力を形成し、クエリと取得されたドキュメントの両方から文脈を引き出します。
2. 密な検索:
従来の検索システムは、しばしばTF-IDFのような疎な表現に依存しています。しかし、RAG LLMでは、クエリとドキュメントの両方が連続ベクトル空間に埋め込まれる密な表現が使用されます。これにより、キーワードマッチング以上の意味的な関係の捉えられた、より微妙な類似性比較が可能となります。
3. シーケンスツーシーケンス生成:
取得されたドキュメントは、生成モデルにとって拡張された文脈となります。このモデルは、Transformerなどのアーキテクチャに基づくことがよくあり、最終的な出力を生成し、それが一貫して文脈に即したものであることを確認します。
ドキュメント検索
ドキュメントのインデックス作成と検索
効率的な情報検索のために、特に大量のドキュメントからの検索には、データは通常、ベクトルデータベースに格納されます。各データまたはドキュメントは、内容の意味的な本質を捕捉した埋め込みベクトルに基づいてインデックス化されます。効率的なインデックス化により、入力プロンプトに基づいた関連情報の素早い検索が可能となります。
ベクトルデータベース
出典: Redis
ベクトルデータベース、時にはベクトルストレージとも呼ばれるものは、ベクトルデータの格納と検索に適したデータベースです。AIとコンピュータサイエンスの領域では、ベクトルは、多次元の空間内のポイントを象徴する数値のリストです。伝統的なデータベースとは異なり、ベクトルデータベースは、AIモデルの埋め込みなど、ベクトル形式に自然にフィットするデータを管理するのに適しています。
Annoy、Faiss(メタ)、Milvus、およびPineconeなどの注目すべきベクトルデータベースがあります。これらのデータベースは、レコメンデーションシステムから画像検索までのタスクにおいて重要であり、AWSなどのプラットフォームでは、Amazon OpenSearch ServiceやAmazon RDS for PostgreSQLなど、ベクトルデータベースのニーズに合わせたサービスも提供されています。これらのサービスは、特定のユースケースに最適化されており、効率的なインデックス作成とクエリ処理が可能です。
関連性に基づくチャンキング
多くの文書が広範囲にわたる可能性があるため、よく知られている「チャンキング」という手法がよく使用されます。これには、大きな文書を小さな意味的に統合されたチャンクに分割するということが含まれています。これらのチャンクはインデックス化され、必要に応じて取り出されます。これにより、文書の最も関連性の高い部分が迅速な拡張に使用されることが保証されます。
コンテキストウィンドウの考慮事項
すべてのLLMはコンテキストウィンドウ内で操作されます。これは、一度に考慮できる情報の最大量を示します。外部データソースがこのウィンドウを超える情報を提供した場合、その情報はモデルのコンテキストウィンドウに収まるように小さなチャンクに分割される必要があります。
リトリーバル-オーグメンテッド-ジェネレーションの利点
- 向上した精度: 外部データソースを活用することで、RAG LLMはトレーニングデータだけでなく検索コーパス内で使用可能な最も関連性の高い最新情報に基づいて応答を生成できます。
- 知識のギャップの克服: RAGは、LLMの固有の知識の制約、モデルのトレーニングのカットオフによるものやトレーニングコーパスでのドメイン特化データの不足に効果的に対処します。
- 多様性: RAGはさまざまな外部データソースと統合できます。組織内の専用データベースから一般公開されたインターネットデータまで対応できるため、さまざまな応用や産業に適応することができます。
- 幻覚の軽減: LLMには「幻覚」と呼ばれる事実に基づかない情報や創作情報の生成の可能性があります。リアルタイムのデータコンテキストを提供することで、RAGはそのような出力の可能性を大幅に減らすことができます。
- スケーラビリティ: RAG LLMの主な利点の一つは、スケーラビリティです。検索と生成のプロセスを分離することで、モデルは巨大なデータセットを効率的に処理できるため、データが豊富な現実世界の応用に適しています。
課題と考慮事項
- 計算オーバーヘッド: 二段階のプロセスは、特に大規模なデータセットを扱う場合に計算量が増える場合があります。
- データ依存性: 取得した文書の品質は、生成の品質に直接影響します。したがって、包括的で適切に整理された検索コーパスを備えていることが重要です。
結論
リトリーバル-オーグメンテッド-ジェネレーションは、知識集約的なタスクに対する堅牢なソリューションを提供することで、情報に基づき文脈に即した出力を保証します。
RAGの真の可能性は、現実世界のさまざまな応用にあります。タイムリーかつ正確な情報が重要となる医療のようなセクターでは、RAGは豊富な医学文献から洞察を抽出し生成する能力を提供します。市場が分単位で進化する金融業界では、RAGはリアルタイムのデータに基づいた洞察を提供し、情報を基に適切な意思決定を支援します。さらに、学術研究や研究者は、RAGを活用して膨大な情報リポジトリをスキャンし、文献レビューやデータ分析を効率化することができます。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- グーグルシートでChatGPTを利用する方法
- モデルマージングとは、複数のモデルを統合して1つのモデルにすることを指しますこのプロセスでは、異なるモデルを組み合わせることにより、新しいモデルを作成することができますモデルマージングにより、異なる特徴やスキルを持つモデルを統合し、より多様な表現を可能にすることができますまた、モデルマージングは、異なるデザインやスタイルのモデルを結びつけるためにも使用されますモデルマージングは、ファッション業界や美容業界でよく使用される技術であり、新しいトレンドやスタイルの創造に役立ちます
- 「静止画や無音ビデオからオーディオを取得する」
- 「400ポンドのNYPDロボットがタイムズスクエアの地下鉄駅で試用される」
- 「長期のCOVID検査への研究者の前進」
- 「インフレが米国のエンジニアの給与に影響を与える」
- 新たなGoogle.orgの助成金により、30万人の学生がロボット技術とAIに触れることができます