導入
検索拡張生成(RAG)パイプラインは、AIシステムがカスタムデータとどのように相互作用するかを改善していますが、ここで焦点を当てる2つの重要なコンポーネント:メモリとハイブリッド検索。この記事では、これらの強力な機能を統合することで、RAGシステムを単純な質問ツールからコンテキスト認識のインテリジェントな会話エージェントに変えることができる方法を探ります。
RAGのメモリにより、システムは会話履歴を維持および活用し、より首尾一貫したコンテキストに関連する相互作用を作成できます。一方、ハイブリッド検索は、ベクトル検索のセマンティック理解とキーワードベースのアプローチの精度と組み合わせて、RAGパイプラインの検索精度を大幅に向上させます。
この記事では、llamaindexを使用して、qdrantを使用してベクターストアとして、Googleのジェミニを大規模な言語モデルとして使用してメモリとハイブリッド検索の両方を実装します。
学習目標
- RAGシステムにおけるメモリの役割の実装理解と、文脈的に正確な応答の生成への影響を取得します。
- GoogleのGemini LLMおよびQdrant Fast EmbeddingsをLlamainDexフレームワーク内に統合することを学ぶことができます。これは、OpenAIがLlamainDexで使用されるデフォルトのLLMおよび埋め込みモデルであるため有用です。
- QDrant Vector Storeを使用してハイブリッド検索技術の実装を開発し、ベクトルとキーワード検索を組み合わせて、RAGアプリケーションの検索精度を強化します。
- QDRANTの機能をベクターストアとして調べて、組み込みのハイブリッド検索機能と高速埋め込み機能に焦点を当てています。
この記事は、データサイエンスブログソンの一部として公開されました。
目次
- QDRANTでのハイブリッド検索
- LlamainDexを使用したメモリとハイブリッド検索
- ステップ1:インストール要件
- ステップ2:LLMと埋め込みモデルを定義します
- ステップ3:データの読み込み
- ステップ4:ハイブリッド検索でQDRANTをセットアップします
- ステップ5:ドキュメントのインデックス付け
- ステップ6:インデックスクエリエンジンのクエリ
- ステップ7:メモリを定義します
- ステップ8:メモリを使用したチャットエンジンの作成
- ステップ9:メモリのテスト
- よくある質問
QDRANTでのハイブリッド検索
大規模なeコマースサイトのチャットボットを構築していると想像してください。ユーザーは、「最新のiPhoneモデルを見せて」と尋ねます。従来のベクトル検索では、意味的に同様の結果が得られる場合がありますが、正確な一致を見逃す可能性があります。一方、キーワード検索は剛性が高すぎる可能性があります。ハイブリッド検索はあなたに両方の最高の世界を提供します:
- ベクトル検索は、セマンティックの意味とコンテキストをキャプチャします
- キーワード検索により、特定の用語の精度が保証されます
QDRANTは、この記事で選択したベクトルストアであり、正当な理由です。
- QDRANTは、定義されたときにハイブリッドパラメーターを有効にするだけで、ハイブリッド検索の実装を簡単にします。
- モデルがONNX形式でロードされる場所を使用して、最適化された埋め込みモデルが付属しています。
- QDRANTの実装は、機密情報の保護を優先し、汎用性の高い展開オプションを提供し、応答時間を最小限に抑え、運用費を削減します。
LlamainDexを使用したメモリとハイブリッド検索
LlamainDexフレームワーク内でのメモリとハイブリッド検索の実際の実装に飛び込み、これらの機能が検索拡張生成(RAG)システムの機能をどのように強化するかを示します。これらのコンポーネントを統合することにより、履歴データと高度な検索手法の両方を効果的に利用する、よりインテリジェントでコンテキストを意識した会話エージェントを作成できます。
ステップ1:インストール要件
さて、これを段階的に分解しましょう。 QDRANTからファストメイド、GoogleのGeminiモデル、QDRANT Vector Store、LlamainDex、QDRANT Vector Storeを使用します。これらのライブラリがインストールされていることを確認してください。
!ピップインストールllama-index llama-index-llms-gemini lalama-index-vector-stores-qdrant astembed !ピップインストールllama-index-embeddings-fastembed
ステップ2:LLMと埋め込みモデルを定義します
まず、依存関係をインポートして、APIキーを設定しましょう。
OSをインポートします GetPass Import getPassから llama_index.llms.geminiインポートGeminiから llama_index.embeddings.fastembed Import fastembededdingから google_api_key = getPass( "gemini apiを入力:") os.environ ["google_api_key"] = google_api_key llm = gemini()#gemini 1.5フラッシュ embed_model = fastembedembeding()
次に、サンプルユーザークエリでそのLLMを実行することにより、APIが現在定義されているかどうかをテストしましょう。
llm_response = llm.complete( "1つのピースがいつ始まったのか?")。テキスト print(llm_response)
Llamaindexでは、OpenAIはデフォルトのLLMおよび埋め込みモデルであり、LlamainDex Coreから設定を定義する必要があることをオーバーライドします。ここでは、LLMと埋め込みモデルの両方をオーバーライドする必要があります。
llama_index.coreインポート設定から settings.llm = llm settings.embed_model = embed_model
ステップ3:データの読み込み
この例では、データフォルダーにPDFがあると仮定しましょう。LlamainDexのSimpleDirectoryリーダーを使用してデータフォルダーをロードできます。
llama_index.coreからImport SimpledirectoryReaderから documents = simpledirectoryreader( "./ data/")。load_data()
ステップ4:ハイブリッド検索でQDRANTをセットアップします
QDRANTVectorStoreインスタンスを定義し、この例ではメモリに設定する必要があります。また、QDRANTクライアントをクラウドサービスまたはLocalHostで定義することもできますが、メモリの記事では、コレクション名の定義を行う必要があります。
これにより、qdrantのハイブリッド検索機能を使用できるため、enable_hybrid = trueを確認してください。データフォルダーには、エージェントに関する研究論文にPDFが含まれているため、コレクション名は「Paper」です。
llama_index.coreからvectorstoreindex、storagecontextからインポート llama_index.vector_stores.qdrantインポートqdrantvectorstoreから qdrant_clientをインポートします client = qdrant_client.qdrantclient( location = ":memory:"、 )) vector_store = qdrantvectorStore( collection_name = "Paper"、 クライアント=クライアント、 enable_hybrid = true、#ハイブリッド検索が行われます batch_size = 20、 ))
ステップ5:ドキュメントのインデックス付け
ラグシステムにメモリとハイブリッド検索を実装することで、よりインテリジェントでコンテキストを作成しました。
Storage_context = storagecontext.from_defaults(vector_store = vector_store) index = vectorStoreIndex.from_documents( 文書、 Storage_Context = store_context、 ))
ステップ6:インデックスクエリエンジンのクエリ
インデックス作成は、LlamainDexのレトリバーとジェネレーターチェーンを定義している部分です。ドキュメントコレクションで各ドキュメントを処理し、各ドキュメントのコンテンツの埋め込みを生成します。次に、これらの埋め込みをQDRANTベクターストアに保管します。効率的な検索を可能にするインデックス構造を作成します。クエリエンジンを定義しながら、ハイブリッドでクエリモードを必ず確認してください。
query_engine = index.as_query_engine( vector_store_query_mode = "hybrid" )) Response1 = query_engine.query( "人生の意味は何ですか?") print(Response1) response2 = query_engine.query( "2文以内の要約を与える")) print(Response2)
上記のクエリエンジンでは、コンテキスト内にある2つのクエリを実行し、もう1つはコンテキストの外側を実行します。これが私たちが得た出力です:
出力 #応答-1 提供されたテキストは、自律エージェントでの計画のための大規模な言語モデル(LLM)の使用に焦点を当てています。 それは人生の意味について議論していません。 #応答-2 このドキュメントでは、複雑なタスクを解決するためのエージェントとしての大規模な言語モデル(LLM)の使用を調査します。 2つの主なアプローチに焦点を当てています。 分解ファーストメソッド、 実行前にタスクがサブタスクに分解される場合、および フィードバックに基づいて分解を動的に調整するインターリーブ分解方法。
ステップ7:メモリを定義します
チャットボットはうまく機能し、改善された応答を提供していますが、複数の相互作用にわたってコンテキストの認識が不足しています。これは、メモリが写真に入る場所です。
llama_index.core.memoryからchatmemorybufferをインポートします メモリ= chatmemorybuffer.from_defaults(token_limit = 3000)
ステップ8:メモリを使用したチャットエンジンの作成
ハイブリッド検索とメモリの両方を使用するチャットエンジンを作成します。 lamaindexでは、外部データまたは外部データがある場合、ragベースのアプリケーションの場合は、チャットモードがコンテキストであることを確認します。
chat_engine = index.as_chat_engine( chat_mode = "context"、 メモリ=メモリ、 System_prompt =( 「あなたはユーザーの質問に答えるAIアシスタントです」 )、、 ))
ステップ9:メモリのテスト
いくつかのクエリを実行して、メモリが期待どおりに機能しているかどうかを確認しましょう。
iPython.displayからインポートマークダウン、ディスプレイ check1 = chat_engine.chat( "2文以内の要約を与える") check2 = chat_engine.chat( "要約を続け、前の2文にもう1つの文を追加する")) check3 = chat_engine.chat( "上記の要約を詩にする"))
結論
メモリとハイブリッド検索を検索拡張生成(RAG)システムに統合することで、能力が大幅に向上する方法を調査しました。 QDRANTをベクトルストアとしてQDRANTと大規模な言語モデルとしてGoogleのGeminiを使用することにより、ハイブリッド検索がベクターとキーワードベースの検索の強度を組み合わせてより正確な結果を提供する方法を実証しました。メモリを追加すると、コンテキストの理解がさらに向上し、チャットボットが複数の相互作用にわたってコヒーレントな応答を提供できます。一緒に、これらの機能は、よりインテリジェントでコンテキスト認識システムを作成し、複雑なAIアプリケーションに対してラグパイプラインをより効果的にします。
キーテイクアウト
- RAGパイプラインでのメモリコンポーネントの実装により、チャットボットのコンテキスト認識と、複数のインタラクション全体で一貫した会話を維持する能力が大幅に向上します。
- QDRANTを使用したハイブリッド検索のベクトルストアとしての統合。ベクターとキーワード検索の両方の強度を組み合わせて、幻覚のリスクを最小限に抑えるRAGシステムの検索精度と関連性を改善します。免責事項、幻覚を完全に除去するわけではありません。むしろリスクを軽減します。
- 会話履歴を効率的に管理するためのLlamaindexのChatMemoryBufferの利用、コンテキストの保持と計算リソースのバランスをとる構成可能なトークン制限。
- LlamainDexフレームワーク内にLLMおよび埋め込みプロバイダーとしてGoogleのGeminiモデルを組み込むと、さまざまなAIモデルと埋め込み技術に対応するLlamainDexの柔軟性が示されています。
よくある質問
Q 1。ハイブリッド検索とは何ですか?なぜそれがぼろきれで重要なのですか?A.ハイブリッド検索は、ベクトル検索のセマンティック理解のための検索と精度のキーワード検索を組み合わせます。これにより、システムがコンテキストと正確な用語の両方を考慮し、特に複雑なデータセットでより良い検索結果につながることにより、結果の精度が向上します。
Q2。なぜragでハイブリッド検索にqdrantを使用するのですか?A. QDRANTは、箱から出してハイブリッド検索をサポートし、高速埋め込みに最適化されており、スケーラブルです。これにより、RAGシステムでベクターとキーワードベースの両方の検索を実装し、大規模なパフォーマンスを確保するための信頼できる選択肢になります。
Q3。メモリはRAGシステムをどのように改善しますか?A.ラグシステムのメモリにより、会話履歴の保持が可能になり、チャットボットが相互作用全体でよりコヒーレントでコンテキスト的に正確な応答を提供し、ユーザーエクスペリエンスを大幅に向上させることができます。
Q4。RAGアプリケーションにクラウドベースのAPIの代わりにローカルモデルを使用できますか?A.はい、OpenAIなどのクラウドベースのAPIを使用する代わりに、ローカルLLM(OllamaやHuggingfaceなど)を実行できます。これにより、外部サーバーにアップロードせずにデータを完全に制御することができます。これは、プライバシーに敏感なアプリケーションの一般的な関心事です。
この記事に示されているメディアは、Analytics Vidhyaが所有しておらず、著者の裁量で使用されています。
以上がllamaindexを使用したragでのメモリとハイブリッド検索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

2008年以来、私は共有ライドバンを擁護しました。これは、「Robotjitney」と呼ばれる「後に「Vansit」と呼ばれ、都市交通の未来として擁護しました。 私はこれらの車両を21世紀の次世代トランジットソリューション、スルパとして予見します

チェックアウトエクスペリエンスに革命をもたらす Sam's Clubの革新的な「Just Go」システムは、既存のAIを搭載した「スキャン&ゴー」テクノロジーに基づいて構築され、ショッピング旅行中にメンバーがサムズクラブアプリを介して購入をスキャンできるようになりました。

GTC 2025でのNvidiaの強化された予測可能性と新製品のラインナップ AIインフラストラクチャの重要なプレーヤーであるNvidiaは、クライアントの予測可能性の向上に焦点を当てています。 これには、一貫した製品配信、パフォーマンスの期待を満たすこと、および

GoogleのGemma 2:強力で効率的な言語モデル 効率とパフォーマンスで祝われるGoogleのGemmaファミリーは、Gemma 2の到着とともに拡大しました。この最新リリースは2つのモデルで構成されています。

データエピソードを率いるこの主要なのは、主要なデータサイエンティスト、天体物理学者、TEDXスピーカーであるカークボーン博士を特徴としています。 ビッグデータ、AI、および機械学習の有名な専門家であるボルネ博士は、現在の状態と将来のトラジェについて非常に貴重な洞察を提供しています

このスピーチには、人工知能が人々の運動をサポートするのに非常に優れている理由を示すエンジニアリングに関するバックグラウンド情報には、非常に洞察に満ちた視点がいくつかありました。 各寄稿者の観点からコアアイデアを概説し、スポーツにおける人工知能の適用の調査の重要な部分である3つの設計側面を実証します。 エッジデバイスと生の個人データ 人工知能に関するこのアイデアには、実際には2つのコンポーネントが含まれています。1つは大きな言語モデルを配置する場所に関連しており、もう1つは人間の言語と、リアルタイムで測定したときにバイタルサインが「表現」する言語の違いに関連しています。 アレクサンダー・アミニはランニングとテニスについて多くのことを知っていますが、彼はまだ

Caterpillarの最高情報責任者であり、その上級副社長であるJamie Engstromは、28か国の2,200人以上のITプロフェッショナルのグローバルチームを率いています。 彼女の現在の役割で4年半を含むCaterpillarで26年間、Engst

Google Photosの新しいUltra HDRツール:クイックガイド Google Photosの新しいUltra HDRツールで写真を強化し、標準画像を活気に満ちた高ダイナミックレンジの傑作に変換します。ソーシャルメディアに最適なこのツールは、あらゆる写真の影響を高め、


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!
