目次
導入
学習目標
目次
QDRANTでのハイブリッド検索
LlamainDexを使用したメモリとハイブリッド検索
ステップ1:インストール要件
ステップ2:LLMと埋め込みモデルを定義します
ステップ3:データの読み込み
ステップ4:ハイブリッド検索でQDRANTをセットアップします
ステップ5:ドキュメントのインデックス付け
ステップ6:インデックスクエリエンジンのクエリ
ステップ7:メモリを定義します
ステップ8:メモリを使用したチャットエンジンの作成
ステップ9:メモリのテスト
結論
キーテイクアウト
よくある質問
ホームページ テクノロジー周辺機器 AI llamaindexを使用したragでのメモリとハイブリッド検索

llamaindexを使用したragでのメモリとハイブリッド検索

Apr 11, 2025 am 10:33 AM

導入

検索拡張生成(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を使用します。これらのライブラリがインストールされていることを確認してください。

1

2

!ピップインストールllama-index llama-index-llms-gemini lalama-index-vector-stores-qdrant astembed

!ピップインストールllama-index-embeddings-fastembed

ログイン後にコピー

ステップ2:LLMと埋め込みモデルを定義します

まず、依存関係をインポートして、APIキーを設定しましょう。

1

2

3

4

5

6

7

8

9

10

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が現在定義されているかどうかをテストしましょう。

1

2

llm_response = llm.complete( "1つのピースがいつ始まったのか?")。テキスト

print(llm_response)

ログイン後にコピー

Llamaindexでは、OpenAIはデフォルトのLLMおよび埋め込みモデルであり、LlamainDex Coreから設定を定義する必要があることをオーバーライドします。ここでは、LLMと埋め込みモデルの両方をオーバーライドする必要があります。

1

2

3

4

llama_index.coreインポート設定から

 

settings.llm = llm

settings.embed_model = embed_model

ログイン後にコピー

ステップ3:データの読み込み

この例では、データフォルダーにPDFがあると仮定しましょう。LlamainDexのSimpleDirectoryリーダーを使用してデータフォルダーをロードできます。

1

2

llama_index.coreからImport SimpledirectoryReaderから

documents = simpledirectoryreader( "./ data/")。load_data()

ログイン後にコピー

ステップ4:ハイブリッド検索でQDRANTをセットアップします

QDRANTVectorStoreインスタンスを定義し、この例ではメモリに設定する必要があります。また、QDRANTクライアントをクラウドサービスまたはLocalHostで定義することもできますが、メモリの記事では、コレクション名の定義を行う必要があります。

これにより、qdrantのハイブリッド検索機能を使用できるため、enable_hybrid = trueを確認してください。データフォルダーには、エージェントに関する研究論文にPDFが含まれているため、コレクション名は「Paper」です。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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:ドキュメントのインデックス付け

ラグシステムにメモリとハイブリッド検索を実装することで、よりインテリジェントでコンテキストを作成しました。

1

2

3

4

5

6

Storage_context = storagecontext.from_defaults(vector_store = vector_store)

 

index = vectorStoreIndex.from_documents(

    文書、

    Storage_Context = store_context、

))

ログイン後にコピー

ステップ6:インデックスクエリエンジンのクエリ

インデックス作成は、LlamainDexのレトリバーとジェネレーターチェーンを定義している部分です。ドキュメントコレクションで各ドキュメントを処理し、各ドキュメントのコンテンツの埋め込みを生成します。次に、これらの埋め込みをQDRANTベクターストアに保管します。効率的な検索を可能にするインデックス構造を作成します。クエリエンジンを定義しながら、ハイブリッドでクエリモードを必ず確認してください。

1

2

3

4

5

6

7

8

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

2

3

4

5

6

7

8

9

10

11

12

13

出力

 

#応答-1

提供されたテキストは、自律エージェントでの計画のための大規模な言語モデル(LLM)の使用に焦点を当てています。

それは人生の意味について議論していません。

 

#応答-2

 

このドキュメントでは、複雑なタスクを解決するためのエージェントとしての大規模な言語モデル(LLM)の使用を調査します。

2つの主なアプローチに焦点を当てています。

分解ファーストメソッド、

実行前にタスクがサブタスクに分解される場合、および

フィードバックに基づいて分解を動的に調整するインターリーブ分解方法。

ログイン後にコピー

ステップ7:メモリを定義します

チャットボットはうまく機能し、改善された応答を提供していますが、複数の相互作用にわたってコンテキストの認識が不足しています。これは、メモリが写真に入る場所です。

1

2

3

llama_index.core.memoryからchatmemorybufferをインポートします

 

メモリ= chatmemorybuffer.from_defaults(token_limit = 3000)

ログイン後にコピー

ステップ8:メモリを使用したチャットエンジンの作成

ハイブリッド検索とメモリの両方を使用するチャットエンジンを作成します。 lamaindexでは、外部データまたは外部データがある場合、ragベースのアプリケーションの場合は、チャットモードがコンテキストであることを確認します。

1

2

3

4

5

6

7

chat_engine = index.as_chat_engine(

    chat_mode = "context"

    メモリ=メモリ、

    System_prompt =(

        「あなたはユーザーの質問に答えるAIアシスタントです」

    )、、

))

ログイン後にコピー

ステップ9:メモリのテスト

いくつかのクエリを実行して、メモリが期待どおりに機能しているかどうかを確認しましょう。

1

2

3

4

5

6

7

iPython.displayからインポートマークダウン、ディスプレイ

 

check1 = chat_engine.chat( "2文以内の要約を与える"

 

check2 = chat_engine.chat( "要約を続け、前の2文にもう1つの文を追加する"))

 

check3 = chat_engine.chat( "上記の要約を詩にする"))

ログイン後にコピー

llamaindexを使用したragでのメモリとハイブリッド検索

llamaindexを使用したragでのメモリとハイブリッド検索

結論

メモリとハイブリッド検索を検索拡張生成(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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Meta Llama 3.2を始めましょう - 分析Vidhya Meta Llama 3.2を始めましょう - 分析Vidhya Apr 11, 2025 pm 12:04 PM

メタのラマ3.2:マルチモーダルとモバイルAIの前進 メタは最近、ラマ3.2を発表しました。これは、モバイルデバイス向けに最適化された強力なビジョン機能と軽量テキストモデルを特徴とするAIの大幅な進歩です。 成功に基づいてo

10生成AIコーディング拡張機能とコードのコードを探る必要があります 10生成AIコーディング拡張機能とコードのコードを探る必要があります Apr 13, 2025 am 01:14 AM

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

AVバイト:Meta' s llama 3.2、GoogleのGemini 1.5など AVバイト:Meta' s llama 3.2、GoogleのGemini 1.5など Apr 11, 2025 pm 12:01 PM

今週のAIの風景:進歩、倫理的考慮、規制の議論の旋風。 Openai、Google、Meta、Microsoftのような主要なプレーヤーは、画期的な新しいモデルからLEの重要な変化まで、アップデートの急流を解き放ちました

従業員へのAI戦略の販売:Shopify CEOのマニフェスト 従業員へのAI戦略の販売:Shopify CEOのマニフェスト Apr 10, 2025 am 11:19 AM

Shopify CEOのTobiLütkeの最近のメモは、AIの能力がすべての従業員にとって基本的な期待であると大胆に宣言し、会社内の重大な文化的変化を示しています。 これはつかの間の傾向ではありません。これは、pに統合された新しい運用パラダイムです

GPT-4o vs Openai O1:新しいOpenaiモデルは誇大広告に値しますか? GPT-4o vs Openai O1:新しいOpenaiモデルは誇大広告に値しますか? Apr 13, 2025 am 10:18 AM

導入 Openaiは、待望の「Strawberry」アーキテクチャに基づいて新しいモデルをリリースしました。 O1として知られるこの革新的なモデルは、推論能力を強化し、問題を通じて考えられるようになりました

ビジョン言語モデル(VLM)の包括的なガイド ビジョン言語モデル(VLM)の包括的なガイド Apr 12, 2025 am 11:58 AM

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

最高の迅速なエンジニアリング技術の最新の年次編集 最高の迅速なエンジニアリング技術の最新の年次編集 Apr 10, 2025 am 11:22 AM

私のコラムに新しいかもしれない人のために、具体化されたAI、AI推論、AIのハイテクブレークスルー、AIの迅速なエンジニアリング、AIのトレーニング、AIのフィールディングなどのトピックなど、全面的なAIの最新の進歩を広く探求します。

ラマ3.2を実行する3つの方法-Analytics Vidhya ラマ3.2を実行する3つの方法-Analytics Vidhya Apr 11, 2025 am 11:56 AM

メタのラマ3.2:マルチモーダルAIパワーハウス Metaの最新のマルチモーダルモデルであるLlama 3.2は、AIの大幅な進歩を表しており、言語理解の向上、精度の向上、および優れたテキスト生成機能を誇っています。 その能力t

See all articles