登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 Retrieval
Retrieval コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
Retrieval を含む検索結果
エンタープライズRAGの「文書チャンキング」問題を、コスト95.7%削減しながら解いた手法が発表されました。 タイトル: D-RAC: Document Retrieval-Aware Chunking URL: 📌 概要 PDF・DOCX・PPTX・スキャン画像などバラバラな企業文書を、いったんPDFに正規化してからマルチモーダルLLMで検索最適化Markdownに1回だけ変換し、そのあとはID単位で決定的にチャンク計画を立てる4段階パイプラインです。 ❗ 解決する課題 従来のルールベース抽出は表や見出し階層を壊してしまい、精度重視のエージェント的チャンキングは文書全体を再生成するためコストが高くつくというジレンマがありました。 🛠️ 方法論・提案手法 表を列見出し付きの1文にする「行レベル散文化」、見出し階層の再構成、ID配列だけを渡すチャンク計画など、検索精度とコスト効率を両立する設計を随所に採用しています。 📊 実験結果 236文書・795ページの評価で、出力トークンを95.7%削減しつつRecall@6は0.798とエージェント的手法(0.795)やルールベース(0.717)を上回りました。処理時間も75%短縮しています。 🏢 ユースケース 自動車・銀行・クラウドなど複数業界の文書で安定した性能を確認しており、本番のエンタープライズRAGパイプラインへそのまま組み込みやすい設計です。 #RAG# #ドキュメント処理#
もっと見る
🔎 「エージェント検索に埋め込みもベクトルDBも要らない。grepで生コーパスを直接叩け」という挑発的な研究です。 タイトル: Beyond Semantic Similarity: Rethinking Retrieval for Agentic Search via Direct Corpus Interaction URL: ❓ Direct Corpus Interaction(DCI)とは何ですか? 💡 埋め込みモデル・ベクトルインデックス・検索APIを一切使わず、エージェントがgrepやfind、シェルコマンドで生コーパスを直接探索する検索パラダイムです。オフラインのインデックス構築が不要で、変化し続けるローカルコーパスに自然に適応します。 ❓ なぜ従来のリトリーバではダメなのですか? 💡 BM25でも密ベクトルでも、コーパスを「固定の類似度インターフェース」でtop-kに圧縮してから推論を始めます。すると厳密な字句一致や弱い手がかりの結合、局所文脈の確認がしづらく、早期に落ちた証拠は後段でどれだけ推論しても復元できません。エージェントの多段探索には致命的です。 ❓ 本当にリトリーバなしで勝てるのですか? 💡 勝てます。BrowseComp-Plusでは同じSonnet 4.6でリトリーバをDCIに替えると正答率69.0→80.0%(+11.0)かつコスト−29.4%。多段QA平均は83.0で最強ベースライン比+30.7、IRランキングはNDCG@10で68.5(+21.5)。軽量なGPT-5.4 nano版でも多くのベースラインを上回りました。 ❓ 何が効いているのですか? 💡 著者らは「retrieval interface resolution(検索インターフェースの解像度)」と呼びます。優位は多くのgold文書を出すことより、到達後に小さな証拠スパンへ精密に絞り込む高解像度な局所探索・検証から来る、と軌道分析で示しています。 #AIエージェント# #RAG#
もっと見る
🔎 「エージェント検索に埋め込みもベクトルDBも要らない。grepで生コーパスを直接叩け」という挑発的な研究です。 タイトル: Beyond Semantic Similarity: Rethinking Retrieval for Agentic Search via Direct Corpus Interaction URL: ❓ Direct Corpus Interaction(DCI)とは何ですか? 💡 埋め込みモデル・ベクトルインデックス・検索APIを一切使わず、エージェントがgrepやfind、シェルコマンドで生コーパスを直接探索する検索パラダイムです。オフラインのインデックス構築が不要で、変化し続けるローカルコーパスに自然に適応します。 ❓ なぜ従来のリトリーバではダメなのですか? 💡 BM25でも密ベクトルでも、コーパスを「固定の類似度インターフェース」でtop-kに圧縮してから推論を始めます。すると厳密な字句一致や弱い手がかりの結合、局所文脈の確認がしづらく、早期に落ちた証拠は後段でどれだけ推論しても復元できません。エージェントの多段探索には致命的です。 ❓ 本当にリトリーバなしで勝てるのですか? 💡 勝てます。BrowseComp-Plusでは同じSonnet 4.6でリトリーバをDCIに替えると正答率69.0→80.0%(+11.0)かつコスト−29.4%。多段QA平均は83.0で最強ベースライン比+30.7、IRランキングはNDCG@10で68.5(+21.5)。軽量なGPT-5.4 nano版でも多くのベースラインを上回りました。 ❓ 何が効いているのですか? 💡 著者らは「retrieval interface resolution(検索インターフェースの解像度)」と呼びます。優位は多くのgold文書を出すことより、到達後に小さな証拠スパンへ精密に絞り込む高解像度な局所探索・検証から来る、と軌道分析で示しています。 #AIエージェント# #RAG#
もっと見る
RAGの「精度を上げると遅くなる」ジレンマに、トピックを“方位磁針”として使う発想で挑む研究です🧭 タイトル: MCompassRAG: Topic Metadata as a Semantic Compass for Paragraph-Level Retrieval URL: 🧭 概要 トピックレベルのシグナルを「意味的なコンパス」として使い、関連する根拠を段落(パラグラフ)レベルで選び出す、メタデータ誘導型の検索フレームワークです。精度と効率を同時に高めることを狙います。 ❓ 解決する課題 RAGには、検索の精度と効率のトレードオフがあります。 ・細かいチャンクは精度が上がるが、候補が増えてレイテンシとコストが増大します ・大きいチャンクは候補が減るが、複数トピックの混在で意味的ノイズが生まれます 特に大規模データへの高速・高精度検索が要るディープリサーチで顕著です。 💡 方法論と提案手法 ・チャンクの表現を、同一の埋め込み空間内でトピックメタデータによって強化します ・LLM教師蒸留で、軽量なリトリーバーを訓練します ・これにより、推論時に追加のLLM呼び出しなしで「トピックを意識した検索」を実現します メタデータと密な埋め込みを組み合わせ、軽量リトリーバーに蒸留するのが核心です。 📊 実験結果 ・情報効率:6つのベンチマークで平均8.24%改善 ・レイテンシ:最も強力な効率重視RAGベースラインより5倍以上低い ・コードは公開リポジトリで提供 推論時の追加LLM呼び出しなしで、この精度と速度を両立しています。 #RAG# #検索#
もっと見る
TL;DR 最新の高性能エンコーダがスパース検索では旧世代モデルにすら負けていた原因は「語彙設計のミスマッチ」でした。わずか2万ステップの適応学習でこれを解消し、BEIRで新たなSOTAを達成しています。 タイトル: Why Advanced Encoders Lag on Sparse Retrieval? The Answer and an Approach to Bridging Vocabulary Gaps URL: ポイント 🔤 原因は大文字小文字を区別する生の語彙が意味を無駄に分散させていたこと 🧩 提案手法Vocabulary Transferは語彙移行を3ステップで行う軽量な後付け手法 📊 ModernBERT-VTはBEIRでnDCG@10 52.4を達成し新SOTA 💥 崩壊していたRoBERTa-largeもBEIRスコア1.4から51.3まで劇的に回復 ⚡ 使用トークン数は元の事前学習の0.2%未満という圧倒的な低コスト 🧪 わずか500 MLMステップでほぼ最適な性能に到達 🧬 化学ドメインなど専門語彙への適応でも効果を確認 アーキテクチャの限界だと思われていた問題が、実は語彙の作り直しだけで解決できるというのが面白い発見です。 #情報検索# #LLM#
もっと見る
# ADKの便利で実践的な使い方 セッションを超えた「長期記憶」を実現するMemory機能。過去の会話から学び、ユーザーを深く理解するエージェントを作りましょう🧠 📌 **タイトル**: Memory 🔗 **URL**: ## 🧩 概要 Memoryは、セッションを横断して検索可能な長期知識を管理する機能です。Stateが「今の会話」のデータを保持するのに対し、Memoryは「過去の会話から得た知識」を蓄積し、自然言語で検索できます。 主要なAPIは以下の2つです。 - `add_session_to_memory` / `add_events_to_memory`: セッションやイベントの内容をメモリに追加 - `search_memory`: 自然言語クエリでメモリを検索 バックエンドにはChromaなどのベクトルDBを使用でき、RAG(Retrieval-Augmented Generation)パターンでエージェントの応答品質を向上させます。 ## 🛠 使い方 `google.adk.memory` から `InMemoryMemoryService` をインポートしてインスタンス化します。セッション終了時に `await memory_service.add_session_to_memory(session)` でセッション内容をメモリに追加します。検索時は `await memory_service.search_memory(app_name=..., user_id=..., query="以前のネットワーク接続の問題")` のように自然言語クエリを渡します。返されたresultsの各 `memory` オブジェクトの `memory.content` から、過去の関連する会話内容を取得してエージェントの文脈に活用できます。 ## 🏗 実践的な使い方 **カスタマーサポートでの活用:** 1. ユーザーが「ネットワークがまた繋がらない」と問い合わせ 2. Memoryを「ネットワーク接続の問題」で検索 3. 「前回(3日前)も同じ問題で問い合わせがあり、ルーターの再起動で解決しました」という情報を取得 4. エージェントが「前回の問題は解決しましたか?同じ症状でしたらルーターの再起動をお試しください」と提案 過去の対応履歴を踏まえた、パーソナライズされたサポートが実現します。 **学習支援エージェント:** 1. 「微分がわからない」とユーザーが相談 2. Memoryを検索し、「このユーザーは視覚的な説明を好む」「前回は具体例から理解した」という知識を取得 3. グラフを使った具体例ベースの説明を提供 ## 💡 ユースケース - 🎧 カスタマーサポート: 過去の問い合わせ履歴を踏まえた対応。「前回の問題は解決しましたか?」 - 📚 学習支援: ユーザーの学習スタイルや理解度を記憶し、最適な教え方を選択 - 🏥 健康管理: 過去の相談履歴から傾向を把握し、継続的なアドバイスを提供 - 🛒 パーソナルショッパー: 購買履歴や好みを記憶し、的確な商品提案 ## ⚠️ 注意点 - メモリに個人情報を保存する場合、プライバシーポリシーとデータ保護規制への準拠が必要です - ベクトルDBの検索精度はエンベディングモデルの品質に依存します。適切なモデルを選択してください - メモリの量が増えると検索コストも増加します。定期的な整理やTTL(有効期限)の設定を検討しましょう - `InMemoryMemoryService` はプロセス再起動でデータが消えます。本番ではChromaなどの永続化バックエンドを使用してください ✨ Memory機能でエージェントに長期記憶を持たせれば、ユーザーとの関係が深まり、回を重ねるほど賢くなるエージェントが実現します! #ADK# #AIAgent#
もっと見る
# AIエージェント開発の意思決定ポイント 🎯 **ポイント** RAGのtop-k、なんとなく「5」にしていませんか?検索結果を多く入れれば根拠が増えると思いきや、LLMは中盤の情報を無視しがちで、コストだけが直線的に増加します。少なすぎればハルシネーション、多すぎればノイズと予算超過。このバランスを取るための実践的な考え方を解説します。 📋 **概要** 検索top-kは、RAG(Retrieval-Augmented Generation)において外部知識ストアから取得する文書チャンクの件数を制御するパラメータです。広義には「LLMのコンテキストウィンドウに投入する外部情報の量」を意味します。コンテキストウィンドウは有限の資源であり、システム指示・検索結果・会話履歴・長期メモリ・ツール出力が奪い合っています。検索結果を多く入れれば根拠は増えますが他の情報が押し出され、少なければ根拠不足でハルシネーションが増えます。 重要なのは件数だけでなく「何を上位に置くか」です。初期検索で広めに候補を取り、リランカーで信号密度の高い順に並べ替えて上位k件を投入するパイプラインが標準的です。 🔍 **意思決定のポイント** top-kの設定は主に以下の変数で決まります。 🔹 **コスト感度(cost_sensitivity)** — コスト感度が高いほどtop-kを絞ります。ただし最低限の根拠確保のためk=3を下回ることは稀です。kを5から20に増やすと検索結果部分のトークンは概ね4倍、コストもそれに比例します。 🔹 **失敗コスト(failure_cost)** — 失敗コストが高い領域では根拠の網羅性が重要。kを多めにとりリランクで品質を担保する戦略が有効です。ただしリランクスコアが閾値を下回る文書は切り捨てるべきです。 🔹 **説明責任(accountability)** — 回答の根拠として引用できる文書を確保する必要がある場合、kを増やすよりもリランクスコアの高い少数の文書を確実に含め、出典を明示する方が効果的です。 💡 **要点と詳細** 実践的な判定フローは以下の通りです。 1️⃣ 初期検索では広めに取得(概ねk=20〜50) 2️⃣ リランカーで関連性スコア順に並べ替え 3️⃣ スコアが閾値を超える文書のうち上位k件を投入 4️⃣ 投入後のトークン数がコンテキストウィンドウの50%を超えないよう制御 5️⃣ 超える場合は圧縮(要約)またはさらなる絞り込み 📊 目安値: - 初期検索の取得件数: 20〜50件(リランク用の候補プール) - リランク後の投入件数: 3〜8件(大半のユースケースで5件前後が出発点) - 検索枠のウィンドウ占有率: 20〜40%(50%超で圧縮検討) - チャンクサイズ: 200〜500トークン kの値は「件数の定数」ではなく「リランクスコアが閾値を超えた文書の件数(上限k件)」として動的に決めるのが理想です。高関連の文書が2件しかなければ2件だけ投入し、無理にk件まで埋めません。 ⚖️ **トレードオフ** 📉 top-kが小さすぎると — 回答に必要な情報が検索結果に含まれず、LLMが根拠なしに回答を生成します。特に複数文書からの情報統合が必要な場合(「A社とB社の比較」など)、1件では対応できません。取得件数が少ないと1件のノイズの影響も甚大で、k=2なら1件のノイズが50%を占めます。 📈 top-kが大きすぎると — "Lost in the Middle"問題が顕在化します。LLMはコンテキストの先頭と末尾に注意を集中させ、中盤の情報は実質的に無視される傾向があります。大量投入すると最重要情報が中盤に埋もれます。他の情報枠(システム指示・会話履歴・長期メモリ)も圧迫され、エージェント全体の振る舞いが劣化します。 🛠️ **ユースケース** ❓ **単純な事実質問**(「A社の設立年は?」)— k=2〜3で十分。単一の文書で回答可能なケースがほとんどです。 📊 **比較・分析質問**(「A社とB社の戦略の違いは?」)— k=5〜8が必要。複数ソースからの情報統合にはより多くの文書が必要です。クエリ分類器で場合分けすると効率的です。 🏥 **医療・法務の高精度Q&A** — 根拠の網羅性と出典の明示が両方求められる。初期検索を広く取りリランクで厳選、スコアの高い少数の文書を先頭または末尾に配置して"Lost in the Middle"を回避します。 リランカーを使わずにtop-kを増やすのは逆効果です。ベクトル検索の上位20件をそのまま投入するとノイズが大量に混入します。コンテキストウィンドウの使用率は常にモニタリングし、検索結果で投入した文書のうち実際に回答に使われた比率を追跡しましょう。使われない文書が多ければkを下げるか検索パイプラインの改善が必要です。 #AIエージェント# #ソフトウェアアーキテクチャ#
もっと見る
検索パイプライン構築の本当の敵は「ツールの寄せ集め」でした🔍 取り込み・検索・評価を1つに束ねるオープンソースのフレームワークが登場しました。 タイトル: Introducing Search Toolkit URL: 🔍 概要 Mistral Search Toolkitは、AIアプリ向けの本番検索パイプラインを効率化する、コンポーザブルなオープンソースのフレームワークです。取り込み(ingestion)・検索(retrieval)・評価(evaluation)を、1つの統一システムに統合します。 ❓ 解決する課題 本番品質の検索パイプライン構築は想像以上に大変です。 ・多くの組織は、バラバラのツールを寄せ集めて統合することに膨大な時間を費やします ・その結果、肝心の「検索の質を上げること」自体に手が回りません 💡 方法論と機能 3つのコンポーネントで構成されます。 ・取り込み:複数データソースを設定可能なパイプラインで処理し、パース・チャンク分割・埋め込み生成を担う ・検索:BM25スパース検索、密な埋め込みベース検索、両者のハイブリッド構成を提供 ・評価:recall・precision・MRR・NDCGなどの組み込み指標で、構成ごとの性能を測定 「取り込み→検索→評価」を1つのフレームワークで完結できます。 🌍 ユースケース ・ウィキ・リポジトリ・ファイルを横断するエンタープライズ検索 ・検索の質を分離して測定したいRAGシステム ・法務・医療などのドメイン特化検索 ・ライブデータと並行して信頼できるインデックス検索が必要なエージェント 金融・製造・公共・メディアで既に導入実績があります。 #検索# #RAG#
もっと見る
# AIエージェントをソフトウェアに組み込むプラクティス # コンテキスト予算配分 🎯 「全部入れれば精度が上がる」は幻想です。コンテキストウィンドウは有限の予算として管理しましょう。 スロットごとに配分比率を決め、信号密度を最大化するパターンです。 🔥 解決する課題 RAGやメモリを使うエージェントでは、検索結果・会話履歴・システム指示・長期メモリが同じコンテキストウィンドウを奪い合います。情報を詰め込むほどコストは増え、会話が長くなるとシステム指示の割合が縮んで振る舞いが劣化します。さらに"Lost in the Middle"問題により、窓の中盤に置かれた重要な情報が実質的に無視されてしまいます。 💡 提案パターン コンテキストウィンドウをシステム指示・検索結果・会話履歴・メモリなどのスロットに分け、各スロットに最大占有率と優先度を設定します。システム指示は圧縮対象外の固定枠(10〜20%)として先に確保し、検索結果はリランク後にtop-k件に絞り、履歴は窓使用率が閾値を超えたら要約圧縮します。配置順序はLost in the Middle対策として、最重要情報を先頭に、直近入力を末尾に置きます。cost_sensitivityが高い環境ほどtop-kを絞り、圧縮閾値を下げ、履歴を短く保ちます。 ✅ 選定条件 使うとき: - RAGやメモリを使い、投入候補がモデル窓サイズの50%を超えうる - コスト感度が中以上で、投入トークンの増加がコストや推論時間に影響する - 複数ターンの会話で履歴が蓄積し、他の情報のスペースを圧迫する 使わないとき: - 投入情報がシステム指示+単発入力のみで窓の30%未満に収まる場合 - ロングコンテキストモデルを使い投入量が窓の20%未満、かつコスト感度が低い場合 ⚠️ 落とし穴 - システム指示を圧縮対象にしてはいけません。ツール定義や安全指示が削られると振る舞いが壊れます - リランクなしのtop-kは信号密度が低いです。ベクトル検索上位20件からクロスエンコーダで3〜8件に絞りましょう - 要約圧縮は非可逆です。重要な決定事項や固有名詞が落ちるリスクがあるため、キーワード抽出を併用してください 🔧 実装方針 - コンテキストウィンドウをスロット(system/user/retrieval/history/memory)に分割し、各スロットに最大占有率・優先度・圧縮可否を定義した構造体で管理します - システム指示は圧縮対象外の最高優先度として先に確保し、残りの予算を他スロットに優先度降順で配分します - 検索結果はベクトル検索の上位候補をクロスエンコーダでリランクしてから予算内に収め、信号密度を最大化します - 履歴スロットが予算を超過した場合は要約圧縮を適用し、圧縮前にキーワード抽出して重要情報の欠落を防ぎます #AIエージェント# #ソフトウェアアーキテクチャ#
もっと見る
# AIエージェントをソフトウェアに組み込むプラクティス # コンテキスト予算配分 🎯 「全部入れれば精度が上がる」は幻想です。コンテキストウィンドウは有限の予算として管理しましょう。 スロットごとに配分比率を決め、信号密度を最大化するパターンです。 🔥 解決する課題 RAGやメモリを使うエージェントでは、検索結果・会話履歴・システム指示・長期メモリが同じコンテキストウィンドウを奪い合います。情報を詰め込むほどコストは増え、会話が長くなるとシステム指示の割合が縮んで振る舞いが劣化します。さらに"Lost in the Middle"問題により、窓の中盤に置かれた重要な情報が実質的に無視されてしまいます。 💡 提案パターン コンテキストウィンドウをシステム指示・検索結果・会話履歴・メモリなどのスロットに分け、各スロットに最大占有率と優先度を設定します。システム指示は圧縮対象外の固定枠(10〜20%)として先に確保し、検索結果はリランク後にtop-k件に絞り、履歴は窓使用率が閾値を超えたら要約圧縮します。配置順序はLost in the Middle対策として、最重要情報を先頭に、直近入力を末尾に置きます。cost_sensitivityが高い環境ほどtop-kを絞り、圧縮閾値を下げ、履歴を短く保ちます。 ✅ 選定条件 使うとき: - RAGやメモリを使い、投入候補がモデル窓サイズの50%を超えうる - コスト感度が中以上で、投入トークンの増加がコストや推論時間に影響する - 複数ターンの会話で履歴が蓄積し、他の情報のスペースを圧迫する 使わないとき: - 投入情報がシステム指示+単発入力のみで窓の30%未満に収まる場合 - ロングコンテキストモデルを使い投入量が窓の20%未満、かつコスト感度が低い場合 ⚠️ 落とし穴 - システム指示を圧縮対象にしてはいけません。ツール定義や安全指示が削られると振る舞いが壊れます - リランクなしのtop-kは信号密度が低いです。ベクトル検索上位20件からクロスエンコーダで3〜8件に絞りましょう - 要約圧縮は非可逆です。重要な決定事項や固有名詞が落ちるリスクがあるため、キーワード抽出を併用してください 🔧 実装方針 - コンテキストウィンドウをスロット(system/user/retrieval/history/memory)に分割し、各スロットに最大占有率・優先度・圧縮可否を定義した構造体で管理します - システム指示は圧縮対象外の最高優先度として先に確保し、残りの予算を他スロットに優先度降順で配分します - 検索結果はベクトル検索の上位候補をクロスエンコーダでリランクしてから予算内に収め、信号密度を最大化します - 履歴スロットが予算を超過した場合は要約圧縮を適用し、圧縮前にキーワード抽出して重要情報の欠落を防ぎます #AIエージェント# #ソフトウェアアーキテクチャ#
もっと見る