Why Large Language Models Miss Information
Listen to the summary
Uses a voice available on your device
Audio options
On this page 5 sections
Related concepts 2 concepts
Key Takeaways
- Models suffer from a retrieval integration gap where information is retrieved accurately but ignored in final decision making.
- For the primary 9B parameter model, the influence of disclosure on sell decisions drops to noise levels after 32,000 tokens.
- Targeted, structured restatement workflows successfully restore decision influence to 8.5 percentage points at 128,000 tokens.
- Retrieval remains highly accurate even when the model fails to incorporate the retrieved facts into its judgment.
Summary & Methodology Analysis
The researchers investigate why models struggle to maintain influence from context as document length increases. Using the 9B Qwen3.5 model as a workhorse, they tested how disclosure affects investment decisions across various token lengths. They found that while retrieval is perfect at 128,000 tokens for all twelve firms, the model's decision influence significantly decays. Specifically, a disclosure that increases sell probability by 3.2 percentage points in a 2,000 token context becomes indistinguishable from noise by 32,000 tokens. This suggests that the internal representation layer fails to pass context forward into the judgment, rather than a failure of recall.
Interactive System Flowchart
Illustrative Implementation
A short sketch of the paper's core idea, not the authors' own code.
# Illustrative sketch (not from the paper)
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# Load the primary 9B Qwen3.5 model (open-weight)
model_name = "Qwen3.5-9B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16)
model.eval()
# Core disclosure (e.g., covenant threshold) – kept constant across experiments
disclosure = "The firm must maintain a debt‑to‑EBITDA ratio below 3.0."
# Context lengths examined in the paper
context_lengths = [2000, 8000, 32000, 128000]
for ctx_len in context_lengths:
# Generate genre‑matched filler (placeholder – actual filler is unrelated text)
filler = "[FILLER] " * (ctx_len // 10) # rough token approximation
# Build two documents: with disclosure and with neutral replacement
doc_with = filler + "\n" + disclosure
doc_neutral = filler + "\n" + "[NEUTRAL PARAGRAPH]"
# Tokenize
inputs_with = tokenizer(doc_with, return_tensors="pt")
inputs_neutral = tokenizer(doc_neutral, return_tensors="pt")
# Get model logits for a decision prompt (e.g., "Should we sell? Yes/No")
decision_prompt = "Based on the filing, should we sell the stock? Answer with Yes or No."
with torch.no_grad():
out_with = model.generate(**inputs_with, max_new_tokens=10, do_sample=False, eos_token_id=tokenizer.eos_token_id)
out_neutral = model.generate(**inputs_neutral, max_new_tokens=10, do_sample=False, eos_token_id=tokenizer.eos_token_id)
# Simple probability extraction (placeholder)
prob_sell_with = out_with[0].float().mean().item() # mock probability
prob_sell_neutral = out_neutral[0].float().mean().item()
influence = prob_sell_with - prob_sell_neutral
print(f"Context {ctx_len} tokens – decision influence: {influence:.3f}")
# Retrieval check – ask model to recall the disclosure directly
retrieval_q = "What is the covenant threshold mentioned in the filing?"
retrieval_input = tokenizer(doc_with + "\n" + retrieval_q, return_tensors="pt")
retrieval_out = model.generate(**retrieval_input, max_new_tokens=20, do_sample=False)
retrieved_text = tokenizer.decode(retrieval_out[0])
retrieved = disclosure in retrieved_text
print(f"Retrieval success at {ctx_len} tokens: {retrieved}")
# Targeted workflow: place a structured restatement adjacent to the decision prompt
restated = f"COVENANT: debt‑to‑EBITDA < 3.0.\n{decision_prompt}"
inputs_targeted = tokenizer(restated, return_tensors="pt")
with torch.no_grad():
out_targeted = model.generate(**inputs_targeted, max_new_tokens=10, do_sample=False)
prob_targeted = out_targeted[0].float().mean().item()
print(f"Targeted workflow influence (128k tokens) – mock value: {prob_targeted:.3f}")// Illustrative sketch (not from the paper)
const { AutoTokenizer, AutoModelForCausalLM } = require('@xenova/transformers');
(async () => {
// Load the primary 9B Qwen3.5 model (open-weight)
const modelName = 'Qwen3.5-9B';
const tokenizer = await AutoTokenizer.from_pretrained(modelName);
const model = await AutoModelForCausalLM.from_pretrained(modelName);
// Core disclosure – constant across experiments
const disclosure = 'The firm must maintain a debt‑to‑EBITDA ratio below 3.0.';
// Context lengths examined in the paper
const contextLengths = [2000, 8000, 32000, 128000];
for (const ctxLen of contextLengths) {
// Generate genre‑matched filler (placeholder – actual filler is unrelated text)
const filler = '[FILLER] '.repeat(Math.floor(ctxLen / 10)); // rough token approximation
const docWith = `${filler}\n${disclosure}`;
const docNeutral = `${filler}\n[NEUTRAL PARAGRAPH]`;
// Tokenize documents
const inputsWith = await tokenizer(docWith, { returnTensors: 'pt' });
const inputsNeutral = await tokenizer(docNeutral, { returnTensors: 'pt' });
// Decision prompt
const decisionPrompt = 'Based on the filing, should we sell the stock? Answer Yes or No.';
// Generate model outputs (mock – actual generation API may differ)
const outWith = await model.generate({ ...inputsWith, max_new_tokens: 10, do_sample: false });
const outNeutral = await model.generate({ ...inputsNeutral, max_new_tokens: 10, do_sample: false });
// Mock probability extraction (using mean of logits as placeholder)
const probSellWith = outWith.logits.mean().dataSync()[0];
const probSellNeutral = outNeutral.logits.mean().dataSync()[0];
const influence = probSellWith - probSellNeutral;
console.log(`Context ${ctxLen} tokens – decision influence: ${influence.toFixed(3)}`);
// Retrieval check – ask model to recall the disclosure directly
const retrievalQ = 'What is the covenant threshold mentioned in the filing?';
const retrievalInput = await tokenizer(`${docWith}\n${retrievalQ}`, { returnTensors: 'pt' });
const retrievalOut = await model.generate({ ...retrievalInput, max_new_tokens: 20, do_sample: false });
const retrievedText = tokenizer.decode(retrievalOut.sequences[0]);
const retrieved = retrievedText.includes(disclosure);
console.log(`Retrieval success at ${ctxLen} tokens: ${retrieved}`);
}
// Targeted workflow: structured restatement adjacent to decision prompt
const restated = `COVENANT: debt‑to‑EBITDA < 3.0.\nBased on the filing, should we sell the stock? Answer Yes or No.`;
const inputsTargeted = await tokenizer(restated, { returnTensors: 'pt' });
const outTargeted = await model.generate({ ...inputsTargeted, max_new_tokens: 10, do_sample: false });
const probTargeted = outTargeted.logits.mean().dataSync()[0];
console.log(`Targeted workflow influence (128k tokens) – mock value: ${probTargeted.toFixed(3)}`);
})();
Cross-Examination & FAQs
A deeper dive clarifying mechanics, constraints, and baseline evaluations.
Q1. What is the core problem explored in this paper?
The paper examines the retrieval integration gap where AI models can find specific information in long financial documents but fail to use that information in their final judgments.
Q2. Does context length affect model performance?
Yes, as context length increases, the model's ability to act on retrieved information significantly decreases, even if its ability to find that information remains stable.
Q3. Can this gap be fixed?
Yes, using a targeted, structured restatement workflow can restore the model's decision influence on the disclosed information.
Q4. What models were tested in this study?
The study utilized Qwen3.5 (9B parameter model) as the primary engine, along with Llama-3.1-8B, gemma-4-12B, and Gemini 3.1 Flash-Lite.
Q5. Does retrieval accuracy decline at high token counts?
No, retrieval accuracy remains high for the primary 9B model at 128,000 tokens.
Q6. How much does the restatement workflow improve performance?
It raises the disclosure's influence to 8.5 percentage points at 128,000 tokens.
Q7. Does the paper address human trust in these AI systems?
No, the study focuses on AI processors and explicitly does not address human cognition, user trust, or decision override behavior.
Q8. Is the retrieval integration gap specific to one model architecture?
No, the paper confirms the gap exists across different model families, including Llama-3.1-8B and gemma-4-12B.
Q9. What is the baseline for measuring decision influence?
Decision influence is measured as the difference in sell probability between a document containing a disclosure and one with an equal length neutral replacement.