検索
ホームページテクノロジー周辺機器AIマルチドキュメントエージェントラグをスケーリングして、10のドキュメントを処理します

導入

私の以前のブログ投稿であるLlamainDexを使用してマルチドキュメントエージェントRAGを構築して、LlamainDexを使用して3つのドキュメントで処理および照会できる検索された生成(RAG)システムを作成する方法を示しました。それは強力なスタートでしたが、現実世界のアプリケーションでは、多くの場合、より大きなドキュメントのコーパスを処理する能力が必要です。

このブログは、そのシステムの3つのドキュメントから11以降に拡大することに焦点を当てます。コード、スケーリングの課題、およびより大きなソースセットから情報を動的に取得できる効率的なエージェントを構築する方法に飛び込みます。

学習目標

  • LlamainDexを使用して、いくつかのドキュメントを10を超えるドキュメントに処理することから、マルチドキュメントエージェントRAGシステムのスケーリングを理解します。
  • ツールベースのクエリメカニズムを構築および統合して、RAGモデルを強化する方法を学びます。
  • 関連するドキュメントとツールを効率的に取得する際に、VectorStoreIndexとObjectIndexの使用を理解します。
  • 大規模なドキュメントセットから関連する論文を取得することにより、複雑なクエリに答えることができる動的エージェントを実装します。
  • RAGシステムを複数のドキュメントにスケーリングする際の課題とベストプラクティスを特定します。

この記事は、データサイエンスブログソンの一部として公開されました

目次

  • 導入
  • 関係する重要な手順
  • 10のドキュメントへのスケーリングにおける重要な課題
  • 10のドキュメントを処理するためのコードを実装します
  • ツール検索によるエージェントRAGの強化
  • 11のドキュメントにわたってクエリ
  • 結果とパフォーマンスの洞察
  • 結論
  • よくある質問

関係する重要な手順

前のブログでは、エージェントRAGの概念を紹介しました。これは、情報検索と生成モデルを組み合わせて、関連する外部ドキュメントを使用してユーザークエリに答えるアプローチです。 LlamainDexを使用して、3つのドキュメントで照会できるシンプルでマルチドキュメントエージェントRAGを構築しました。

関係する重要なステップ:

  • ドキュメントの摂取: SimpleDirectoryReaderを使用して、ドキュメントをチャンクにロードして分割します。
  • インデックス作成:セマンティック検索のためにVectorStoreIndexを活用し、要約のためのsummaryIndex。
  • エージェントのセットアップ:文書から関連する情報のチャンクを取得することにより、OpenaiのAPIを統合してクエリに回答します。

このセットアップは少数のドキュメントでうまく機能しましたが、スケーラビリティの課題に遭遇しました。 3つのドキュメントを超えて拡大するにつれて、ツール管理、パフォーマンスオーバーヘッド、クエリ応答の遅いなどの問題が発生しました。この投稿では、これらの課題に対処しています。

10のドキュメントへのスケーリングにおける重要な課題

11以上のドキュメントにスケーリングすると、いくつかの複雑さが紹介されます。

パフォーマンスに関する考慮事項

複数のドキュメントに照会すると、特にメモリの使用と応答時間の観点から、計算負荷が増加します。システムがより多くのドキュメントを処理すると、迅速かつ正確な応答が主要な課題になります。

ツール管理

各ドキュメントは独自の検索と要約ツールとペアになっています。つまり、システムはこれらのツールを効率的に管理するための堅牢なメカニズムが必要です。

インデックス効率

11のドキュメントでは、VectorStoreIndexを使用すると、より複雑になります。インデックスが大きいほど、システムが関連する情報を見つけるためにふるいにかける必要があり、潜在的にクエリの時間を増やします。 Llamaindexがインデックステクニックでこれらの課題を効率的に処理する方法について説明します。

10のドキュメントを処理するためのコードを実装します

実装に飛び込み、3つのドキュメントから11のドキュメントからエージェントのぼろを拡大しましょう。

ドキュメントコレクション

これが私たちが協力する11の論文です:

  • メタグプト
  • longlora
  • loft-q
  • swe-bench
  • セルフラグ
  • zipformer
  • Finetune Fair拡散
  • ナレッジカード
  • メトラ
  • VR-MCL

最初のステップは、論文をダウンロードすることです。これを自動化するためのPythonコードは次のとおりです。

 urls = [
    「https://openreview.net/pdf?id=vtmbagcn7o」、
    「https://openreview.net/pdf?id=6pmjorfdak」、
    「https://openreview.net/pdf?id=lzpwwpady4」、
    「https://openreview.net/pdf?id=vtf8ynqm66」、
    「https://openreview.net/pdf?id=hsyw5go0v8」、
    「https://openreview.net/pdf?id=9wd9kwssyt」、
    「https://openreview.net/pdf?id=yv6fd7lykf」、
    「https://openreview.net/pdf?id=hnrb5yhoyu」、
    「https://openreview.net/pdf?id=wbwtoyizik」、
    「https://openreview.net/pdf?id=c5pwl0soay」、
    「https://openreview.net/pdf?id=tpd2ag1h0d」
]

論文= [
    「Metagpt.pdf」、
    「longlora.pdf」、
    「loftq.pdf」、
    「swebench.pdf」、
    「selfrag.pdf」、
    「zipformer.pdf」、
    「values.pdf」、
    "Finetune_fair_diffusion.pdf"、
    "knowledge_card.pdf"、
    「Metra.pdf」、
    「vr_mcl.pdf」
]

#論文のダウンロード
URLの場合、zip(urls、論文)の紙:
    !wget "{url}" -o "{Paper}"

ツールセットアップ

ドキュメントがダウンロードされたら、次のステップは、各ドキュメントのクエリと要約に必要なツールを作成することです。

 llama_index.coreからImport SimpledirectoryReader、VectorStoreIndex、summaryIndexから
llama_index.core.node_parserからimportsentencesplitterから
llama_index.core.tools Import functionTool、QueryEngineToolから
llama_index.core.vector_storesからメタデータをインポートする、filterconditionから
インポートリストの入力からオプション

def get_doc_tools(
    file_path:str、
    名前:str、
) - > str:
    "" "ドキュメントからベクトルクエリと概要クエリツールを取得します。" ""

    #ドキュメントを読み込みます
    documents = simpledirectoryreader(input_files = [file_path])。load_data()
    splitter = sentencesplitter(chunk_size = 1024)
    nodes = splitter.get_nodes_from_documents(documents)
    vector_index = vectorStoreIndex(ノード)
    
    def vector_query(
        クエリ:str、 
        page_numbers:optional [list [str]] = none
    ) - > str:
        "" "特定の論文に対する質問に答えるために使用します。
    
        紙に具体的な質問がある場合に便利です。
        検索したい特定のページがない限り、必ずPage_Numbersをまったく残しません。
    
        args:
            クエリ(str):埋め込まれる文字列クエリ。
            page_numbers(optional [list [str]]):ページのセットごとにフィルタリングします。何も残してください 
                ベクトル検索を実行したい場合
                すべてのページにわたって。それ以外の場合は、指定されたページのセットでフィルタリングします。
        
        "" "
    
        page_numbers = page_numbersまたは[]
        metadata_dicts = [
            {"key": "page_label"、 "value":p} for page_numbers
        ]
        
        query_engine = vector_index.as_query_engine(
            類似性_top_k = 2、
            filters = metadatafilters.from_dicts(
                metadata_dicts、
                条件= filtercondition.or
            ))
        ))
        response = query_engine.query(query)
        返信応答
        
    
    vector_query_tool = functiontool.from_defaults(
        name = f "vector_tool_ {name}"、
        fn = vector_query
    ))
    
    summary_index = summaryIndex(ノード)
    summary_query_engine = summary_index.as_query_engine(
        Response_mode = "tree_summarize"、
        use_async = true、
    ))
    summary_tool = queryenginetool.from_defaults(
        name = f "summary_tool_ {name}"、
        query_engine = summary_query_engine、
        説明=(
            f「{name}に関連する要約の質問に役立ちます」
        )、、
    ))

    return vector_query_tool、summary_tool

この関数は、各ドキュメントのベクトルと概要クエリツールを生成し、システムがクエリを処理し、概要を効率的に生成できるようにします。

ツール検索によるエージェントRAGの強化

次に、ツール検索を使用してエージェントラグを強化します。

エージェントの構築

次に、11のドキュメントすべてからツールを取得および管理する機能を備えたエージェントを拡張する必要があります。

 utilsからImport get_doc_tools
Pathlibインポートパスから

Paper_to_tools_dict = {}
論文の論文の場合:
    印刷(f "紙のツールの取得:{紙}")
    vector_tool、summary_tool = get_doc_tools(紙、path(紙).stem)
    Paper_to_tools_dict [Paper] = [vector_tool、summary_tool]

all_tools = [t for paper_to_tools_dict [paper]]の論文の論文の場合

出力は以下のようになります。

マルチドキュメントエージェントラグをスケーリングして、10のドキュメントを処理します

ツール検索

次のステップは、これらのツールを介して「オブジェクト」インデックスを作成し、特定のクエリに関連するツールを動的にプルすることができる検索システムを構築することです。

 llama_index.coreからVectorStoreIndexからインポート
llama_index.core.objectsからObjectIndexをインポートします

obj_index = objectIndex.from_objects(
    all_tools、
    index_cls = vectorStoreIndex、
))
obj_retriever = obj_index.as_retriever(signility_top_k = 3)

これで、システムはクエリに基づいて最も関連性の高いツールを取得できます。

例を見てみましょう:

ツール= obj_retriever.retrieve(
    「MetagptとSWE-Benchで使用されている評価データセットについて教えてください」
))

#retrieves 3つのオブジェクト、3番目のオブジェクトを見てみましょう
印刷(ツール[2] .Metadata)

マルチドキュメントエージェントラグをスケーリングして、10のドキュメントを処理します

エージェントのセットアップ

次に、ツールレトリバーをエージェントランナーに統合し、各クエリに応答するのに最適なツールを動的に選択するようにします。

 llama_index.core.agent Import functioncallingagentworkerから
llama_index.core.agent Import agentrunnerから

agent_worker = functioncallingagentworker.from_tools(
    tool_retriever = obj_retriever、
    LLM = LLM、 
    System_prompt = "" "\
あなたは、指定された一連の論文に関するクエリに答えるように設計されたエージェントです。
質問に答えるために提供されているツールを常に使用してください。事前知識に依存しないでください。\

"" "、
    verbose = true
))
agent = agentrunner(agent_worker)

11のドキュメントにわたってクエリ

複数のドキュメントに照会するときにシステムがどのように機能するかを見てみましょう。 MetagptとSWEベンチの両方の論文の両方を照会して、評価データセットを比較します。

 Response = Agent.Query( "メタグプトで使用されている評価データセットについて教えて、それをSWEベンチと比較してください"))
印刷(str(応答))

出力:

マルチドキュメントエージェントラグをスケーリングして、10のドキュメントを処理します

他の例を見てみましょう

response = agent.query(
    「Lora Papers(Longlora、LoftQ)を比較対照します。最初に各論文のアプローチを分析します。」
))
印刷(str(応答))

出力:

マルチドキュメントエージェントラグをスケーリングして、10のドキュメントを処理します

結果とパフォーマンスの洞察

次に、以下の結果とパフォーマンスの洞察を探ります。

パフォーマンスメトリック

11のドキュメントにスケーリングすると、パフォーマンスは堅牢なままでしたが、3ドキュメントのセットアップと比較して、クエリ時間の約15〜20%の増加が観察されました。ただし、全体的な検索精度は一貫していました。

スケーラビリティ分析

Llamaindexの効率的なチャンキングとインデックス作成のおかげで、このシステムは非常にスケーラブルです。ツールを慎重に管理することで、最小限のオーバーヘッドで11のドキュメントを処理することができました。このアプローチは、さらに多くのドキュメントをサポートするために拡張でき、実際のアプリケーションのさらなる成長を可能にします。

結論

3から11のドキュメントのスケーリングは、堅牢なRAGシステムを構築する上で重要なマイルストーンです。このアプローチは、LlamainDexを活用して、システムのパフォーマンスと応答性を維持しながら、大きなドキュメントセットを管理します。

LlamainDexを使用して独自の検索された生成システムをスケーリングして、結果を共有することをお勧めします。開始するには、ここで私の以前のブログをチェックしてください!

GitHubの完全なコードとリソースをご覧ください。

キーテイクアウト

  • 検索された生成(RAG)システムをスケーリングして、VectorStoreIndexやObjectIndexなどの効率的なインデックス作成方法を使用して、より多くのドキュメントを処理することができます。
  • 特定のツールをドキュメント(ベクトル検索、要約ツール)に割り当てることにより、エージェントは情報を取得するための特殊な方法を活用して、応答の精度を向上させることができます。
  • ツール検索を使用してAgentRunnerを使用すると、エージェントはクエリに基づいて適切なツールをインテリジェントに選択および適用することで、システムの柔軟性と適応性を高めることができます。
  • 多数のドキュメントを扱う場合でも、RAGシステムは、すべてのコンテンツを検索するのではなく、動的にツールを取得および適用することにより、応答性と精度を維持できます。
  • パフォーマンスと正確性を確保するためにRAGシステムをスケーリングする場合、チャンク、ツールの割り当て、およびインデックス作成戦略の最適化が重要です。

よくある質問

Q1。マルチドキュメントエージェントRAGシステムの10のドキュメントと10のドキュメントを処理することの違いは何ですか?

A. 3つのドキュメントを処理するには、より簡単なインデックス作成および検索プロセスが必要です。ドキュメントの数が増加すると(例:10)、パフォーマンスと精度を維持するために、ObjectIndexやツール検索などのより洗練された検索メカニズムが必要です。

Q2。 VectorStoreIndexとObjectIndexは、RAGシステムのスケーリングにどのように貢献しますか?

A. VectorStoreIndexは、類似性に基づいてドキュメントチャンクの効率的な取得を支援しますが、ObjectIndexを使用すると、さまざまなドキュメントに関連付けられたツールを保存および取得できます。一緒に、彼らは大規模なドキュメントセットを効果的に管理するのに役立ちます。

Q3。複数のドキュメントにスケーリングするときに、ツールベースの検索が重要なのはなぜですか?

A.ツールベースの検索により、システムは各ドキュメントに特殊なツール(ベクトル検索または要約)を適用し、回答の精度を改善し、すべてのドキュメントを同じ方法で処理するのと比較して計算時間を短縮できます。

Q4。このセットアップを変更して、さらに多くのドキュメントを処理するにはどうすればよいですか(例:20)?

A.より多くのドキュメントを処理するために、インデックスを微調整し、分散コンピューティング技術を使用して、より高度なフィルタリングメカニズムを導入して、ツールを適用する前にドキュメントセットを絞り込むことにより、検索プロセスを最適化できます。

Q5。マルチドキュメントエージェントRAGシステムを効果的にスケーリングするための重要な戦略は何ですか?

A.マルチドキュメントエージェントRAGシステムのスケーリングには、データ検索方法の最適化、効率的なインデックス作成戦略の実装、および高度な言語モデルを活用してクエリの精度を高めることが含まれます。 LlamainDexのようなツールを使用すると、複数のドキュメントの管理の改善を促進し、関連情報へのタイムリーなアクセスを確保することにより、システムのパフォーマンスを大幅に改善できます。

この記事に示されているメディアは、Analytics Vidhyaが所有しておらず、著者の裁量で使用されています。

以上がマルチドキュメントエージェントラグをスケーリングして、10のドキュメントを処理しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
あなたは無知のベールの後ろに職場AIを構築する必要がありますあなたは無知のベールの後ろに職場AIを構築する必要がありますApr 29, 2025 am 11:15 AM

ジョン・ロールズの独創的な1971年の著書「正義の理論」で、彼は私たちが今日のAIデザインの核となり、意思決定を使用するべきであるという思考実験を提案しました:無知のベール。この哲学は、公平性を理解するための簡単なツールを提供し、リーダーがこの理解を使用してAIを公平に設計および実装するための青写真を提供します。 あなたが新しい社会のルールを作っていると想像してください。しかし、前提があります。この社会でどのような役割を果たすかは事前にわかりません。過半数または限界少数派に属している、金持ちまたは貧弱、健康、または障害者になることがあります。この「無知のベール」の下で活動することで、ルールメーカーが自分自身に利益をもたらす決定を下すことができません。それどころか、人々はより公衆を策定する意欲があります

決定、決定…実用的な応用AIの次のステップ決定、決定…実用的な応用AIの次のステップApr 29, 2025 am 11:14 AM

ロボットプロセスオートメーション(RPA)を専門とする多くの企業は、繰り返しタスクを自動化するためのボットを提供しています。 一方、プロセスマイニング、オーケストレーション、インテリジェントドキュメント処理スペシャル

エージェントが来ています - 私たちがAIパートナーの隣ですることについてもっとエージェントが来ています - 私たちがAIパートナーの隣ですることについてもっとApr 29, 2025 am 11:13 AM

AIの未来は、単純な単語の予測と会話シミュレーションを超えて動いています。 AIエージェントは出現しており、独立したアクションとタスクの完了が可能です。 このシフトは、AnthropicのClaudeのようなツールですでに明らかです。 AIエージェント:研究a

共感がAI主導の未来におけるリーダーのコントロールよりも重要である理由共感がAI主導の未来におけるリーダーのコントロールよりも重要である理由Apr 29, 2025 am 11:12 AM

急速な技術の進歩は、仕事の未来に関する将来の見通しの視点を必要とします。 AIが単なる生産性向上を超えて、私たちの社会構造の形成を開始するとどうなりますか? Topher McDougalの今後の本、Gaia Wakes:

製品分類のためのAI:マシンは税法を習得できますか?製品分類のためのAI:マシンは税法を習得できますか?Apr 29, 2025 am 11:11 AM

多くの場合、Harmonized System(HS)などのシステムからの「HS 8471.30」などの複雑なコードを含む製品分類は、国際貿易と国内販売に不可欠です。 これらのコードは、すべてのINVに影響を与える正しい税申請を保証します

データセンターの要求は、気候技術のリバウンドを引き起こす可能性がありますか?データセンターの要求は、気候技術のリバウンドを引き起こす可能性がありますか?Apr 29, 2025 am 11:10 AM

データセンターと気候技術投資におけるエネルギー消費の将来 この記事では、AIが推進するデータセンターのエネルギー消費の急増と気候変動への影響を調査し、この課題に対処するための革新的なソリューションと政策の推奨事項を分析します。 エネルギー需要の課題:大規模で超大規模なデータセンターは、数十万の普通の北米の家族の合計に匹敵する巨大な力を消費し、新たなAIの超大規模なセンターは、これよりも数十倍の力を消費します。 2024年の最初の8か月で、Microsoft、Meta、Google、Amazonは、AIデータセンターの建設と運用に約1,250億米ドルを投資しました(JP Morgan、2024)(表1)。 エネルギー需要の成長は、挑戦と機会の両方です。カナリアメディアによると、迫り来る電気

AIとハリウッドの次の黄金時代AIとハリウッドの次の黄金時代Apr 29, 2025 am 11:09 AM

生成AIは、映画とテレビの制作に革命をもたらしています。 LumaのRay 2モデル、滑走路のGen-4、OpenaiのSora、GoogleのVEO、その他の新しいモデルは、前例のない速度で生成されたビデオの品質を向上させています。これらのモデルは、複雑な特殊効果と現実的なシーンを簡単に作成できます。短いビデオクリップやカメラ認知モーション効果も達成されています。これらのツールの操作と一貫性を改善する必要がありますが、進歩の速度は驚くべきものです。 生成ビデオは独立した媒体になりつつあります。アニメーション制作が得意なモデルもあれば、実写画像が得意なモデルもあります。 AdobeのFireflyとMoonvalleyのMAであることは注目に値します

ChatGptはゆっくりとAIの最大のYES-MANになりますか?ChatGptはゆっくりとAIの最大のYES-MANになりますか?Apr 29, 2025 am 11:08 AM

ChatGptユーザーエクスペリエンスは低下します:それはモデルの劣化ですか、それともユーザーの期待ですか? 最近、多数のCHATGPT有料ユーザーがパフォーマンスの劣化について不満を述べています。 ユーザーは、モデルへの応答が遅く、答えが短い、助けの欠如、さらに多くの幻覚を報告しました。一部のユーザーは、ソーシャルメディアに不満を表明し、ChatGptは「お世辞になりすぎて」、重要なフィードバックを提供するのではなく、ユーザービューを検証する傾向があることを指摘しています。 これは、ユーザーエクスペリエンスに影響を与えるだけでなく、生産性の低下やコンピューティングリソースの無駄など、企業の顧客に実際の損失をもたらします。 パフォーマンスの劣化の証拠 多くのユーザーは、特にGPT-4などの古いモデル(今月末にサービスから廃止される)で、ChatGPTパフォーマンスの大幅な分解を報告しています。 これ

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版

SublimeText3 Mac版

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。