一个 128K 上下文的模型做 RAG 客服问答。检索器对每个 query 返回 40 个 chunk,每 chunk 约 500 token;系统提示 5K token,期望输出约 300 token。当前做法是全部塞进上下文:线上 P99 延迟 9s,成本偏高,人工抽查还发现答案经常引用中间位置的一段无关内容。你会优先动哪里——扩上下文、精简检索、还是改 prompt 结构?给出判断依据和量化口径。
面试官在考什么
考察候选人是否理解「窗口大 ≠ 有效利用」,能否拆开 prefill 与 decode 的延迟/成本来源,并按代价从低到高排序优化动作。
回答框架 · 前两步
- 先承认核心事实:长上下文不等于有效利用。关键信息在开头和结尾被利用得最好,中间位置容易丢失,所以「40 个 chunk 全塞进去」既贵又可能更差。
- 拆成本与延迟:prefill 随输入 token 近似线性增长(注意力项是二次),decode 随输出 token 线性增长且每步都要读 KV cache。输入从约 25K 降到约 5K 主要省 prefill 时间和显存,但输出不变时 decode 那部分省不掉。
还有 3 条答案要点、 3 层追问、 6 个常见坑, 以及针对你简历的追问路径,在定制报告里。
延伸阅读
想看这个方向的整体准备路线? 进入「NLP 与大模型」方向页
同一能力域的其他题
- 微调一个大模型时,LoRA 相比全参微调省在哪里?rank 怎么选?为什么它可以在推理时合并回原权重?
- 请说明 SFT、RLHF、DPO 各自解决什么问题。为什么有了 RLHF 还要提 DPO?
- 长文本场景下,上下文窗口装不下时你会怎么办?请对比"截断、分块递归总结、检索"三种方案的代价。
- 你要用大模型做一个每天数百万次调用的线上功能,成本和延迟怎么压?请给出你的优化优先级。
- 一个 32 层 decoder-only 模型,hidden_size=4096,attention head 数 32,KV head 数 8(即 GQA),FP16 推理。现在 batch_size=4、序列长度 8192。请算出 KV cache 占多少显存;如果把 GQA 换成 MHA(32 个 KV head),显存变成多少;并解释为什么现在的模型普遍用 Pre-LN + RMSNorm,而不是原始论文的 Post-LN + LayerNorm。
- 一个 7B 稠密模型,预训练上下文 4K,现在要支持 32K 推理。模型结构:32 层、32 个注意力头、head_dim=128。服务端 8×A100 80G,batch size 固定 16,FP16 权重 + FP16 KV cache。两个问题:(1) 注意力从 MHA 换成 GQA(8 个 KV 头)前后,32K 上下文下单批 KV cache 各是多少?(2) 4K→32K 的位置外推你会选哪种方案,代价是什么?