こんにちは、スクーティー代表のかけやと申します。
弊社は生成AIを強みとするベトナムオフショア開発・ラボ型開発や、生成AIコンサルティングなどのサービスを提供しており、最近はありがたいことに生成AIと連携したシステム開発のご依頼を数多く頂いています。 Anthropicは、Retrieval-Augmented Generation (RAG) における情報検索の精度を向上させる新しい手法「Contextual Retrieval」を発表しました。 Contextual Retrievalは、従来のキーワードマッチングや意味検索に加えて、ユーザーのクエリやタスクの文脈を深く理解することで、より正確で適切な情報を提供します。特に、プログラミングや技術的な質問など、文脈理解が重要なタスクにおいて効果を発揮します。 この記事では、Contextual Retrievalの概要をご紹介します。
本題に入る前に、生成AIとは何か?ChatGPTとは何か?を確認しておきたい方は、下記の記事を御覧ください。
Contextual Retrievalとは
Contextual Retrievalとは、RAGシステムにおいて、知識ベースから情報を取得する際に、取得する情報の断片(チャンク)に文脈情報を付加することで、RAGの検索精度を向上させる手法です。
RAGでは、ドキュメントを小さなチャンクに分割して埋め込みを作成しますが、チャンク単体では十分な文脈情報が不足している場合があり、検索精度が低下する原因となっていました。 Contextual Retrievalは、埋め込みを作成する前に、チャンクに文脈情報を付加することで、この問題に対処します。具体的には、LLM(大規模言語モデル)を使用して、各チャンクの内容を説明する簡潔な文脈情報を生成し、チャンクの先頭に付加します。 Contextual Retrievalの動作メカニズム
Contextual Retrievalは以下の処理プロセスから構成されます。
従来のRAGにおけるチャンク分割とContextual Retrievalを用いたチャンク分割の例
従来のRAGにおけるチャンク分割:
ドキュメント全体を固定長の文字数で分割します。
Contextual Retrievalを用いたチャンク分割: ドキュメント全体を固定長の文字数で分割し、各チャンクに文脈情報を付加します。
このように、Contextual Retrievalを用いることで、各チャンクがドキュメント全体のどの部分を指しているのか、また、そのチャンクの前後関係がより明確になり、検索精度が向上という仕組みです。 従来のRAGとの違い
従来のRAGでは、チャンクの埋め込みはチャンクのテキスト情報のみから作成されます。一方、Contextual Retrievalでは、チャンクのテキスト情報に加えて、ドキュメント全体の文脈情報も埋め込みに反映されます。これにより、検索クエリに対して、より文脈に沿った適切なチャンクが取得できるようになります。
Contextual Retrievalにおける情報検索の仕組み
Contextual Retrievalでは、ユーザーが入力したクエリに対して、関連性の高い情報を効率的に取得するために、以下の手順で情報検索を行います。
Contextual EmbeddingsとContextual BM25
Contextual Retrievalでは、文脈情報を利用した情報検索のために、Contextual EmbeddingsとContextual BM25という2つの手法を組み合わせることができます。
これらの手法を組み合わせることで、意味的な類似性とキーワードの一致度を総合的に判断し、より精度の高い検索結果を得ることができます。 Contextual EmbeddingsとContextual BM25の連携
Contextual EmbeddingsとContextual BM25は、大まかに以下のようなぷろセスで
BM25とTF-IDF
BM25は、TF-IDF (Term Frequency-Inverse Document Frequency) を拡張した手法です。TF-IDFは、ドキュメントにおける単語の重要度を、その単語がドキュメントに出現する頻度 (Term Frequency) と、他のドキュメントに出現する頻度の逆数 (Inverse Document Frequency) を用いて計算します。BM25は、TF-IDFに加えて、ドキュメントの長さやクエリの単語数などの要素も考慮することで、より精度の高いスコア付けを実現します。
ベンチマーク結果
Anthropicは、コードベース、フィクション、ArXiv論文、科学論文など、さまざまなデータセットに対してContextual Retrievalのパフォーマンスを評価しました。評価指標として、上位20チャンクに関連するドキュメントが含まれているかどうかを測定するrecall@20を用いました。
その結果、Contextual Retrievalは従来のRAGと比較して、検索精度が向上することが示されました。
Contextual Retrievalの実装例プロンプト設計の例
<document>
このプロンプトは、ドキュメント全体の内容とチャンクの内容をLLMに提示し、チャンクがドキュメント全体のどの部分を指しているかを簡潔に説明するように指示しています。
例えば、ドキュメント全体が「ある会社の年間業績報告書」で、チャンクが「第2四半期の売上高は前年同期比で10%増加しました」という内容だった場合、LLMは「このチャンクは、会社の年間業績報告書の第2四半期の業績に関する部分を指しています。」といった文脈情報を生成するということです。 Contextual Retrievalの実装例
以下は、PythonとLangChainを用いたContextual Retrievalのかなり単純化した実装例です。詳しくはAnthropicが公開している実装例をご覧ください。
from langchain.embeddings.openai import OpenAIEmbeddings
コードの説明
Contextual Retrievalの応用事例と今後の展望
Contextual Retrievalは、従来のRAGの抱える問題点を解決する有効な手法ですが、いくつかの課題も存在します。
しかしContextual Retrievalは、まだ比較的新しい技術ですが、すでに多くの企業や研究機関で注目されています。例えば、Googleは、検索エンジンのランキングアルゴリズムにContextual Retrievalの技術を導入することを検討しています。また、Microsoftは、Bing検索エンジンにContextual Retrievalの技術を導入しています。 今後、Contextual Retrievalは、AIチャットボット、質問応答システム、機械翻訳など、さまざまな分野で応用されていくと期待されています。また、LLMの進化に伴い、より高度な文脈理解が可能になることで、Contextual Retrievalの精度もさらに向上していくでしょう。 生成AIを使用したシステム開発のご要望はこちらから
最後までお読みいただき、ありがとうございます!
弊社では、LLM(大規模言語モデル)やアーキテクチャの選定、技術検証、生成AIを使用したプロトタイピングやシステム開発、お客様社内での啓蒙活動等を対応させていただく「生成AIコンサルティング」サービスを提供しています。 また、業務利用できるChatGPTのような仕組みである「セキュアGAI」も提供しています。 もちろん、Difyの構築のお手伝いも可能です。 もし本記事で生成AIに興味が湧き、生成AIとのシステム連携などのニーズがございましたら、ぜひ下記フォームからお気軽にお問い合わせください! その他の生成AI関連サービス
|
ベトナムオフショア開発/ラボ型開発
生成AIコンサルティングサービス
安全な環境でChatGPT「セキュアGAI for enterprise」
AIが接客「バーチャルアシスタント」
オフショア開発や生成AIに関する資料はこちらから無料でDLいただけます
アーカイブ
10月 2024
カテゴリー
すべて
最新記事の購読 |
リンクプロダクトブログ株式会社スクーティー生成AIに強みを持つベトナムのオフショア開発サービスを提供しています。優秀なベトナム人エンジニアでチームを組み、安価で高速な開発体制を作りましょう。
|
9/26/2024