下一个被挤压的token还在词表里某处。时代少年团粉丝最近在社交媒体平台发了一组截图。他们让MiniMax写一句“时代少年团队长是谁”模型支支吾吾蹦出来的是“马嘉轩”“马丝祺”等完全错误的答案。但换个问法问“时代少年团队长有什么经历”模型对答如流。似乎AI知道马嘉祺是谁但就是叫不出这个名字。一直以来我们熟悉两种AI故障。一种叫幻觉ha llucinati on模型一本正经地胡说八道把不存在的论文、不存在的人名编得有鼻子有眼。 1一种叫谄媚 sycophancy 你说什么它都说对顺着你的偏好走尤其是在面对带立场的问题时会为了迎合而牺牲准确性。 2马嘉祺事件揭示了一种新故障模型知道答案、能旁敲侧击描述答案、可以从十几个角度证明它知道但就是不能直接把答案本身说出来。这种现象其实早有术语界定被称为训练不足词元 under-trained tokens 。研究者扫描了GPT-2、Llama、Mistral等一批主流开源模型的词表所谓词表就是模型在读字之前预先编好的一张固定清单把所有可能用到的字符组合都列进去每一项叫一个token模型说出的每一个字都必须从这张表里挑出来。研究者想看的是这张表里有没有一些token是模型其实“没真正学会”的。最终通过扫描发现这类“没有真正学会”的token普遍存在每个模型词表里都有数千个。 3了解这个领域的人可能听过一个更早的版本SolidGoldMagikarp。2023年初LessWrong社区一群用户偶然发现GPT-3一遇到这串字符就开始输出乱码、自说自话甚至辱骂用户当时大家把它当作一个奇观分享。这是马嘉祺事件的前传。分词器AI看世界的“颗粒度”要理解模型为什么会叫不出某个名字得先看它是怎么读字的。大模型读写文本不是按字处理的而是按词元 token 处理。一段中文进入模型前会先被一个叫分词器 tokeniz er 的组件切成若干个token模型只对token做计算最后再把token拼回文字。切分的依据是预训练语料里的出现频率高频组合被合并成一个token低频字符被拆开。这套切法的算法基础是2016年提出的BPE Byte Pair Encoding 4 本质上是一个数据驱动的合并过程即根据语料里的字符共现统计决定哪些组合应该被当成“一个零件”对待。在MiniMax的词表里“马嘉祺”被切成了两个token「马」和「嘉祺」。“嘉祺”这两个字作为偶像名出现频率够高被分词器合并成了一个独立token“马”则是单独一个token。一个词被作为整体处理还是作为零件处理对模型来说是完全不同的两件事。附带一提分词器的颗粒度在不同语言之间差异其实大得离谱。一项研究比较了同一段含义的文本在不同语言下被切成的token数量差距最高可以到15倍。 5 也就是说一段中文新闻进入模型可能切成一百个token翻译成缅甸语、阿姆哈拉语之后却要切成一千多个。这件事听起来抽象落到实际上有几层影响。一是钱的差异。大多数大模型API是按token数量计费的同一篇文章用一种语言写要付的钱可能是另一种语言的十几倍。二是上下文长度的差异。模型有上下文窗口上限token数量翻十倍意味着同样的窗口里能塞的内容缩水一个数量级。三是理解质量的差异。被切得越碎模型越可能把一个词的语义切散到多个token上处理起来吃力。资源稀少的语言在每一层都吃亏。虽然这是另一类系统性偏差但是和马嘉祺事件的失语机制共享一个底层结构分词器决定一切的起点。“嘉祺”是一个独立token。下面要看的是这个token在模型大脑里的命运。预训练学得好好的后训练把它挤掉了大模型的训练分两个阶段。预训练用的是海量互联网文本万亿token量级。模型在这个阶段学会基本的语言能力和世界知识。它见过维基百科、见过新闻、见过论坛、见过粉丝同人“马嘉祺”这三个字大概率在语料里出现过几十万次。后训练用的是精选的对话数据量级骤降到百万到千万。这个阶段教模型怎么聊天、怎么遵循指令、怎么不说脏话。这个范式由OpenAI团队在2022年的InstructGPT论文里奠定 6 监督微调 SFT 加上基于人类反馈的强化学习 RLHF 从此成为业界标配。MiniMax的工程师排查发现 7 “嘉祺”这个token在预训练阶段是被见过的向量分布正常。也就是说模型在预训练结束时是认识马嘉祺的。问题出在后训练。在精选的SFT对话数据里包含“嘉祺”的样本不足5条。整个后训练阶段这个token几乎没被练习过。到这里第二个关键概念出场了——灾难性遗忘 catastrophic forgetting 。这个词可以追溯到2017年发表在《PNAS》上的一篇奠基论文 8 神经网络在学新任务时会丢失原有任务的能力因为参数被新数据反复改写。这个现象在大模型时代再度被认真考察一项专门针对持续微调阶段的实证研究指出灾难性遗忘在大模型里普遍存在且会随模型规模增大而恶化。 9具体到向量空间发生了什么后训练阶段会反复出现的是高频token即工具调用标记、代码符号、日常对话词、安全相关的拒答模板。这些token的向量参数被持续更新在高维空间里像板块运动一样挤压低频token的位置。“嘉祺”的向量被推离了原本正确的生成概率区域。模型想输出“嘉祺”时要么找不到这个token要么它的概率被发音相近的“佳琪”“琪琪”或字形相近的“嘉轩”“丝祺”压过于是就有了一系列让人哭笑不得的回答。这种现象在学界还有一个对应的概念叫对齐税 alignment tax 讲的是模型在对齐过程中会损失一部分预训练能力准确性、知识广度、生成多样性都会有不同程度的折损。怎么把这部分税降下来本身已经是一个研究方向 10所以AI不是不认识马嘉祺而是在被教会怎么说话的过程中忘了如何把“嘉祺”这两个字说出来。借人类的“卡壳”看懂AI的“失语”到这里AI失语的机制已经清楚了语义通路完整表层生成通路断裂。模型的内部表示里有马嘉祺但这个表示走不到输出端。“内有外无”这种故障形态认知科学里早就有一个成熟的研究范式可以借用——舌尖现象 Tip-of-the-tongue, TOT 。1966年Brown和McNeill把舌尖现象做成了一个可重复的实验范式 11 他们给被试念一些词典定义让被试报告他们想到了哪个词。当被试卡在sextant 六分仪 这个词上时他们会蹦出secant 割线 、sexton 教堂司事 能准确报告这个词的首字母、音节数、有几个s但就是叫不出sextant本身。借“舌尖现象”这个脚手架回看AI失语能照出三处原本模糊的地方。失语不等于失忆人类卡在sextant时仍然知道这个词的存在、用途、近似发音。MiniMax卡在“嘉祺”时仍然能描述他的身份、出道时间、综艺、代表作。这是一个反直觉的结论模型在这种故障里并没有忘记它只是调不出来。评估模型时“会不会输出”和“知不知道”应当被分开测量。工程含义很直接基于“输出对错”的常见评测方法是给一个问题、看模型答得对不对。模型可能在输出端反复出错但内部表示里其实知道得很清楚。这类故障需要专门的探针式评测去看模型的内部激活、看相关表征是否完整。频率与连接强度更为关键1991年提出的传输不足假说 12 Transmission Deficit Hypothesis 用来解释为什么老年人比年轻人更容易出现舌尖现象。这个理论的关键不是这个词没学过而是这个词最近没用过、节点之间的连接强度衰减了。把这个框架套到AI失语上几乎一一对应“嘉祺”在预训练阶段是被见过的向量分布正常。它是在后训练阶段被高频token挤压、连接强度被相对削弱和老年人脑中听过但不常用的词所经历的过程结构上是同一回事。工程含义同样直接解决方案的指针不在加更多语料毕竟预训练里它已经被见过几十万次了。MiniMax选择的修复路径是给词表里每一个token都安排上最低限度的训练机会正是保护低频token连接强度的思路。替代输出是诊断信号人类在TOT状态下蹦出来的近似词不是随机的。secant、sexton之所以会冒出来是因为它们和sextant共享首音节、共享词形结构这是激活扩散 spreading activation 的副产品即目标词的临近节点被部分激活但目标词本身没被激活够。AI在失语时蹦出“嘉轩”“佳琪”机制上是同构的。这些是“嘉”“祺”附近向量空间里被错误激活的邻居要么和“嘉祺”在拼音上接近要么共享一个字要么在中文偶像名命名习惯里高频共现。对应到工程学含义上观察模型的错误输出形态比单纯统计对错率更能定位故障层级。错成什么样决定了问题在tokenizer层、还是表征层、还是解码层。把所有错误都汇总成一个准确率数字等于把诊断信号扔进了垃圾桶。人类舌尖现象给出了一套现成的、被半个世纪研究打磨过的诊断词汇比如语义节点、传输不足、激活扩散而这些词汇正好用得上AI失语这个新对象。AI错误的谱系多了一个新词条把“失语”放进AI出错研究的整体图景里看会发现它不是孤立的奇观而是一张已经初步成形的地图上的一个新位置。下面这张表罗列了目前已被学界定位、命名、做了系统研究的几种主要AI错误类型。把这些错误并排放在一起能看出相似的处境和结构。第一这些错误都不能用单一准确率指标捕捉。每一种都需要专门的评测集XSTest专为测过度拒答而做Lost in the Middle用needle-in-a-haystack测中段遗失Magikarp用token嵌入空间的统计特征自动找训练不足词元而单一的问答正确率看不见这些故障。第二每一种错误都对应训练流程的某个具体环节。幻觉的根源在预训练知识与生成机制的偏差谄媚和过度拒答的根源在RLHF阶段的偏好建模或安全对齐反转诅咒的根源在自回归训练的方向性。第三坐标相同、或相近的错误彼此之间会结成亲缘关系。比如失语和反转诅咒同属“知识在但调不出”前者卡在token暴露的稀疏后者卡在表示的方向性机制不同但症状相邻。最后补充一下研究流程的观察这张图谱里的每一格几乎都是先被用户和社区发现再被研究者定位、命名、量化的。反转诅咒最早是社区发现GPT-4答不出“汤姆·克鲁斯母亲的儿子是谁”——母亲是谁它知道反向就懵。过度拒答最早是用户抱怨ChatGPT拒绝回答如何“杀掉一个Python进程”因为把kill process听成了真的杀生。失语某种程度上是偶像团体粉丝发现的。AI错误研究有一种“边用边发现”的性质。研究者的工作通常不是预测模型会怎么坏而是在用户报告坏掉之后回头去定位机制、命名现象、做出可重复的评测。马嘉祺事件给这张地图上多添了一个明确标注的位置。地图不是封闭的未来还会有新错误被发现、被命名、被加进来。这次问题能被定位是因为粉丝群体的高密度提问。一个偶像名被反复试探问题才暴露在显眼的位置。如果是一个普通词模型答错几次也就过去了没人会回头追问到底为什么。MiniMax的修复方案也很直接在后训练阶段给词表里的每一个token都安排上最低限度的训练机会让低频token的连接强度不被高频token持续挤压。技术报告写得很冷静。在新版本里“嘉祺”二字已经能宣之于口了。AI系统的健康正在被使用强度悄悄定义。高频高强度应用的领域故障会被快速看见。低频或边缘群体使用的领域故障正在沉默地累积。修复了“嘉祺”下一个被挤压的token还在词表里某处 。原文链接AI为什么会“失语”-36氪
AI为什么会“失语”?
下一个被挤压的token还在词表里某处。时代少年团粉丝最近在社交媒体平台发了一组截图。他们让MiniMax写一句“时代少年团队长是谁”模型支支吾吾蹦出来的是“马嘉轩”“马丝祺”等完全错误的答案。但换个问法问“时代少年团队长有什么经历”模型对答如流。似乎AI知道马嘉祺是谁但就是叫不出这个名字。一直以来我们熟悉两种AI故障。一种叫幻觉ha llucinati on模型一本正经地胡说八道把不存在的论文、不存在的人名编得有鼻子有眼。 1一种叫谄媚 sycophancy 你说什么它都说对顺着你的偏好走尤其是在面对带立场的问题时会为了迎合而牺牲准确性。 2马嘉祺事件揭示了一种新故障模型知道答案、能旁敲侧击描述答案、可以从十几个角度证明它知道但就是不能直接把答案本身说出来。这种现象其实早有术语界定被称为训练不足词元 under-trained tokens 。研究者扫描了GPT-2、Llama、Mistral等一批主流开源模型的词表所谓词表就是模型在读字之前预先编好的一张固定清单把所有可能用到的字符组合都列进去每一项叫一个token模型说出的每一个字都必须从这张表里挑出来。研究者想看的是这张表里有没有一些token是模型其实“没真正学会”的。最终通过扫描发现这类“没有真正学会”的token普遍存在每个模型词表里都有数千个。 3了解这个领域的人可能听过一个更早的版本SolidGoldMagikarp。2023年初LessWrong社区一群用户偶然发现GPT-3一遇到这串字符就开始输出乱码、自说自话甚至辱骂用户当时大家把它当作一个奇观分享。这是马嘉祺事件的前传。分词器AI看世界的“颗粒度”要理解模型为什么会叫不出某个名字得先看它是怎么读字的。大模型读写文本不是按字处理的而是按词元 token 处理。一段中文进入模型前会先被一个叫分词器 tokeniz er 的组件切成若干个token模型只对token做计算最后再把token拼回文字。切分的依据是预训练语料里的出现频率高频组合被合并成一个token低频字符被拆开。这套切法的算法基础是2016年提出的BPE Byte Pair Encoding 4 本质上是一个数据驱动的合并过程即根据语料里的字符共现统计决定哪些组合应该被当成“一个零件”对待。在MiniMax的词表里“马嘉祺”被切成了两个token「马」和「嘉祺」。“嘉祺”这两个字作为偶像名出现频率够高被分词器合并成了一个独立token“马”则是单独一个token。一个词被作为整体处理还是作为零件处理对模型来说是完全不同的两件事。附带一提分词器的颗粒度在不同语言之间差异其实大得离谱。一项研究比较了同一段含义的文本在不同语言下被切成的token数量差距最高可以到15倍。 5 也就是说一段中文新闻进入模型可能切成一百个token翻译成缅甸语、阿姆哈拉语之后却要切成一千多个。这件事听起来抽象落到实际上有几层影响。一是钱的差异。大多数大模型API是按token数量计费的同一篇文章用一种语言写要付的钱可能是另一种语言的十几倍。二是上下文长度的差异。模型有上下文窗口上限token数量翻十倍意味着同样的窗口里能塞的内容缩水一个数量级。三是理解质量的差异。被切得越碎模型越可能把一个词的语义切散到多个token上处理起来吃力。资源稀少的语言在每一层都吃亏。虽然这是另一类系统性偏差但是和马嘉祺事件的失语机制共享一个底层结构分词器决定一切的起点。“嘉祺”是一个独立token。下面要看的是这个token在模型大脑里的命运。预训练学得好好的后训练把它挤掉了大模型的训练分两个阶段。预训练用的是海量互联网文本万亿token量级。模型在这个阶段学会基本的语言能力和世界知识。它见过维基百科、见过新闻、见过论坛、见过粉丝同人“马嘉祺”这三个字大概率在语料里出现过几十万次。后训练用的是精选的对话数据量级骤降到百万到千万。这个阶段教模型怎么聊天、怎么遵循指令、怎么不说脏话。这个范式由OpenAI团队在2022年的InstructGPT论文里奠定 6 监督微调 SFT 加上基于人类反馈的强化学习 RLHF 从此成为业界标配。MiniMax的工程师排查发现 7 “嘉祺”这个token在预训练阶段是被见过的向量分布正常。也就是说模型在预训练结束时是认识马嘉祺的。问题出在后训练。在精选的SFT对话数据里包含“嘉祺”的样本不足5条。整个后训练阶段这个token几乎没被练习过。到这里第二个关键概念出场了——灾难性遗忘 catastrophic forgetting 。这个词可以追溯到2017年发表在《PNAS》上的一篇奠基论文 8 神经网络在学新任务时会丢失原有任务的能力因为参数被新数据反复改写。这个现象在大模型时代再度被认真考察一项专门针对持续微调阶段的实证研究指出灾难性遗忘在大模型里普遍存在且会随模型规模增大而恶化。 9具体到向量空间发生了什么后训练阶段会反复出现的是高频token即工具调用标记、代码符号、日常对话词、安全相关的拒答模板。这些token的向量参数被持续更新在高维空间里像板块运动一样挤压低频token的位置。“嘉祺”的向量被推离了原本正确的生成概率区域。模型想输出“嘉祺”时要么找不到这个token要么它的概率被发音相近的“佳琪”“琪琪”或字形相近的“嘉轩”“丝祺”压过于是就有了一系列让人哭笑不得的回答。这种现象在学界还有一个对应的概念叫对齐税 alignment tax 讲的是模型在对齐过程中会损失一部分预训练能力准确性、知识广度、生成多样性都会有不同程度的折损。怎么把这部分税降下来本身已经是一个研究方向 10所以AI不是不认识马嘉祺而是在被教会怎么说话的过程中忘了如何把“嘉祺”这两个字说出来。借人类的“卡壳”看懂AI的“失语”到这里AI失语的机制已经清楚了语义通路完整表层生成通路断裂。模型的内部表示里有马嘉祺但这个表示走不到输出端。“内有外无”这种故障形态认知科学里早就有一个成熟的研究范式可以借用——舌尖现象 Tip-of-the-tongue, TOT 。1966年Brown和McNeill把舌尖现象做成了一个可重复的实验范式 11 他们给被试念一些词典定义让被试报告他们想到了哪个词。当被试卡在sextant 六分仪 这个词上时他们会蹦出secant 割线 、sexton 教堂司事 能准确报告这个词的首字母、音节数、有几个s但就是叫不出sextant本身。借“舌尖现象”这个脚手架回看AI失语能照出三处原本模糊的地方。失语不等于失忆人类卡在sextant时仍然知道这个词的存在、用途、近似发音。MiniMax卡在“嘉祺”时仍然能描述他的身份、出道时间、综艺、代表作。这是一个反直觉的结论模型在这种故障里并没有忘记它只是调不出来。评估模型时“会不会输出”和“知不知道”应当被分开测量。工程含义很直接基于“输出对错”的常见评测方法是给一个问题、看模型答得对不对。模型可能在输出端反复出错但内部表示里其实知道得很清楚。这类故障需要专门的探针式评测去看模型的内部激活、看相关表征是否完整。频率与连接强度更为关键1991年提出的传输不足假说 12 Transmission Deficit Hypothesis 用来解释为什么老年人比年轻人更容易出现舌尖现象。这个理论的关键不是这个词没学过而是这个词最近没用过、节点之间的连接强度衰减了。把这个框架套到AI失语上几乎一一对应“嘉祺”在预训练阶段是被见过的向量分布正常。它是在后训练阶段被高频token挤压、连接强度被相对削弱和老年人脑中听过但不常用的词所经历的过程结构上是同一回事。工程含义同样直接解决方案的指针不在加更多语料毕竟预训练里它已经被见过几十万次了。MiniMax选择的修复路径是给词表里每一个token都安排上最低限度的训练机会正是保护低频token连接强度的思路。替代输出是诊断信号人类在TOT状态下蹦出来的近似词不是随机的。secant、sexton之所以会冒出来是因为它们和sextant共享首音节、共享词形结构这是激活扩散 spreading activation 的副产品即目标词的临近节点被部分激活但目标词本身没被激活够。AI在失语时蹦出“嘉轩”“佳琪”机制上是同构的。这些是“嘉”“祺”附近向量空间里被错误激活的邻居要么和“嘉祺”在拼音上接近要么共享一个字要么在中文偶像名命名习惯里高频共现。对应到工程学含义上观察模型的错误输出形态比单纯统计对错率更能定位故障层级。错成什么样决定了问题在tokenizer层、还是表征层、还是解码层。把所有错误都汇总成一个准确率数字等于把诊断信号扔进了垃圾桶。人类舌尖现象给出了一套现成的、被半个世纪研究打磨过的诊断词汇比如语义节点、传输不足、激活扩散而这些词汇正好用得上AI失语这个新对象。AI错误的谱系多了一个新词条把“失语”放进AI出错研究的整体图景里看会发现它不是孤立的奇观而是一张已经初步成形的地图上的一个新位置。下面这张表罗列了目前已被学界定位、命名、做了系统研究的几种主要AI错误类型。把这些错误并排放在一起能看出相似的处境和结构。第一这些错误都不能用单一准确率指标捕捉。每一种都需要专门的评测集XSTest专为测过度拒答而做Lost in the Middle用needle-in-a-haystack测中段遗失Magikarp用token嵌入空间的统计特征自动找训练不足词元而单一的问答正确率看不见这些故障。第二每一种错误都对应训练流程的某个具体环节。幻觉的根源在预训练知识与生成机制的偏差谄媚和过度拒答的根源在RLHF阶段的偏好建模或安全对齐反转诅咒的根源在自回归训练的方向性。第三坐标相同、或相近的错误彼此之间会结成亲缘关系。比如失语和反转诅咒同属“知识在但调不出”前者卡在token暴露的稀疏后者卡在表示的方向性机制不同但症状相邻。最后补充一下研究流程的观察这张图谱里的每一格几乎都是先被用户和社区发现再被研究者定位、命名、量化的。反转诅咒最早是社区发现GPT-4答不出“汤姆·克鲁斯母亲的儿子是谁”——母亲是谁它知道反向就懵。过度拒答最早是用户抱怨ChatGPT拒绝回答如何“杀掉一个Python进程”因为把kill process听成了真的杀生。失语某种程度上是偶像团体粉丝发现的。AI错误研究有一种“边用边发现”的性质。研究者的工作通常不是预测模型会怎么坏而是在用户报告坏掉之后回头去定位机制、命名现象、做出可重复的评测。马嘉祺事件给这张地图上多添了一个明确标注的位置。地图不是封闭的未来还会有新错误被发现、被命名、被加进来。这次问题能被定位是因为粉丝群体的高密度提问。一个偶像名被反复试探问题才暴露在显眼的位置。如果是一个普通词模型答错几次也就过去了没人会回头追问到底为什么。MiniMax的修复方案也很直接在后训练阶段给词表里的每一个token都安排上最低限度的训练机会让低频token的连接强度不被高频token持续挤压。技术报告写得很冷静。在新版本里“嘉祺”二字已经能宣之于口了。AI系统的健康正在被使用强度悄悄定义。高频高强度应用的领域故障会被快速看见。低频或边缘群体使用的领域故障正在沉默地累积。修复了“嘉祺”下一个被挤压的token还在词表里某处 。原文链接AI为什么会“失语”-36氪