← 返回 AI 基础 首页 / 算法与AI / AI 新技术 · 长上下文
AI 新技术 · 第 3 章

长上下文:把整本书、整个代码库一次喂给 AI

以前大模型像个鱼的记忆——你跟它聊几句就"忘"了开头,因为它一次只能看几千字。现在的模型号称100 万、200 万 token 上下文,能一口气吞下一整本书、整个代码库,然后你随便问。这一课讲:它怎么"记住"这么长,又为什么"看得多≠看得准"。

⓪ 本章怎么学(约 40 分钟)

1窗口概念(8 分钟)
读①:窗口越大装得越多。
2概念表(10 分钟)
读②:RoPE、YaRN、Ring Attention。
3看例子+防坑(12 分钟)
读③④,记迷失中间与成本。
4自测+复述(10 分钟)
做⑤⑥,费曼三问讲一遍。
本章小目标学完你要能:说清上下文窗口是什么、RoPE 外推在调什么、什么是"迷失中间"、以及长上下文为什么不能替代 RAG。

① 一句话搞懂:窗口在变大

上下文窗口(context window)就是模型一次能"同时看到"的文字总量。早期是 4K、8K token,现在主流 128K 起步,旗舰做到 1M~2M。

窗口大小大约能装下能干什么
4K~8K几页文档短问答、写小段代码
128K一本中等长度的书整本书问答、长文档分析
1M~2M整个代码库 / 几百本书跨文件改代码、长项目记忆
核心直觉窗口大了,不代表你真要把所有东西都塞进去。窗口只是"工作台大小",台上东西太多,模型照样会看漏中间那段。

② 关键概念表

名词大白话
位置编码 RoPE告诉模型"这个字在第几个位置"的坐标
外推 / YaRN训练时只见过 4K,靠技巧让它看懂 128K
Ring Attention超长文本分片算,像传戒指一样绕着算,省显存
"迷失中间"两头的内容记得清,正中间的反而容易漏

怎么把窗口做大的

模型靠位置编码知道每个词的先后顺序。原始 RoPE 只在短文本上训过,直接拉长会"认不出位置"。YaNR / RoPE 缩放就是把坐标"按比例压缩",让模型把没见过的超长位置,当成它熟悉的短位置来理解,这叫外推。

③ 三个例子

例 1 · 整本书问答
把一本 30 万字的小说整本喂进去。
你问"第 3 章里那个人后来怎么了",它能跨前后几百页找到伏笔并回答——不用你手动翻、不用 RAG 切片。
例 2 · 跨文件改代码
整个微服务代码库(几十万个 token)一次性给它。
你说"把这个字段从 int 改成 string",它能同时看到定义文件、调用处、测试用例,一次性把所有相关地方改对。
例 3 · "迷失中间"翻车现场
在 100 万 token 的开头和结尾各埋一个小线索。
模型很容易找到首尾的线索,却漏掉藏在正中间的那一条。这就是长上下文的软肋——别全信"它都看到了"。

④ 防坑提醒

坑 1:以为窗口大就不用 RAG 了不对。窗口大≠免费——塞得越长,越贵、越慢,还会"迷失中间"。精准检索(RAG)把相关片段捞出来,又省又准,二者是配合关系。
坑 2:以为标称 1M 就真能用上 1M很多模型标称上限很高,但在超长上下文里准确率会断崖式下降。关键结论仍要靠 RAG 兜底。
坑 3:忽略成本长上下文是按 token 计费的,一次喂 100 万 token 问一个小问题,账单会很难看。按需喂,别炫富。

⑤ 折叠自测(点开即答)

基础1上下文窗口是什么?
模型一次能同时看到的文字总量(token 数)。窗口越大,一次能处理的文档/代码越多。
中档2RoPE 外推(如 YaRN)解决什么问题?
模型训练时只见过短文本,位置编码"认不出"更长的位置。YaRN 等技巧把位置坐标按比例缩放,让它能"外推"到几倍长的上下文。
拔高3为什么有了长上下文,RAG 还没被淘汰?
因为① 越长越贵越慢;② 会"迷失中间",正中间信息容易漏;③ RAG 只捞相关片段,信噪比更高。实战是"长上下文 + RAG"配合,而非二选一。

⑥ 费曼三问(合上讲,自己讲给自己听)

用大白话回答,讲不顺就是没懂
问 1:把整本书喂进去,模型为什么还可能漏看中间某句话?
问 2:RoPE 外推到底在"调"什么,让模型看懂更长的文本?
问 3:什么场景该直接上长上下文,什么场景该用 RAG?
上下文窗口:一次能同时看到的 token 总量 工作台大小
RoPE / YaRN:位置编码外推,短训变长用 坐标缩放
Ring Attention:分片绕算,省显存跑超长 戒指传递
迷失中间:首尾清楚、中间易漏 别全信
与 RAG 关系:配合而非替代,又省又准 按需喂

🛠 实战场景:整本书喂,还是先 RAG

任务建议原因
读完一整本书写读后感长上下文需要全局呼应
在 100 页报告里找一个条款RAG精准检索更省更准
跨整个代码库改字段名长上下文要看全调用链
客服知识库问答RAG只捞相关片段
总结会议纪要长上下文一次性吞下录音转写

经验法则:要全局理解就长上下文,要精准定位就 RAG,实战常常两个一起上。

🧪 生活联想

1书桌
窗口大小像书桌面积,桌面越大摊的书越多。
2找东西
桌上堆满一屋子书,中间那本反而难找——这就是迷失中间。
3效率
与其把书全摊开,不如先索引定位(RAG),再翻到那几页。
对照自己下次长文档问答,先想清楚:是整本喂进去,还是先 RAG 搜相关段落?后者又省又准。

📖 名词速查

名词大白话
上下文窗口一次能同时看到的 token 总量
RoPE旋转位置编码,告诉模型词的先后顺序
YaRN对 RoPE 做缩放,让短训模型看懂超长文本
外推把训练没见过的长位置当成熟悉的短位置理解
Ring Attention把长文本分片绕着算,省显存
迷失中间首尾清楚、正中间信息容易漏

⚡ 高频 FAQ

问:窗口是不是越大越好?不是。越大越贵越慢,还会"迷失中间"。够用就好,配合 RAG 更划算。
问:为什么我标称 1M 的模型中间问题答不对?超长上下文里准确率会下降,尤其是中间位置。关键结论仍要用 RAG 兜底。
问:长上下文和 RAG 冲突吗?不冲突,是配合:长窗口看全局,RAG 精准捞相关片段,二者一起用效果最好。

🔁 5 天复习计划

天任务自检
第 1 天读①②,理清窗口与位置编码说清 RoPE 作用
第 2 天读③④,跟一遍三个例子讲清迷失中间
第 3 天做⑤折叠自测三题全对
第 4 天读⑥费曼三问,不看资料讲能举例
第 5 天名词速查 + 口诀默写脱稿说清长上下文 vs RAG
三句口诀① 窗口是工作台,不是越大越好;② RoPE 外推靠位置缩放;③ 长窗口配 RAG,又省又准。

📌 知识链路

前置知识先懂 token 和上下文窗口的基本概念,再理解怎么把它做到 1M。
本节位置给模型加长记忆:能一次吞下整本书、整个代码库。
下一步接着看 AI 编程,理解长上下文怎么帮它跨文件改代码。
← 上一章 · 原生多模态 返回 AI 基础总览