トークン制限と検索数(Top-k)のトレードオフ

RAG(Retrieval-Augmented Generation)における「トークン制限と検索数(Top-k)のトレードオフ」とは、大規模言語モデル(LLM)の入力制限と、より多くの情報を取り込むための検索文書数とのバランス調整に関する課題です。このトレードオフは、RAGの性能と効率性に大きく影響します。


1. トークン制限とは何か

LLM(たとえばGPT系モデル)には最大入力トークン数の制限があります。入力トークンには以下が含まれます:

  • ユーザーのクエリ(質問)

  • 検索で取得された文書(Top-k passages)

  • 特定のプロンプトやフォーマット指示

たとえば、あるモデルが「4096トークン」の入力制限を持つ場合、それを超える入力はカットされるか、エラーとなります。


2. Top-k(検索数)とは何か

Retrieverはクエリに対して類似する**上位k件の文書(passages)**を検索して返します。これが「Top-k」と呼ばれるものです。kを大きくすれば多くの情報を取得できますが、その分トークン数を多く消費します。


3. トレードオフの構造

項目 内容
Top-k を増やす より多くの関連情報を取得可能だが、LLMへの入力トークンが増加する
Top-k を減らす 入力トークンを節約できるが、必要な情報が欠落する可能性がある
文書1件あたりのトークン数が多い場合 トークン制限をすぐに圧迫するため、Top-kを少なくする必要がある

つまり、より多くの関連文書(Top-k)をLLMに渡すほど、文脈情報は豊かになるが、トークン制限によって逆に一部の情報が切り捨てられるリスクが高まるという問題があります。


4. 解決・緩和策

このトレードオフをうまく扱うために、以下の手法が使われます:

  • **passageごとに短く要約(Compression RAG)**してトークン数を節約

  • **高スコアの文書のみを抽出(reranking)**して、少数の高精度文書だけを使う

  • 動的Top-k選定:クエリに応じてTop-kを変更

  • chunkingと再構成:文書を短く分割し、重要な部分だけを統合する

  • **長文対応モデル(Long Context LLM)**の使用


5. 実用的な選択

RAGの設計者は以下の問いに答える必要があります:

  • 「より多くの文書を渡すか、より重要な文書を絞って渡すか?」

  • 「文書全体を保持するか、それとも要約するか?」

  • 「生成品質を重視するか、処理速度を重視するか?」

これらを踏まえ、Top-kの設定とトークン消費の最適化は、RAGシステムの性能と実用性に直結する重要な設計判断となります。

生成日:2025/06/07