[{"data":1,"prerenderedAt":875},["ShallowReactive",2],{"content-/contextual-retrieval":3,"all-pages-for-dir":853,"related-/contextual-retrieval":854,"og-image-/contextual-retrieval":874},{"id":4,"title":5,"body":6,"category":835,"concepts":835,"description":836,"extension":837,"meta":838,"navigation":839,"ogImage":835,"path":840,"project_name":835,"published":841,"publishedAt":842,"seo":843,"source":835,"stem":844,"tags":845,"todo":835,"unpublished":841,"updatedAt":835,"__hash__":852},"pages/2025-12/2025-12-30/contextual-retrieval.md","Contextual Retrieval（文脈検索）の紹介",{"type":7,"value":8,"toc":800},"minimark",[9,125,129,143,146,150,153,160,167,171,174,177,180,191,194,198,201,214,217,221,224,284,287,290,295,303,308,314,317,320,387,392,396,399,403,417,420,444,448,451,454,460,463,477,480,483,486,547,550,553,565,568,608,611,614,617,635,638,641,644,679,683,686,700,703,706,709,720,723,726,748,751,754,757,781,784,786,796],[10,11,14,18,106,112],"callout",{"title":12,"type":13},"Claude Codeユーザーへの適用可能性評価","info",[15,16,17],"p",{},"この記事はRAG（検索拡張生成）技術に関するものです。Claude Code CLIでの直接的な利用可能性を以下に評価します。",[19,20,21,37],"table",{},[22,23,24],"thead",{},[25,26,27,31,34],"tr",{},[28,29,30],"th",{},"項目",[28,32,33],{},"適用可能性",[28,35,36],{},"説明",[38,39,40,55,68,81,93],"tbody",{},[25,41,42,46,52],{},[43,44,45],"td",{},"Claude Code CLIで直接利用",[43,47,48],{},[49,50,51],"strong",{},"不可",[43,53,54],{},"RAGシステムの構築が必要であり、CLI単体では利用不可",[25,56,57,60,65],{},[43,58,59],{},"プロンプトキャッシング",[43,61,62],{},[49,63,64],{},"関連あり",[43,66,67],{},"Claude APIを使用するアプリケーション開発時に参考になる",[25,69,70,73,78],{},[43,71,72],{},"チャンク分割の知識",[43,74,75],{},[49,76,77],{},"間接的に有用",[43,79,80],{},"長いコードベースをClaude Codeに渡す際の参考になる",[25,82,83,86,90],{},[43,84,85],{},"BM25 + セマンティック検索",[43,87,88],{},[49,89,51],{},[43,91,92],{},"外部検索システムの構築が必要",[25,94,95,98,103],{},[43,96,97],{},"埋め込みモデルの選択指針",[43,99,100],{},[49,101,102],{},"参考情報",[43,104,105],{},"RAGシステムを構築する際の知識として有用",[15,107,108,111],{},[49,109,110],{},"結論",": Claude Code CLIユーザーが直接活用することはできませんが、以下の場合に知識として役立ちます：",[113,114,115,119,122],"ul",{},[116,117,118],"li",{},"自前のRAGシステムを構築してClaude APIと統合する場合",[116,120,121],{},"大規模なコードベースの検索システムを設計する場合",[116,123,124],{},"AIアシスタントのコンテキスト管理を最適化する場合",[126,127,5],"h1",{"id":128},"contextual-retrieval文脈検索の紹介",[15,130,131],{},[132,133,134,135,142],"em",{},"元記事: ",[136,137,141],"a",{"href":138,"rel":139},"https://www.anthropic.com/engineering/contextual-retrieval",[140],"nofollow","Introducing Contextual Retrieval"," - Anthropic Engineering Blog",[144,145],"hr",{},[147,148,149],"h2",{"id":149},"はじめに",[15,151,152],{},"AI モデルの有用性を高めるために、開発者はしばしばバックグラウンド知識を提供する必要があります。例えば、顧客サポートチャットボットは関連するFAQ記事へのアクセスが必要であり、法律アナリストアシスタントは膨大な過去の判例を参照できる必要があります。",[15,154,155,156,159],{},"開発者は一般的に",[49,157,158],{},"RAG（Retrieval-Augmented Generation / 検索拡張生成）","を使用してモデルの知識を強化します。RAGは知識ベースから関連情報を取得してユーザーのプロンプトに追加することで、モデルの応答を大幅に改善します。しかし従来のRAGソリューションでは情報をエンコードする際に文脈が失われ、関連情報の取得に失敗することがあります。",[15,161,162,163,166],{},"本記事では、RAGにおける検索ステップを劇的に改善するシンプルな手法「",[49,164,165],{},"Contextual Retrieval（文脈検索）","」を紹介します。",[147,168,170],{"id":169},"問題チャンク分割時の文脈喪失","問題：チャンク分割時の文脈喪失",[15,172,173],{},"RAGでは、知識ベースは小さなチャンク（断片）に分割されます。これらのチャンクはエンコード（埋め込みベクトル化など）され、後で関連チャンクを取得するための検索インデックスに保存されます。",[15,175,176],{},"しかし、チャンク分割プロセスで文脈情報が失われることがよくあります。",[15,178,179],{},"たとえばSEC（米国証券取引委員会）提出書類のチャンクに「前四半期比で売上高が3%増加した」という記述があるとします。このチャンクだけでは以下の重要な情報が欠落しています：",[113,181,182,185,188],{},[116,183,184],{},"どの企業のデータか？",[116,186,187],{},"どの四半期のデータか？",[116,189,190],{},"どの会計年度のデータか？",[15,192,193],{},"このような情報の欠如により、正確な情報取得が困難になります。",[147,195,197],{"id":196},"解決策contextual-retrieval","解決策：Contextual Retrieval",[15,199,200],{},"Contextual Retrievalは、以下の2つのサブ技術で構成される手法です：",[202,203,204,209],"ol",{},[116,205,206],{},[49,207,208],{},"Contextual Embeddings（文脈埋め込み）",[116,210,211],{},[49,212,213],{},"Contextual BM25（文脈BM25）",[15,215,216],{},"これらの手法は、エンコード前に各チャンクに説明的な文脈情報を前置することで、チャンクの意味を明確化します。",[218,219,220],"h3",{"id":220},"文脈生成プロンプト",[15,222,223],{},"以下のプロンプトを使用して、Claudeに各チャンクの文脈を生成させます：",[225,226,231],"pre",{"className":227,"code":228,"language":229,"meta":230,"style":230},"language-xml shiki shiki-themes vitesse-light vitesse-light","\u003Cdocument>\n{{WHOLE_DOCUMENT}}\n\u003C/document>\nHere is the chunk we want to situate within the whole document\n\u003Cchunk>\n{{CHUNK_CONTENT}}\n\u003C/chunk>\nPlease give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.\n","xml","",[232,233,234,242,248,254,260,266,272,278],"code",{"__ignoreMap":230},[235,236,239],"span",{"class":237,"line":238},"line",1,[235,240,241],{},"\u003Cdocument>\n",[235,243,245],{"class":237,"line":244},2,[235,246,247],{},"{{WHOLE_DOCUMENT}}\n",[235,249,251],{"class":237,"line":250},3,[235,252,253],{},"\u003C/document>\n",[235,255,257],{"class":237,"line":256},4,[235,258,259],{},"Here is the chunk we want to situate within the whole document\n",[235,261,263],{"class":237,"line":262},5,[235,264,265],{},"\u003Cchunk>\n",[235,267,269],{"class":237,"line":268},6,[235,270,271],{},"{{CHUNK_CONTENT}}\n",[235,273,275],{"class":237,"line":274},7,[235,276,277],{},"\u003C/chunk>\n",[235,279,281],{"class":237,"line":280},8,[235,282,283],{},"Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else.\n",[15,285,286],{},"このプロンプトにより、通常50〜100トークン程度の簡潔な文脈説明が生成されます。",[218,288,289],{"id":289},"文脈付きチャンクの例",[15,291,292],{},[49,293,294],{},"元のチャンク：",[225,296,301],{"className":297,"code":299,"language":300},[298],"language-text","前四半期比で売上高が3%増加した。\n","text",[232,302,299],{"__ignoreMap":230},[15,304,305],{},[49,306,307],{},"文脈付きチャンク：",[225,309,312],{"className":310,"code":311,"language":300},[298],"本ドキュメントは2024年第2四半期のAcme Corp年次SEC 10-K提出書類です。\n前四半期比で売上高が3%増加した。\n",[232,313,311],{"__ignoreMap":230},[147,315,316],{"id":316},"パフォーマンス結果",[15,318,319],{},"様々なデータセットでテストした結果、以下の改善が確認されました：",[19,321,322,335],{},[22,323,324],{},[25,325,326,329,332],{},[28,327,328],{},"手法",[28,330,331],{},"検索失敗率",[28,333,334],{},"改善率",[38,336,337,348,361,374],{},[25,338,339,342,345],{},[43,340,341],{},"ベースライン（従来のRAG）",[43,343,344],{},"5.7%",[43,346,347],{},"-",[25,349,350,353,356],{},[43,351,352],{},"Contextual Embeddings単独",[43,354,355],{},"3.7%",[43,357,358],{},[49,359,360],{},"35%削減",[25,362,363,366,369],{},[43,364,365],{},"Contextual Embeddings + BM25",[43,367,368],{},"2.9%",[43,370,371],{},[49,372,373],{},"49%削減",[25,375,376,379,382],{},[43,377,378],{},"Contextual Embeddings + BM25 + Reranking",[43,380,381],{},"1.9%",[43,383,384],{},[49,385,386],{},"67%削減",[15,388,389],{},[132,390,391],{},"評価指標：1 minus recall@20（上位20チャンク内での検索失敗率）",[147,393,395],{"id":394},"bm25とセマンティック検索の組み合わせ","BM25とセマンティック検索の組み合わせ",[15,397,398],{},"RAGシステムでは通常、セマンティック検索（埋め込み類似度検索）が使用されますが、BM25（語彙ベースの検索）と組み合わせることで、さらに性能が向上します。",[218,400,402],{"id":401},"なぜ両方が必要か","なぜ両方が必要か？",[113,404,405,411],{},[116,406,407,410],{},[49,408,409],{},"セマンティック検索","：意味的に類似した内容を見つけるのが得意",[116,412,413,416],{},[49,414,415],{},"BM25","：正確なキーワードマッチ、固有名詞、技術用語の検索が得意",[218,418,419],{"id":419},"統合方法",[202,421,422,432,435,438],{},[116,423,424,427,428,431],{},[49,425,426],{},"TF-IDFエンコーディング","と",[49,429,430],{},"意味埋め込み","の両方を作成",[116,433,434],{},"BM25で正確なキーワードマッチを検索",[116,436,437],{},"埋め込みで意味的類似性を検索",[116,439,440,443],{},[49,441,442],{},"ランク融合","技術で結果を統合",[147,445,447],{"id":446},"リランキングreranking","リランキング（Reranking）",[15,449,450],{},"初期検索で多くの候補を取得し、より精度の高いモデルで再順位付けを行う手法です。",[218,452,453],{"id":453},"推奨されるパイプライン",[225,455,458],{"className":456,"code":457,"language":300},[298],"初期検索（150チャンク取得）\n    ↓\nリランキング\n    ↓\n上位20チャンクを最終結果として使用\n",[232,459,457],{"__ignoreMap":230},[218,461,462],{"id":462},"テスト済みリランキングモデル",[113,464,465,471],{},[116,466,467,470],{},[49,468,469],{},"Cohere reranker","：テスト済み、良好な結果",[116,472,473,476],{},[49,474,475],{},"Voyage reranker","：代替オプション",[147,478,479],{"id":479},"実装上の考慮事項",[218,481,482],{"id":482},"チャンク設定",[15,484,485],{},"以下の要素が検索性能に影響します：",[19,487,488,501],{},[22,489,490],{},[25,491,492,495,498],{},[28,493,494],{},"パラメータ",[28,496,497],{},"推奨値",[28,499,500],{},"備考",[38,502,503,514,525,536],{},[25,504,505,508,511],{},[43,506,507],{},"チャンクサイズ",[43,509,510],{},"約800トークン",[43,512,513],{},"ドキュメントの性質に依存",[25,515,516,519,522],{},[43,517,518],{},"ドキュメントサイズ",[43,520,521],{},"8kトークン",[43,523,524],{},"文脈生成時の入力サイズ",[25,526,527,530,533],{},[43,528,529],{},"文脈説明",[43,531,532],{},"50〜100トークン",[43,534,535],{},"簡潔に保つ",[25,537,538,541,544],{},[43,539,540],{},"チャンクオーバーラップ",[43,542,543],{},"調整が必要",[43,545,546],{},"ドメインに依存",[218,548,549],{"id":549},"埋め込みモデルの選択",[15,551,552],{},"テストの結果、以下のモデルが最良の性能を示しました：",[113,554,555,560],{},[116,556,557],{},[49,558,559],{},"Gemini Text 004",[116,561,562],{},[49,563,564],{},"Voyage AI",[218,566,567],{"id":567},"取得チャンク数",[19,569,570,580],{},[22,571,572],{},[25,573,574,577],{},[28,575,576],{},"チャンク数",[28,578,579],{},"性能",[38,581,582,590,598],{},[25,583,584,587],{},[43,585,586],{},"5",[43,588,589],{},"低",[25,591,592,595],{},[43,593,594],{},"10",[43,596,597],{},"中",[25,599,600,603],{},[43,601,602],{},"20",[43,604,605],{},[49,606,607],{},"最適",[147,609,610],{"id":610},"コスト効率",[15,612,613],{},"Prompt Caching（プロンプトキャッシング）を活用することで、文脈化チャンク生成のコストを大幅に削減できます。",[218,615,616],{"id":616},"コスト見積もり",[113,618,619,625],{},[116,620,621,624],{},[49,622,623],{},"想定条件","：800トークンチャンク、8kトークンドキュメント",[116,626,627,630,631,634],{},[49,628,629],{},"コスト","：",[49,632,633],{},"100万ドキュメントトークンあたり $1.02","（一度限り）",[15,636,637],{},"プロンプトキャッシングにより、ドキュメント全体を繰り返し送信する際のコストが大幅に削減されます。",[147,639,640],{"id":640},"知識ベースサイズの判断",[15,642,643],{},"RAGを使用すべきかどうかは、知識ベースのサイズによって判断します。",[19,645,646,656],{},[22,647,648],{},[25,649,650,653],{},[28,651,652],{},"知識ベースサイズ",[28,654,655],{},"推奨アプローチ",[38,657,658,669],{},[25,659,660,663],{},[43,661,662],{},"200,000トークン以下（約500ページ）",[43,664,665,668],{},[49,666,667],{},"RAG不要"," - プロンプトに全体を含める",[25,670,671,674],{},[43,672,673],{},"200,000トークン以上",[43,675,676],{},[49,677,678],{},"RAGを使用",[218,680,682],{"id":681},"rag不要の場合のメリット","RAG不要の場合のメリット",[15,684,685],{},"プロンプトキャッシングを使用して知識ベース全体をプロンプトに含めると：",[113,687,688,694],{},[116,689,690,691],{},"レイテンシー：",[49,692,693],{},"2倍以上削減",[116,695,696,697],{},"コスト：",[49,698,699],{},"最大90%削減",[147,701,702],{"id":702},"カスタマイズのヒント",[218,704,705],{"id":705},"ドメイン固有の最適化",[15,707,708],{},"プロンプトにドメイン固有の情報を追加することで、文脈生成の品質が向上します：",[113,710,711,714,717],{},[116,712,713],{},"専門用語集の追加",[116,715,716],{},"製品名やサービス名の定義",[116,718,719],{},"組織構造の説明",[147,721,722],{"id":722},"参考リソース",[15,724,725],{},"詳細な実装については、以下のリソースを参照してください：",[113,727,728,738],{},[116,729,730,630,733],{},[49,731,732],{},"クックブック",[136,734,737],{"href":735,"rel":736},"https://github.com/anthropics/anthropic-cookbook/tree/main/skills/contextual-embeddings",[140],"Contextual Embeddings Cookbook",[116,739,740,630,743],{},[49,741,742],{},"プロンプトキャッシングドキュメント",[136,744,747],{"href":745,"rel":746},"https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching",[140],"Prompt Caching Documentation",[147,749,750],{"id":750},"まとめ",[15,752,753],{},"Contextual Retrievalは、RAGシステムの検索精度を大幅に向上させるシンプルかつ効果的な手法です。",[218,755,756],{"id":756},"主要なポイント",[202,758,759,765,770,776],{},[116,760,761,764],{},[49,762,763],{},"チャンクに文脈情報を付加","することで、検索時の曖昧さを解消",[116,766,767,769],{},[49,768,395],{},"で、キーワードマッチと意味検索の両方をカバー",[116,771,772,775],{},[49,773,774],{},"リランキング","で最終的な精度を向上",[116,777,778,780],{},[49,779,59],{},"でコスト効率を最適化",[15,782,783],{},"これらの手法を組み合わせることで、検索失敗率を最大67%削減できます。",[144,785],{},[15,787,788],{},[132,789,790,791,795],{},"本記事は ",[136,792,794],{"href":138,"rel":793},[140],"Anthropic Engineering Blog"," の翻訳です。",[797,798,799],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":230,"searchDepth":244,"depth":244,"links":801},[802,803,804,808,809,813,817,822,825,828,831,832],{"id":149,"depth":244,"text":149},{"id":169,"depth":244,"text":170},{"id":196,"depth":244,"text":197,"children":805},[806,807],{"id":220,"depth":250,"text":220},{"id":289,"depth":250,"text":289},{"id":316,"depth":244,"text":316},{"id":394,"depth":244,"text":395,"children":810},[811,812],{"id":401,"depth":250,"text":402},{"id":419,"depth":250,"text":419},{"id":446,"depth":244,"text":447,"children":814},[815,816],{"id":453,"depth":250,"text":453},{"id":462,"depth":250,"text":462},{"id":479,"depth":244,"text":479,"children":818},[819,820,821],{"id":482,"depth":250,"text":482},{"id":549,"depth":250,"text":549},{"id":567,"depth":250,"text":567},{"id":610,"depth":244,"text":610,"children":823},[824],{"id":616,"depth":250,"text":616},{"id":640,"depth":244,"text":640,"children":826},[827],{"id":681,"depth":250,"text":682},{"id":702,"depth":244,"text":702,"children":829},[830],{"id":705,"depth":250,"text":705},{"id":722,"depth":244,"text":722},{"id":750,"depth":244,"text":750,"children":833},[834],{"id":756,"depth":250,"text":756},null,"AnthropicによるRAGシステム改善手法。文脈情報を付加した埋め込みとBM25を組み合わせ、検索失敗率を最大67%削減する技術の詳細解説。","md",{},true,"/contextual-retrieval",false,"2025-12-30T00:00:00.000Z",{"title":5,"description":836},"2025-12/2025-12-30/contextual-retrieval",[846,847,848,415,849,850,851],"RAG","検索","埋め込み","Anthropic","AI","機械学習","rGC8L_PMAzQApSxN0LGxGGhmHJ68MCrrmarDlRBi-8Y",[],[855,859,863,867,871],{"title":856,"path":857,"publishedAt":858},"「世界でAIを使っているのは800万人」は本当か — 公式発表の確認と10年後までのフェルミ推定","/ai-user-count-fermi-estimate","2026-07-15T00:00:00.000Z",{"title":860,"path":861,"publishedAt":862},"松尾研のAX5ステップ — まずは全社でAX2まで到達する","/matsuo-ax5-steps","2026-07-02T00:00:00.000Z",{"title":864,"path":865,"publishedAt":866},"AI格差は、まず体験格差として現れる","/ai-experience-gap-frontier-models","2026-06-29T00:00:00.000Z",{"title":868,"path":869,"publishedAt":870},"AIとスキル習得——身体性の伴わない技術をこれからどう学ぶか","/ai-skill-learning","2026-02-01T00:00:00.000Z",{"title":872,"path":873,"publishedAt":842},"Claude開発者プラットフォームの高度なツール利用機能","/advanced-tool-use","https://log.eurekapu.com/og/blog/contextual-retrieval.png?v=2025-12-30T00%3A00%3A00.000Z&title=Contextual%20Retrieval%EF%BC%88%E6%96%87%E8%84%88%E6%A4%9C%E7%B4%A2%EF%BC%89%E3%81%AE%E7%B4%B9%E4%BB%8B&author=Kei%20Komatsu&sig=f2dde383a15cc5c7",1785654699259]