Efficient Context Selection for Long-Context QA: No Tuning, No Iteration, Just Adaptive-k

Chihiro Taguchi, Seiji Maekawa, Nikita Bhutani
6/10/2025
cs.CLcs.AIcs.IR

No official code found. Best implementation: megagonlabs/adaptive-k-retrieval (10 stars, BSD-3-Clause, last commit 2025-09-15).

Abstract

Retrieval-augmented generation (RAG) and long-context language models (LCLMs) both address context limitations of LLMs in open-domain question answering (QA). However, optimal external context to retrieve remains an open problem: fixing the retrieval size risks either wasting tokens or omitting key evidence. Existing adaptive methods like Self-RAG and Self-Route rely on iterative LLM prompting and perform well on factoid QA, but struggle with aggregation QA, where the optimal context size is both unknown and variable. We present Adaptive-$k$ retrieval, a simple and effective single-pass method that adaptively selects the number of passages based on the distribution of the similarity scores between the query and the candidate passages. It does not require model fine-tuning, extra LLM inferences or changes to existing retriever-reader pipelines. On both factoid and aggregation QA benchmarks, Adaptive-$k$ matches or outperforms fixed-$k$ baselines while using up to 10x fewer tokens than full-context input, yet still retrieves 70% of relevant passages. It improves accuracy across five LCLMs and two embedding models, highlighting that dynamically adjusting context size leads to more efficient and accurate QA.

View on arXivView PDF

Code Implementations(1)

BSD-3-Clause

Code for Efficient Context Selection for Long-Context QA: No Tuning, No Iteration, Just Adaptive-k (Chihiro Taguchi, Seiji Maekawa, Nikita Bhutani; EMNLP 2025)

100Shell, PythonSep 15, 20251 years agoBSD-3-Clause

Similar Papers

Cite this paper

@article{taguchi2025efficient,
  title  = {Efficient Context Selection for Long-Context QA: No Tuning, No Iteration, Just Adaptive-k},
  author = {Chihiro Taguchi and Seiji Maekawa and Nikita Bhutani},
  year   = {2025},
  eprint = {2506.08479},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2506.08479v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2506.08479.svg)](https://codeofpaper.com/paper/2506.08479)

Discussion