27届大模型岗面试准备(十三):长上下文与上下文工程——从位置外推到分块策略的完整考点
27届大模型岗面试准备十三长上下文与上下文工程——从位置外推到分块策略的完整考点写在前面上一篇十二我们把 RAG 的完整链路走了一遍其中分块环节埋了一个问题为什么非要把文档切碎直接把整本手册塞进模型不行吗2026 年的模型动辄标称 128K、1M 上下文看起来塞进去已经不是问题。但面试官如果问你上下文窗口 1M 了RAG 是不是可以退休了你要是答是这场面试基本就结束了。长上下文Long Context和上下文工程Context Engineering是这两年面试权重涨得最快的话题之一。它横跨三个层面模型层位置编码怎么外推、系统层KV Cache 怎么扛住百万 token、应用层上下文预算怎么分配、长文本怎么分块。本文按这三层展开最后给一段可直接运行的长文本分块代码。一、先想清楚长上下文到底难在哪很多同学的第一反应是显存不够。对但不全对。长上下文的困难是三个维度叠加的1. 计算与显存的平方/线性增长。自回归注意力对序列长度 n 是 O(n²) 计算KV Cache 是 O(n) 显存。第十篇我们算过一个 7B 模型、4096 序列的 KV Cache 约 2GB把序列拉到 128K单条请求的 KV Cache 就奔着 64GB 去了——比模型权重还大好几倍。2. 位置编码的外推失效。模型在 4K 长度上训练RoPE 的旋转角度只见过 4K 以内的组合。推理时直接跑 32K模型看到的是从没见过的相对位置注意力分布直接崩掉。这就是为什么支持 128K从来不是改一个配置就行的。3. 有效利用率的衰减。这是最容易被忽略、也最容易在面试中出彩的一点模型能读完不代表能用好。Lost in the Middle 现象——关键信息放在长上下文中间位置时召回准确率显著低于放在开头或结尾——说明上下文窗口的标称长度和有效长度是两回事。把这三点讲清楚面试官就知道你不是只会背某某模型支持 1M。二、模型层位置外推的技术谱系第三篇我们讲过 RoPE 的数学原理这里接着往下讲怎么把 4K 训练的模型拉长用。核心思路只有两条路让新位置看起来像旧位置内插或者让模型适应新位置继续训练/调整频率。方法核心思想是否需要微调效果特点代表应用直接外推什么都不做硬跑否超过训练长度后 PPL 爆炸反面教材Position Interpolation (PI)把位置索引线性压缩回训练范围少量微调均匀压缩短程分辨率受损LLaMA 长上下文早期方案NTK-aware 插值高频维度少压、低频维度多压可免微调兼顾短程精度与长程覆盖各开源社区免训练拉长YaRNNTK 分段插值 注意力温度缩放少量微调目前开源侧主流效率高Qwen、DeepSeek 系列ALiBi干脆不用位置嵌入用线性偏置惩罚远距离天然外推外推强但长程建模上限受争议BLOOM、MPT双阶段长训先短后长、调大 RoPE base 继续预训练大量训练效果最好成本最高各家官方长上下文版本面试高频追问NTK-aware 为什么高频少压、低频多压答题抓手RoPE 不同维度的旋转频率不同——高频维度负责编码相邻 token 的精细位置关系压缩它会伤近距离分辨率低频维度负责远距离的粗粒度关系本来就转得慢压缩空间大。这个按频段区别对待的思想借自 NTK神经正切核对高频学习的分析故得名。三、系统层百万 token 的工程账模型能外推了系统还得扛得住。这一层的考点和第十篇推理加速强关联可以串联作答KV Cache 压缩MQA/GQA 从头数上砍第四篇讲过量化 KV Cache 从精度上砍INT8 KV 已是长上下文标配滑动窗口注意力从范围上砍。稀疏注意力不是每个 token 都要看全部历史。StreamingLLM 发现注意力汇聚attention sink现象——保留开头几个 token 最近窗口就能维持流式生成不崩。Prefix Caching多轮对话/多请求共享的长前缀如系统提示、长文档只算一次 KVvLLM 的 RadixAttention 用前缀树管理。这一点在 Agentic 场景尤其重要——B10 讲 Agentic RAG 时提过Agent 每轮都带着几乎相同的长前缀。Chunked Prefill128K 的 prefill 一口气算完会把 decode 请求全部饿死切成小块和 decode 交错调度平衡 TTFT 和 TPOT。一句话总结给面试官长上下文的系统优化本质是围绕 KV Cache 的省压缩、复用前缀缓存、调度chunked prefill三件事。四、应用层上下文工程——把窗口当预算来管理2026 年Prompt 工程这个词在工程圈已经明显让位给上下文工程。区别在哪Prompt 工程琢磨指令怎么写上下文工程琢磨这有限的窗口里到底该放什么、放多少、按什么顺序放。它把上下文当成一种要精打细算的稀缺资源像操作系统管理内存一样管理它。上下文的典型构成与预算分配思路组成部分内容预算特点管理策略系统指令角色、规则、输出格式固定开销常驻尽量精简可用 prefix caching工具定义function schema随工具数线性涨按任务动态挑选工具子集检索内容RAG 召回的文档块弹性最大top-k 截断、重排后按分数分配历史对话/轨迹多轮消息、Agent scratchpad随轮数膨胀滑动窗口 递归摘要B6 讲过少样本示例few-shot 演示边际收益递减强模型可减弱模型保留 2–3 个用户输入当前问题不可压缩保持原样这张表背后的三条工程原则值得在面试里主动说出来相关性优先于完整性塞进 10 万 token 的可能相关不如 5 千 token 的高度相关Lost in the Middle 会惩罚前者。位置即权重关键信息放开头或结尾检索结果按重要性做两头高、中间低的排布是常见 trick。压缩是常态操作摘要、去重、截断不是退而求其次而是常规手段——窗口再大注意力预算和成本预算也是有限的。长上下文 vs RAG 不是二选一。标准答法长上下文解决单次能看多少RAG 解决从海量知识里挑什么给它看。知识库是 TB 级的1M 窗口也塞不下而且全量塞入的推理成本prefill 计算 KV 显存比检索后精准投喂高一到两个数量级。真实系统是RAG 负责粗筛 长上下文负责细读的配合关系。五、代码实战三种长文本分块策略的实现与对比分块chunking是上下文工程最基础也最容易被问你实际怎么做的环节。下面用纯标准库实现三种策略固定长度切分、句子边界切分、滑动窗口重叠切分并对比它们在语义完整性上的差异。可直接python chunking.py运行。# -*- coding: utf-8 -*- 三种长文本分块策略固定长度 / 句子边界 / 滑动窗口重叠纯标准库可运行 import re def chunk_fixed(text: str, size: int 100) - list[str]: 策略1固定长度硬切。实现最简单但会把句子拦腰斩断。 return [text[i:i size] for i in range(0, len(text), size)] def chunk_by_sentence(text: str, max_size: int 100) - list[str]: 策略2先按句子边界切再贪心合并到不超过 max_size。 保证每个 chunk 都由完整句子组成语义不被截断。 sentences [s for s in re.split(r(?[。\n]), text) if s.strip()] chunks, buf [], for sent in sentences: if len(buf) len(sent) max_size: buf sent else: if buf: chunks.append(buf) # 单句超长时退化为硬切 buf sent if len(sent) max_size else if len(sent) max_size: chunks.extend(chunk_fixed(sent, max_size)) if buf: chunks.append(buf) return chunks def chunk_sliding(text: str, size: int 100, overlap: int 20) - list[str]: 策略3滑动窗口重叠切分。相邻 chunk 共享 overlap 字符 缓解答案恰好跨在切点上的边界丢失问题代价是索引膨胀。 assert 0 overlap size, overlap 必须小于 size step size - overlap return [text[i:i size] for i in range(0, max(len(text) - overlap, 1), step)] def boundary_break_rate(chunks: list[str]) - float: 度量不以句末标点结尾的 chunk 占比越低说明语义越完整。 bad sum(1 for c in chunks if c and c[-1] not in 。\n) return bad / max(len(chunks), 1) if __name__ __main__: doc ( 长上下文不等于无限上下文。窗口越大注意力越稀释成本越高。 上下文工程的目标是让每个 token 都物有所值。分块是其中最基础的操作。 固定切分实现简单却常把句子拦腰斩断导致检索命中后语义残缺。 句子边界切分尊重语义单元是多数生产系统的默认选择。 滑动窗口用冗余换鲁棒适合答案常跨越切点的问答场景。 实践中还会叠加父子分块小块负责精准检索大块负责提供上下文。 ) * 3 strategies { 固定长度: chunk_fixed(doc, 100), 句子边界: chunk_by_sentence(doc, 100), 滑动窗口: chunk_sliding(doc, 100, 20), } print(f原文长度: {len(doc)} 字\n) print(f{策略:8}{块数:4}{平均块长:8}{断句率:8}) for name, chunks in strategies.items(): avg sum(map(len, chunks)) / len(chunks) print(f{name:8}{len(chunks):4}{avg:8.1f}{boundary_break_rate(chunks):8.0%}) print(\n句子边界切分示例第1块:) print( , strategies[句子边界][0])运行后能直观看到固定长度切分的断句率接近 100%几乎每块都切断句子句子边界切分为 0%滑动窗口介于两者之间但对跨切点信息更鲁棒。面试时如果能主动补一句生产里我会在句子切分之上再做父子分块——检索用小块保精度喂给模型用父块保上下文就把 A12 的内容也串起来了。六、高频面试题与答题要点上下文窗口 1MRAG 还有必要吗—— 有。知识库规模 窗口全量塞入成本高一到两个数量级Lost in the Middle 让有效利用率打折。RAG 与长上下文是粗筛与细读的配合。模型标称 128K怎么验证它真的可用—— 大海捞针NIAH测不同深度的召回率但要指出 NIAH 偏简单进阶用 RULER/LongBench 这类含多跳、聚合任务的基准同时压测 128K 下的 TTFT 和显存。YaRN 和 PI 的区别—— PI 均匀线性内插伤高频YaRN 按维度频率分段处理 注意力温度补偿同等微调量下长短程质量更均衡。Agent 跑几十轮后上下文爆了怎么办—— 滑动窗口 递归摘要 关键事实外置到长期记忆向量库即 B6 的三层记忆架构工具返回值做截断与结构化压缩。小结长上下文是模型外推 系统扛量 应用会用三层问题的交集位置编码决定能不能读KV Cache 工程决定扛不扛得住上下文工程决定用得好不好。把标称长度 ≠ 有效长度和窗口是预算不是仓库这两个观念讲透这个话题你就立住了。下一篇十四进入多模态大模型 VLM——当上下文里不只有文字还有图像时问题又升了一个维度。

相关新闻

5分钟搞定NCM格式转换!Windows上最便捷的音乐解密工具ncmdumpGUI使用指南

5分钟搞定NCM格式转换!Windows上最便捷的音乐解密工具ncmdumpGUI使用指南

5分钟搞定NCM格式转换!Windows上最便捷的音乐解密工具ncmdumpGUI使用指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐下载的N…

2026/8/1 10:34:50 阅读更多 →
卡片式轮播图

卡片式轮播图

是基于uniappvue3的总结一下,上述的卡片式轮播图,就两个重点 一是 previous-margin"100rpx" next-margin"100rpx";用于控制图片的显示; 二是 判断 :class"{card-item-active: currentIndex in…

2026/8/1 10:34:50 阅读更多 →
GHelper终极指南:华硕笔记本性能调校的轻量级革命

GHelper终极指南:华硕笔记本性能调校的轻量级革命

GHelper终极指南:华硕笔记本性能调校的轻量级革命 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expert…

2026/8/1 10:34:50 阅读更多 →

最新新闻

纯视觉原生,全天候感知:镜像孪生+空间智能激活应急救援新质生产力

纯视觉原生,全天候感知:镜像孪生+空间智能激活应急救援新质生产力

纯视觉原生,全天候感知:镜像孪生空间智能激活应急救援新质生产力前言城市洪涝、山体滑坡、工矿坍塌、密闭空间险情、低空突发灾害等应急救援场景持续高频化,传统应急指挥体系依托定点雷达、有线传感、静态BIM模型搭建态势感知框架&#xff0c…

2026/8/1 11:25:03 阅读更多 →
影刀RPA模拟操作vs接口操作:两种方式的利弊与选择

影刀RPA模拟操作vs接口操作:两种方式的利弊与选择

影刀RPA模拟操作 vs 接口操作:两种方式的利弊与选择 作者:林焱 | 适合人群:不确定该用浏览器操作还是HTTP请求的新手 什么情况用什么 影刀RPA有两种获取数据的方式: 模拟操作:打开浏览器,像人一样点击、滚…

2026/8/1 11:25:03 阅读更多 →
FastAPI与Flask性能对比:异步框架为何在特定场景下反而不如同步?

FastAPI与Flask性能对比:异步框架为何在特定场景下反而不如同步?

1. 一个反直觉的性能测试结果 最近在几个技术社区和群里,看到不少关于FastAPI和Flask性能对比的讨论,风向几乎是一边倒:FastAPI凭借其异步特性,性能碾压Flask。很多文章和教程都在强调,对于需要高并发的API服务&#x…

2026/8/1 11:25:03 阅读更多 →
目标分解与执行:从第一步到千里之外的技术实践

目标分解与执行:从第一步到千里之外的技术实践

1. 从第一步开始的哲学思考 "千里之行,始于足下"这句古语最早出自《老子》第六十四章,原文是"合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下"。这句话揭示了一个…

2026/8/1 11:25:03 阅读更多 →
深入解析STM32定时器CCER寄存器:从OCREF输出原理到PWM实战配置

深入解析STM32定时器CCER寄存器:从OCREF输出原理到PWM实战配置

1. 项目概述:从寄存器层面理解TIM的OCREF输出 如果你正在用STM32的定时器做PWM输出、单脉冲或者精确的脉冲计数,那你大概率绕不开 TIMx->CCER 这个寄存器。很多教程和CubeMX配置会帮你生成初始化代码,但当你需要动态调整输出极性、快速使…

2026/8/1 11:25:03 阅读更多 →
TranslucentTB启动问题终极指南:从VCLibs缺失到透明任务栏的完整解决方案

TranslucentTB启动问题终极指南:从VCLibs缺失到透明任务栏的完整解决方案

TranslucentTB启动问题终极指南:从VCLibs缺失到透明任务栏的完整解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Tra…

2026/8/1 11:24:03 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/8/1 10:33:33 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →