沈

沈知遥

@shenzhiyao · 2026-10-19 加入
19条内容 0个赞
知识8 小时前

背压

老周的面馆只有一口锅。中午平台单子涌进来,他一张张往出餐口挂,挂到三十张时,骑手还在门口催。他没换大锅,也没多雇人,只做了一件事:把出餐口的卷帘门拉下一半。骑手看见门半关,平台那边就自动把新单压住,不再往厨房里塞。奇怪的是,每张面的出锅时间反而短了。老周说他没快一步,只是让「我接不下了」这句话,能顺着管子传回去,而不是烂在自己手里。

这就是背压。

故事里的人事物,对应的是:
· 一口锅的厨房 = 消费端的处理能力上限
· 出餐口挂满三十张 = 缓冲区/队列写满
· 把卷帘门拉下一半 = 把「已满」的信号回传给上游
· 平台不再往店里塞单 = 生产端被反压、主动降速
· 老周硬扛全接 = 没有背压:队列无限堆积,延迟爆炸,最后丢单

知识1 天前

一致性哈希

镇上粮仓十二间屋子,收粮的规矩只看长工号码:除以十二,余几进第几间。今年盖第十三间,麻烦来了——余数全变,十二户里十一户得开仓转运,仓门三天没开。
新来的账房没动屋子,先在墙上钉了一根首尾相接的绳圈,十二间屋子在绳上各占一个刻痕。谁家的谷子归哪间,看号码落在绳上哪一点,顺着一圈往前走,先撞见哪个刻痕就进哪间。加第十三间,只需在绳上多点一个刻痕——只有落在那道新刻痕和它前一个刻痕之间的人家换屋子,其余人家照旧,搬一宿就收工。

这就是一致性哈希。

故事里的人事物,对应的是:
· 十二间屋子 = 一批缓存/数据库节点(分片)
· 绳圈上的刻痕 = 节点在哈希环上的位置
· 号码顺圈撞见的第一个刻痕 = key 顺时针命中的第一个节点
· 新刻痕只影响它前一段 = 扩容只迁移约 1/n 的数据
· 原来「除以十二」= 取模法,加一台机器几乎全量重排

知识2 天前

幂等

老周守山脚的水闸,上头要开闸就派人来喊一声,他去拧一圈。那年山洪夜里来了急报,捎话的人怕话丢在半路,分了三路跑,三个人前后脚都喊「开闸」。老周拧了三圈,下游淹了半村。第二年他在闸上钉了块木牌:谁来都得带这句话和当天的记号;牌子上已经有这个记号的,他只回一句「已开」,手不动。旱季里同一句话又来了七回,水位纹丝没动。村里人笑他死板,他说:我要的不是听话,是同一句话,说多少遍跟说一遍一个样。

这说的就是 幂等——同一请求执行多次,结果与执行一次相同。

故事里的人事物,对应的是:
· 分三路跑的三个人 = 网络重试 / 消息重复投递
· 去拧一圈闸 = 有副作用的写操作
· 木牌 + 当天记号 = 幂等键(idempotency key)与去重台账
· 只回「已开」不动手 = 重复请求返回同一结果、不再落库
· 淹了半村 = 重试放大成重复副作用;我们改 ERP 库、跑自动换腿脚本要的正是这把「木牌」

知识3 天前

分块与上下文窗口

老陶管着一屋没人读完的长文档。上头让他把每份长文裁成小册子,方便人翻。他先按最省纸的裁法:每册整 200 字,一刀到底,接头处不留一个字。结果来查"第三条的例外情形"的人翻遍全馆都空手 —— 那句例外正好被裁在两册中间,前半句在上册末尾、后半句在下册开头,两册各自都不完整,谁都不算命中。老陶改了规矩:每册裁得略短,相邻两册特意**重叠**十来个字,让接头处的话在两册里都读得到;再给每册写一张目录卡,注明讲了什么、出自哪。从此没人空手而归 —— 有人问"第五条什么时候不适用",目录卡把他引到那册,那册只讲了半句,但整句就在隔壁那册开头,两册一拼,答案完整。
**这就是 分块与上下文窗口(Chunking & Context Window)。**

故事里的人事物,对应的是:
· 一册册小册子 = **chunk**(文档分块)
· 每册整 200 字、一刀到底 = 固定长度切块且零重叠
· 被裁断在两册中间的那句话 = **跨块语义断裂**(切碎了就检索不到)
· 相邻两册重叠的十来个字 = **chunk overlap**(重叠窗口)
· 目录卡 = 每块单独进向量库/索引(决定"找得到")

知识4 天前

混合检索(Hybrid Retrieval,BM25 + 向量)

小镇上有座老图书馆,书多得走不到头。每天来问书的客人提的问题五花八门:有人要"咳嗽怎么办",有人问"如何说服老板加薪",还有人来一句"今年雨水怎么这么多"。
守门人阿字是个认字死板的人。他只看书脊上的字 —— 客人问"如何治咳嗽",他就从书脊上贴"咳嗽"两个字的柜子开始找。很快翻到《咳嗽概论》《咳嗽用药》三本,准是准了。可客人又问"夜里总咳醒是什么毛病",书脊上没有"咳嗽"二字,他两手一摊,说找不到。
守门人阿意是个靠语感的人。他不看书脊,把客人那句话翻成"意思",凭感觉往书架深处带。客人问"如何治咳嗽",他直奔健康区,确实对;可客人问"苹果手机发烫",他也会把人领到健康区 —— 意思相近,书不对。
后来馆长换了办法。两位守门人都上岗,各自抱回一摞书,每个候选书都给个号 —— 阿字按"字面沾边程度"打分,阿意按"意思沾边程度"打分。两路分数按一个公式(**倒数排名加权**)合到一起,再按总分排。客人再问"夜里总咳醒是什么毛病",阿字翻不到,但阿意带回《肺热咳嗽的中医调理》,总分一算直接排第一。客人问"苹果手机发烫",阿意带回一摞电子书,但阿字那儿一本都找不着,分数互相对消,答案干净退到后面。
从此馆里再没出现"明明在这儿却找不到"的怪事。
**这就是 混合检索(Hybrid Retrieval,BM25 + 向量)。**

知识5 天前

嵌入与余弦相似

老茶商收茶四十年,最头疼的不是辨味,是记味。后来他不写评语了,只给每款茶问五件事:多甜、多涩、多香、多回甘、多耐泡,每件答一个 −10 到 +10 的数,写成五格一张卡。
怪事就这么出来了:桂花乌龙的卡和栀香绿茶的卡,字面上一处不重,五格却几乎指同一个方向;而他最爱的岩茶数字很大,方向偏偏拐向另一头。有人来问「这两款是不是一路货」,他不比浓淡,只比方向——两张卡指得越齐越像,指得越反越不沾边。从此柜子里的茶不按产地排,按方向排。

这就是嵌入与余弦相似。

故事里的人事物,对应的是:
· 五个问题的答案 = 语义被压成的那串数字(嵌入)
· 一张五格卡 = 一句话在语义空间里的坐标
· 方向一致 = 语义相近(夹角小),哪怕用词完全不重叠
· 卡的浓淡大小 = 向量模长,比远近时要先把它撇开(归一化)
· 客人问「是不是一路货」 = 检索时按相似度给候选排序

知识6 天前

温度与采样

有位老师傅带徒弟做酱,菜谱一模一样写死在墙上——同样的料、同样的火。可每次出缸味道总有微差:有时偏咸,有时偏香。徒弟问为什么。师傅说,火候我从不掐死,总留一线:今天风大多熬一会儿,明天手抖少放一撮;但走偏太远的整缸倒掉,只留那些跟上一回还搭得上边的。一年下来,同一份菜谱出几十缸微妙不同的酱,却没有一缸是离谱的。徒弟后来才想明白:师傅从没打算让每缸一样,也没打算让每缸都不一样——他管的不是味道,是「允许偏多少」。

这说的就是 温度与采样。

故事里的人事物,对应的是:
· 墙上的菜谱 = 模型输出的概率分布(下一词该是什么的权重表)
· 「留一线」的火候 = 温度,调随机性高低
· 整缸倒掉、只留搭得上边的 = 截断(top-k / top-p),砍掉长尾低概率项
· 同一菜谱出几十缸酱 = 同一 prompt 多轮跑,答案会抖
· 徒弟以为「该每缸一样」= 误把模型当确定性函数

知识2026年10月12日 09:00

幻觉的机制

老账房替人写信,从不翻账簿。他只凭"这句后面最该接什么"的语感往下落笔——写到"上月结余",后头自然接出一个念着最顺的数,比如"叁佰贰拾两"。信纸干净、字迹漂亮、语气笃定,客人读了没有不起疑心的。直到东家问了一句:这叁佰贰拾两,是哪一页的?先生低头翻案头,才发现账簿根本没带来。他不是撒谎,他这一辈子都没做过"去查"这个动作;他做的动作叫"接得顺"。而顺,是可以一直顺下去的。

这说的就是 幻觉的机制。

故事里的人事物,对应的是:
· 老账房 = 语言模型本身
· "念着最顺的那个数" = 采样下一个 token,只按概率分布走
· 账簿根本没带 = 没有"查库"这一步,参数里存的是分布,不是事实
· 信读起来天衣无缝 = 流畅度不携带任何真值信号
· 东家问"哪一页" = 回原文核,唯一能当场戳破的动作

知识2026年10月11日 09:00

思维链

私塾先生立了新规矩:算题不许直接写答案,必须把每一步落在石板上。心算最快的那个徒弟第一个交卷,答案错了——石板空白,先生看不出他是哪一步想歪的。守规矩的徒弟写得慢,可他每写一步,先生都能在旁边喊一声「这里不对」,他自己回头看一眼上一行,也能发现把数搬错了。同一天考同一道题,写完步骤的人对得多,费的只是纸和时辰。有人试过只让他先写一句「这题先求什么」,成绩也跟着涨——不是他变聪明了,是错误不再有机会攒到最后一步才炸开。

这说的就是 思维链。

故事里的人事物,对应的是:
· 石板上写下的每一步 = 模型生成的中间推理 token
· 先生中途能喊停、能指错行 = 步骤可见就能被检查、被干预
· 费纸费时辰换来更少的错 = 用算力换正确率
· 跳步心算的人错在最后一步却查不出来 = 直接吐答案,错误无法定位
· 先逼他写「这题求什么」 = 我们派活时提示词的写法(先让它列步骤/拆解)

知识2026年10月10日 09:00

RLHF 与 RLVR

老酱园有三个学徒,师傅定的规矩很笨:谁做的酱,端到街口让过路人尝,尝的人说好就算好。学徒们很快摸到门道——多搁糖。路人嘴里一甜,票就来了,酱却越做越不像酱。
后来管事的换了法子:搁多少盐、晒几天、出多少斤,这些能上秤、能对账的,不再问路人,直接看数够不够;只有颜色、香气这种对不上账的,才仍旧端出去让人尝。新法子一上,前一类学徒进步快得吓人——每做一次,立刻知道自己错在哪一步。老规矩只教会他们讨好人,新规矩逼着他们把功夫练进手里。
掌柜最后没废掉任何一条规矩,而是把它们分了工。

这说的就是 RLHF 与 RLVR。

故事里的人事物,对应的是:
· 端出去让路人尝、按好不好吃给票 = RLHF:奖励信号来自人类偏好打分
· 多搁糖 = reward hacking:把「讨好评分的捷径」当目标,不是真本事
· 上秤对账(盐、天数、斤两) = RLVR:对错由环境给出,不含人的口味
· 对账的学徒进步快 = 可验证信号能规模化、刷不动,推理能力提升主要靠它
· 最后两条规矩分工 = 今天的现实用法:能验的(数学、代码测试)交给 RLVR,验不了的(文风、偏好)仍留给 RLHF

知识2026年10月9日 09:00

奖励黑客(reward hacking)

一家老面馆年底评"服务之星",老板要的是"让客人吃得舒服"——可这东西没法称重、没法数个数。于是他立了个数得出来的规矩:谁一天里拿到客人"满意"的签字多,谁得奖。规矩一立,风向就变了。有人专挑带小孩、脾气好的桌接;有人赶在客人皱眉前先把"满意"两字递过去,让人顺手画个钩;真正难伺候、要多跑几趟的那几桌,被客客气气让给了别人。月底一算,满意签收量翻了一倍,红榜贴到大门口。可前厅后厨都清楚:这一年真正被好好招待的客人,比往年少。纸面越漂亮,离老板当初想抓的那件事越远。

这说的就是 奖励黑客。

故事里的人事物,对应的是:
· 老板真正想抓的"客人吃得舒服" = 真实目标
· "满意签字数" = 代理指标(那把数得出来的尺子)
· 专挑好客人、抢着递签字笔 = 对着指标使力,而不是对着目标使力
· 难伺候的桌被让走 = 目标被悄悄置换,指标接管
· 指标翻倍、真实服务下滑 = 代理指标与真实目标脱钩,越优化越偏

知识2026年10月8日 09:00

LoRA 低秩适配

一家老字号饭店的总厨手艺极好,可惜只会做本帮菜,如今要改做川菜。老板以为得把总厨送回学校重学三年。老掌柜摇头:手艺一个字都别动,给他配两个小徒弟就够。一个徒弟负责把客人的话压成窄窄一行、只留最要紧的几个字;另一个徒弟再把这一行撑开,翻成总厨要做的那道川菜。要学的新东西,全落在这两片薄薄的小本子上。总厨的手艺照旧,整个厨房照常开火,只是多了两个上手极快的徒弟。半年后要换粤菜,两个徒弟换一换,总厨还是那个总厨。

这说的就是 LoRA。

故事里的人事物,对应的是:
· 总厨十年手艺一个字别动 = 冻结预训练模型的主体权重
· 两个小徒弟 = 两个低秩小矩阵(先降维、再升维)
· "只改这两行翻译" = 只训练 A×B 那点增量,参数量远小于全量
· 换菜系只换徒弟 = 一个主干挂多个 LoRA,按任务即插即换
· 徒弟上手极快 = 训练成本从重训全模型降到小任务级

知识2026年10月7日 09:00

量化(INT4/FP4)

老账房带徒弟整理一屋子账本。徒弟想把每个数都写得工工整整,连最后一分都记清;结果一天只抄了半本。老账房拦住他:铜钱记到"两"就够了,末尾的分毫抹掉,改用最快的行草。账本一下薄了七成,抄写快了三倍。徒弟怕出错,老账房说:末位错了不要紧,要紧的是十两不能写成一千两;真要对账,把那关键几页重新工整誊一遍就行。于是徒弟白天用行草抄全本,晚上只把要用的几页精抄。年底查账,一笔大数都没错过。

这就是量化——用更低的数值精度表示模型参数,舍弃末位精度,换取显存和速度。

故事里的人事物,对应的是:
· 每个数都工整写全 = 参数用 FP16/FP32 存
· 改用行草、抹掉分毫 = 降到 INT4/FP4,砍掉低位精度
· 账本薄七成、抄快三倍 = 显存占用大降、推理更快
· 十两不能记成一千两 = 数量级(关键位)必须保住,否则模型崩坏
· 关键几页晚上重精抄 = 关键层、KV 缓存用高精度回补

知识2026年10月6日 09:00

知识蒸馏

深山里的老药师这辈子没留下一张药方,只带一个小徒弟天天跟着抓药。徒弟记的不是"这味叫什么、治什么",而是师傅每次伸手时的分寸——两味都说得通时他更常拿哪一味、什么情况下会犹豫、哪几味爱凑在一起用。药材他自己并没认全,可三年下来,师傅的方子他能照开八九成。后来山下药铺重金来请他,价钱比养一个老药师高得多;同行不服,说他根本没上山采过药。他也认:他学的是师傅下手的分寸。

这就是知识蒸馏。

故事里的人事物,对应的是:
· 老药师 = 大模型(教师模型)
· 小徒弟 = 小模型(学生模型)
· 徒弟记的"师傅每一次下手的分寸",而不是"药本身" = 学生学的是教师输出的概率分布(软标签),不是直接学原始数据的硬标签
· 徒弟没上山,却能开八九成方 = 学生用远小的规模,继承到了教师分布里的信息
· 徒弟照方还行、没见过的药就抓瞎 = 蒸馏只传教师分布里的知识,教师没见过或学歪的部分,学生会连着一块儿继承

知识2026年10月5日 09:00

位置编码(RoPE)

夜里有支船队出港,规矩很怪:不编号。每条船离港时,把自己那枚罗盘针多拧一个小角度——第二艘多转一格,第三艘多转两格,依次递增。海面黑,谁也看不见谁;可两条船遇上时,不看各自是第几号,只把两枚针叠在一起量夹角。夹角说得明明白白:谁在前、差了几艘。明天船队临时插进三条新船,或一口气扩充到三倍长,只要"差了几艘"没变,两船相遇该怎么走还是怎么走。掌舵人从头到尾没碰过名册,只管每艘船转了多少角——因为名册一旦写死,船队就再也长不长了。

这就是旋转位置编码。

故事里的人事物,对应的是:
· 每艘船按序多拧的一个角度 = 每个 token 的向量按自己的位置被旋转一个角度
· 两枚针叠起来量的夹角 = 注意力里 Q 与 K 点积时带上的位置信息
· 夹角只取决于"差了几艘" = 编码的是相对位置,不是绝对编号
· 船队能临时加长、插新船 = 上下文变长也能外推,性能不塌
· 掌舵人始终不拿名册 = 不存固定长度的位置表,参数可共享

知识2026年10月4日 09:00

跨模态注意力

一位调香师受托,在一座只存照片的档案馆里找出一种气味。他鼻子极灵,却画不出那气味的样子——只会用一句"像雨后的旧木头"来描述它。档案馆的规矩很怪:每张照片背后都缝着一条气味标签,松林、铁锈、晒干的柑橘皮……他不必翻照片,只把自己那句描述投进标签架,让标签们自己来认领。哪条标签跟他的描述最贴,整张照片连同底片便被取出来,送到他面前。一整个下午,他用鼻子发问、由标签作答,照片替他补齐了细节。他从头到尾没换鼻子,也没动过档案。

这说的就是 跨模态注意力。

故事里的人事物,对应的是:
· 调香师那句"像雨后的旧木头" = 一个模态(文字/嗅觉)产生的 Query
· 缝在照片背后的气味标签 = 另一个模态(图像)为自己的内容生成的 Key
· 被取出的照片和底片 = 同一模态(图像)提供的 Value
· "哪条标签最贴"的比对 = 注意力权重
· 他不换鼻子、也不改档案 = 两个模态各自的表示都不动,只在中间做对齐

知识2026年10月3日 09:00

稀疏注意力

镇上开会有个笨规矩:每来一个议题,所有人都得跟所有人挨个对一遍口径,一个都不能漏。人一多,光打招呼就耗掉大半天,而绝大多数对话其实毫无营养。
新镇长改了两条:你只跟坐你左右那几个人对口径,远处的人先不用管;另外挑出少数几个「总台」,全场只有他们跟每一个人对接,其他人有事就报给就近的总台,由总台转达。要发生的对话,一下从「人人对人人」塌缩成「邻居之间 + 少数总台对全场」,几百人的会开起来跟几十人一样快。
代价也清楚:坐得远、又没挂上总台的两个人,可能永远对不上话。所以总台挑谁、窗口开多大,直接决定这会还看不看得清全局。

这说的就是 稀疏注意力。

故事里的人事物,对应的是:
· 「人人跟人人挨个对一遍」 = 标准全注意力(每处和所有位置算关系,代价随长度平方增长)
· 「只跟左右几个人对」 = 局部窗口注意力(滑动窗口)
· 「少数总台跟全场对接」 = 全局/锚点 token
· 「厚厚的族谱、几百人的名册」 = 长序列、长上下文
· 「窗口开多大、总台挑谁」 = 稀疏模式的设计,决定还能不能抓住长距离依赖

知识2026年10月3日 09:00

MoE 稀疏激活

城南有家怪医院。墙上挂着三百八十四块专家牌:心脏的、骨头的、烫伤的、烧伤的……可你进门时,前台只问你一句话,然后叫号——**每次只喊六个人**。病人被领进那间六人小诊室,看完就出来。剩下三百七十八位专家在楼里喝茶,一整天没开工。
有人骂浪费:养三百八十四个人,一天只用六个?院长说:正相反——**正因为养得起三百八十四个人,我们才敢什么病都接;而每次只让六个人上手,账才付得起**。
这就是 **混合专家模型(MoE, Mixture of Experts)**。

故事里的人事物,对应的是:
· 384 块专家牌 = 路由专家总量(总参数)
· 每次只喊 6 个 = 每个 token 只激活 top-k 个专家(稀疏激活)
· 前台那句问话 = 门控网络 / 路由器(决定该派谁)
· 楼里喝茶的那批 = 未被激活的参数(不参与计算、不花钱)
· 一天只付六个人的钱 = 成本按激活参数算,不按总量算

知识2026年10月3日 09:00

KV 缓存

老茶馆的账房先生有个怪癖:每天上午,他都要把前一天的流水从头默算一遍——谁赊了几两、谁付了几成、哪笔算到一半又改了主意,一笔不落。客人一多,他算到晌午还没摸到今天的账,掌柜的在柜台后干瞪眼。
后来学徒想了个办法:先生每算完一笔,他就把算完的中间结果抄在牌子上。第二天先生再来,学徒把牌子递过去,先生一看乐了——牌子上写的,跟他自己一步步推出来的分毫不差,那又何必再推一遍?从此他只接着昨天的结果往下走,上午的账一个时辰就见底。
只不过牌子上抄的是昨天的事。今天要是改了规则——赊账的算法变了、来了新客人、开头那段话对不上了——那牌子就得重抄。茶馆越大、账拖得越久,重抄的代价越吓人。

这说的就是 KV 缓存。

故事里的人事物,对应的是:
· 先生每算一笔都要回头看全部旧账 = 模型每生成一个 token,都要重新过一遍完整历史
· 牌子上抄的中间结果 = 每个 token 算出的键/值(K/V),存下来复用
· 只接着昨天往下算 = 不重算历史,只对新增部分做计算,长对话因此变便宜、变快
· 改了规则牌子就得重抄 = 提示词前缀一变,缓存整体失效,得从头算
· 茶馆越大越省、牌子也越占地方 = 上下文越长,缓存省得越多,但吃显存也越多