Day 6 · 上下文窗口:AI 的记忆边界
AI 的记忆力,是一块写满就要擦的黑板
前五天你知道了 AI 怎么接龙、怎么打分、怎么训练。今天回答一个每个人用 AI 时都撞见过的问题:为什么聊着聊着,它就把开头说过的事忘了?答案藏在它的「记忆边界」里——上下文窗口。
学完你能回答
窗口外的内容,AI 真的「看」不到吗?
学完你能回答
K3 的 100 万 token 窗口,是什么概念?
1起点:这些你早就会了
「记忆有边界」这件事,你的生活经验里全是例子。先把它们和 AI 的世界对上桌:
| 你已经会的 | AI 世界里对应的东西 |
| 相机取景框:框外的景物不会出现在照片里 | 上下文窗口:窗口外的 token 不参与任何一次打分——对 AI 来说等于不存在 |
| 讲台黑板写满了,老师擦掉最旧的板书 | 窗口装满后,最早的 token 被挤出窗口,新内容才能进来 |
| 考试带了小抄,但抄得太多反而找不到重点 | 窗口里的内容「看得见」≠「全用上」——塞得越多,单个内容被注意到的机会越小 |
| 读书时开头和结尾印象最深,中间章节容易记混 | 长文中间位置的内容,最容易被 AI「看漏」 |
| 停车场按小时计费,停越久交越多 | 窗口越长,打分的次数和成本跟着涨——长窗口不是免费的 |
| 人的短期记忆:刚才的电话号码,转身就忘 | AI 没有跨对话的长期记忆,窗口就是它全部的「当下」 |
今天的主线只有一条:把「窗口」这块黑板的脾气摸清楚——它多大、怎么擦、擦掉了会怎样、加大一号要付什么代价。
2什么是上下文窗口:一次能「看见」的 token 数
Day 1 说过,AI 接龙的每一步都是「看着前面已说的内容,给下一个 token 打分」。问题是:「前面」到底能往前看多远?答案是:看模型允许看多长,就叫多长。这个长度上限,专业名词叫上下文窗口(context window)——AI 一次能「看见」的 token 数。
- 窗口内:这些 token 参与每一次打分,是 AI 决策的全部依据。
- 窗口外:再早的内容不是「被忘掉」,而是根本不存在——不会被读入,不参与计算,没有任何痕迹。
而且窗口是「滑动」的:对话每多一个 token,窗口就往前挪一格,最旧的那个被挤出去。所以你跟 AI 聊了三小时,它「忘了」你开头交代的要求——不是它不专心,是那段话真的掉出窗口了。
图 1 · 滑动的窗口:灰色的 token 1–5 已经掉出窗口,对 AI 来说等于没说过;蓝色的 6–12 才是它此刻的全部「所见」。对话继续,窗口整体右移——AI 的记忆不是变差了,是这块板子本来就只有这么大。
记住这个词
上下文窗口(context window):AI 接龙时能「回头看」的 token 数上限。你以后在任何 AI 文章里看到「8K」「256K」「1M 上下文」,说的就是这块板子的大小——K3 是 100 万 token,§6 细说。
进阶小注 ·技术上,窗口外的 token 根本不会被拼进模型的输入序列——不是「读了没记住」,是压根没参与计算。论文里常见的序列长度(sequence length)一词,说的就是这个窗口的容量;知道这个词即可。
3核心类比:讲台上的黑板
把 AI 想象成一位讲课的老师,上下文窗口就是它讲台上的那块黑板:
核心类比
① 看得见的才能用:老师讲课时只能引用黑板上的内容——板上没有的,等于这节课没讲过。② 板面大小固定:想写新内容,就得擦掉旧的。③ 擦的是最早的:黑板从左上角写起,写满了,最先被擦掉的永远是最早写下的那几行。
图 2 · 黑板就是窗口:板上的字 = 窗口内的 token,擦掉的那行 = 掉出窗口的旧内容。AI 的「记性」不藏在脑子深处,就摊在这块板子上——板上有的才有,板上没的就没。
严格来说(类比的边界):真实模型里没有一位「擦黑板的人」——掉出窗口的旧 token 是直接不参与任何一次打分,不是被压缩、被转移、被藏到别处。另外记住 Day 1 的规矩:AI 接龙时只能回头看——每个新 token 参照的是它之前的窗口内容,绝不会看到「未来」。黑板类比的唯一出入是:真黑板擦掉了还有粉笔灰,AI 的窗口外连灰都没有。
4「看得见」≠「全记住」
到这里你可能想:那把窗口做大不就行了?先别急——窗口内的内容,AI 也不是逐条都「用上」的。回到黑板类比:板上写满了字,可学生在考场上最能想起来的,往往是刚写的那几行和开头写标题的那几行,中间密密麻麻的那一大片,最容易被看漏。
AI 也一样。你把一篇长文塞进窗口,问它一个答案藏在中间章节的问题,它答错的概率明显比答案在开头、结尾时高。这不违反「窗口内都参与打分」——都在打分,但每个 token 能分到的「注意力」是有限的:窗口里挤的东西越多,摊到每一件上的就越薄。看得多,不等于记得住。
图 3 · U 形的「记性曲线」(示意):长文开头和结尾的内容,AI 通常用得最好;埋在中间的容易被忽略。所以「在窗口里」只是入场券,「被真正用上」还要看位置和内容。
埋个钩子:「窗口大」和「记得牢」是两件事。K3 的报告里也专门强调了这一点(§8 今天就会读到原句)。至于模型工程师怎么跟这条 U 形曲线较劲——那是第 3 周的故事。
5窗口越长越贵:今天先记住方向
窗口为什么不能想开多大开多大?因为注意力是要花钱的。回忆 Day 1 的「打分」:每接一个新 token,都要参照窗口里已有的内容来打分——窗口越长,每个 token 要参照的内容就越多,打分的次数跟着涨。
直觉账这么算:窗口从 1 万 token 扩到 100 万 token,长度涨了 100 倍,但打分的「工作量」涨得比 100 倍还猛——因为不但每个 token 要看的对象变多了,要这么干的 token 数量本身也变多了。两头一乘,账就大了。具体猛到什么程度(是个平方关系),以及 K3 用什么设计把这笔账省下来——那是第 3 周(Day 17)的硬菜,今天你只要把方向刻进脑子:
今天的方向感
窗口翻倍,成本不止翻倍。长窗口是奢侈品,不是标配——这直接决定了第 7 节那道面试题该怎么答。
进阶小注 ·朴素注意力的打分组合随窗口长度 L 呈平方增长,写作 O(L²)(知道这个说法即可)。把这条平方曲线压平,是后来一大批设计的出发点,第 3 周逐个拆。
6K3 的 100 万 token,是什么概念?
前面几天反复出现的那个数字,今天正式感受一下。K3 的上下文窗口是 100 万 token。用 Day 2 的换算纪律——约 1 个汉字 ≈ 0.7–1 token——100 万 token 大致能装下一整部《红楼梦》还有富余。也就是说,你可以把整部书一次性倒进对话框,再就任何一个回目提问,而不用切片、不用分段喂。
但比数字本身更重要的是:这个窗口是「训练」出来的,不是改个参数就有的。K3 不是一上来就拿 100 万 token 练,而是分四个阶段逐步把窗口拉长——具体怎么练、为什么要合成特殊的长文数据,Day 23 讲透。今天只记住一句:长窗口是一种能力,得练;不是一种设置,拧一下就有。
顺带澄清一个常见误会:窗口大 ≠ 模型变聪明。窗口决定的是 AI「一次能看到多少材料」,聪明程度另有来源(参数量、训练——Day 5 和后面几周的事)。把整本《红楼梦》摆在一个差生面前,他该答不上还是答不上。
7面试视角:窗口是越大越好吗?
「上下文窗口」是面试里检验候选人是背参数还是懂权衡的经典考点。在长上下文话题里,这是一道经典高频考题:
面试视角
面试官可能会问:「现在模型的上下文窗口越做越长,上下文窗口是不是越大越好?」
八股答「是的,越大越好。窗口越大,模型能处理的文档就越长,能力就越强,所以选模型主要看窗口大小。」——只有结论没有理由,还把「窗口大」和「能力强」混为一谈,是明显的减分项。
本课答「不一定,要算三笔账。第一是成本账:每个 token 都要参照窗口内的内容打分,窗口变长,计算量涨得比长度还快,训练和推理都更贵更难——K3 的 100 万窗口是分四个阶段专门训练出来的,不是改个参数就有。第二是效果账:看得见不等于记得住,窗口越长注意力摊得越薄,长文中间的内容容易被忽略,所以『窗口大』和『记得牢』要分开评估。第三是需求账:该问的不是『窗口多大』,而是『我的任务需要多长、模型在这个长度的中后段还记不记得牢』。」
注意本课答的结构:不直接说「好」或「不好」,而是拆成成本、效果、需求三笔账——这正是面试官想听的「带为什么」的回答。
8映射到 K3:100 万窗口是「练」出来的
今天的内容在 K3 报告里有专门一节(§3.4 长上下文扩展)。原文这句话,现在每个词你都能看懂了:
K3 原文(§3.4 长上下文扩展)
「Kimi K3 支持最长 100 万 token 的上下文窗口。我们通过随训练推进渐进扩展上下文窗口来实现这一目标,整个课程分为四个阶段。预训练期间窗口从 8K 增长到 64K token,cooldown 阶段从 256K 扩展到 100 万 token。」
逐词翻译:
- 「随训练推进渐进扩展」:窗口不是开局就 100 万,而是一边训练一边拉长——先让模型在 8K 的「小短文」里把基本功练好,再逐步上强度。这就是「窗口是练出来的」的原文证据。
- 「四个阶段」:即 8K → 64K → 256K → 100 万这四个长度档位(这是据原文最自然的读法),像学游泳先在浅水区、再去深水区。一上来就用 100 万训练,按第 5 节的账,成本会高到不现实——报告同一句也说了,这样安排是为了「使该课程保持经济」。
- cooldown:训练收尾的「降温」阶段(知道有这个词即可,Day 23 讲训练流水线时细说)。最长的两段(256K → 100 万)就放在这个阶段。
同一节里还有一句,正好给第 4 节的「看得见 ≠ 全记住」盖章:「然而,仅有长度本身并不能带来长程能力。」——窗口只是「板子够大」,能不能用上板子每一个角落的内容,还得靠专门合成的长文数据去练。
1M
K3 上下文窗口上限
100 万 token(摘要 / §1)
256K→1M
cooldown 阶段完成
最后一跳(§3.4)
一句话总结今天的 K3 印象
K3 的窗口是一部《红楼梦》的量级,但它是分四个阶段「练」出来的,不是拧出来的;而且报告自己承认:光有长度不等于有长程记性。窗口这块黑板怎么做到又大又省钱——KDA 和 MLA 那两套设计,第 3 周见分晓。
9自测题(先自己答,再点开看解析)
Q1窗口外的内容,AI 是真的「看」不到,还是「看到了但没记住」?
真的看不到。掉出窗口的 token 根本不会被拼进输入,不参与任何一次打分——不是记忆模糊,是对 AI 而言不存在。所以跟 AI 长聊时发现它「忘了」开头的要求,唯一的补救是把关键要求重新说一遍(让它回到窗口里)。
Q2用黑板类比说清楚:为什么对话变长后,AI 会「忘掉」最早说的内容?
黑板(窗口)大小固定,新内容要写上板,就得擦掉旧的;而被擦的永远是最早写下的那几行。对应到 AI:对话每多一个 token,窗口前移一格,最旧的 token 被挤出窗口。注意边界:真实模型没有「擦黑板的人」,旧 token 是直接退出计算,不会被压缩或存到别处。
Q3判断题:只要内容还在窗口里,AI 就一定能用上它。
错。「看得见」只是入场券。窗口里每个 token 能分到的注意力是有限的,塞得越多摊得越薄;经验上长文开头和结尾的内容最容易被用上,中间的最容易被「看漏」(那条 U 形曲线)。所以重要的信息,最好放在开头或结尾,或者单独重申。
Q4K3 的 100 万 token 窗口是什么概念?它是怎么来的?
按 Day 2 的换算,能装下一整部《红楼梦》还有富余——可以把整本书一次性倒进对话框再提问。它不是改个参数拧出来的,而是分四个阶段训练出来的:预训练从 8K 到 64K,cooldown 阶段再从 256K 扩到 100 万(§3.4),目的是把昂贵的长序列训练控制在预算内。
Q5面试官问「上下文窗口是不是越大越好」,用三笔账回答。
成本账:每个 token 都要参照窗口内容打分,窗口变长,计算量涨得比长度更快,训练推理都更贵更难。效果账:看得见 ≠ 记得住,窗口越长注意力越稀释,长文中间容易被忽略。需求账:正确的问题是「任务需要多长、模型在该长度中后段还记不记得牢」,而不是盲目追窗口数字。能把「窗口大」和「能力强」分开,就超过了八股答。
明天 · Day 7
第 1 周复盘 + 周测验
把这六天的零件拼成整机:精读 K3 摘要,2.8T、104B、1M 三个数字逐个拆开验收。
进入 Day 7 →