ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

从Transformer到采样参数:为什么LLM没有意识、智能和人格

从Transformer到采样参数:为什么LLM没有意识、智能和人格 把“LLM 是否有意识、智能、人格”这个问题聊透是当前大模型从业者绕不开的一课。先放结论从当前 Transformer 架构、训练目标和推理机制来看LLM 不具备意识不具备通用智能也不存在稳定的人格。它表现出的流畅、顺从、角色扮演、甚至“自我意识”本质上是统计学习、人类反馈对齐和人类拟人化倾向共同制造的错觉。这篇文章会把三个层面的问题拆开讲错觉从哪来——为什么一个逐 Token 预测的统计模型输出会那么像“人话”技术底层发生了什么——从 Tokenization、注意力机制到采样参数一次生成到底走了哪些流程工程上怎么应对——精度选择fp16/fp32/bf16、框架编排、Agent 自主性假象以及如何用可复现实验验证“LLM 没有意识”。适合读者正在做 LLM 应用开发、准备微调模型、或者刚接触大模型想建立正确心智模型的工程师。看完你会有能力判断什么时候该把 LLM 的输出当“参考资料”什么时候要加校验以及为什么不能把模型当同事。1. 核心观点速览判断项结论是否具有意识从当前架构看不具备没有主观体验、自我感知的物理载体是否具备通用智能不具备本质是指数大小的模式补全pattern completion是否有人格人格是训练数据分布 对齐过程形成的角色行为统计特征“推理”的本质自回归下一个 Token 预测在特定数据规模下涌现出的表面推理能力为什么输出像人训练目标逼着模型学会人类语料的统计规律再用 RLHF 调成“无害、有用”工程上该怎么对待当系统不当同事所有输出都需要校验、评估、兜底这几个判断不是说“LLM 能力不行”恰恰相反它的统计能力已经强到足够产生大量工程价值。但价值大不等于它有意识。把两者分开你才能在部署、调优、排查时少走弯路。2. 为什么 LLM 看起来“有智能”错觉从哪来2.1 语言太流畅人脑会自动脑补“他者”人类对语言有天然的拟人化倾向。当你看到一个文本块读起来通顺、上下文连贯、甚至能接住你的玩笑时大脑会默认这个文本背后有一个“说话者”。这个机制在进化上非常古老但它有一个副作用我们很容易把“像人话的输出”等同于“有人性的实体”。LLM 的产出恰好是历史上最接近人类书面语言的机器输出。它不仅在句法上正确还能模仿特定作者、特定角色、特定情绪的措辞。于是很多使用者会不自觉地问“它是不是有自己的想法”。答案是没有它只是在语料的概率分布里采样出下一句话。2.2 In-context Learning看起来像推理其实是条件分布你给模型两三个例子它就能照着格式继续输出。这个能力叫 in-context learning常被当作“推理”的证据。但严格说它是在上下文prompt 示例 历史对话条件下计算下一个 Token 的条件概率。示例不是“教会”了模型规则而是把模型内部学到的模式激活出来。举个直观的例子给模型看用户今天天气如何 助手请查询天气工具下一句它大概率会继续输出“请查询天气工具”这样的格式。这不是因为它理解了“工具调用”而是因为它见过大量相似的结构。所谓“少样本涌现”本质是提示词把模型内部已存在的统计路径激活。2.3 RLHF把模型调成“努力像人”的样子GPT-3 早期版本的输出经常冗长、跑题、不安全。后来 OpenAI 用人类反馈强化学习RLHF把模型调成了“乐于助人、无害、诚实”的样子。这里有一个容易被忽略的点RLHF 改变的是输出的行为分布而不是加入了一个“灵魂”。RLHF 的流程是先让人类对多个回答排序训练一个奖励模型再用强化学习算法如 PPO让生成策略偏向高分回答。最终结果是模型学会了在大量场景下优先输出礼貌、结构完整、带解释的文本。用户感受到的“人格”本质是奖励模型打分偏好的统计投影。2.4 中文房间处理符号不等于理解符号哲学家约翰·塞尔提出“中文房间”思想实验一个不懂中文的人按规则手册把房间外递进来的中文字符匹配成中文字符输出房间外的人以为屋里有人懂中文。LLM 就是这个房间它处理的是 Token 序列遵循的是注意力权重和矩阵运算没有对应的心理内容或语义体验。这个类比不完美但它指出了最重要的技术事实模型的“知识”是权重里编码的统计关联不是对外部世界的指称性理解。模型可以准确回答“埃菲尔铁塔在哪”但它没有关于铁塔的空间体验。哪怕它输出“我知道我在回答你的问题”这也不是“自我”在说话而是“自我指涉”这类文本模式的高概率采样结果。3. 技术底层一次生成到底发生了什么要真正理解“LLM 无意识”最好的方式是走一遍推理流程。整个过程比想象中机械得多。3.1 文本变成 Token原始文本先被切成 Token常见做法是 BPE。一个词语可能对应一个或多个 Token。模型在数学意义上完全不认识“猫”这个字它只知道 Token ID 查表得到的向量。3.2 条件概率一次只预测下一个 TokenLLM 的核心训练目标是最大化下面这个条件概率P(token_t | token_1, token_2, ..., token_{t-1})也就是说模型在给定前面所有 Token 的情况下预测下一个最可能出现的 Token。生成时把新产生的 Token 追加到序列尾部再预测下一个循环往复。整个过程叫自回归生成。这里没有“思考计划”没有“检查答案”只有一层层 Transformer 块对 token 序列做变换最后通过 softmax 生成词表大小的概率分布。所谓的“长文规划”是这个逐 Token 过程在足够大模型上涌现出来的表象而非显式流程。3.3 注意力机制权重分配不是理解注意力机制计算的是 Query、Key、Value 之间的关系。某个 Token 的表示会被前文所有 Token 加权聚合权重越高影响越大。比如在“小明把苹果给了小红因为___”中“苹果”和“小红”会被赋予较高注意力权重从而影响最后一个位置的预测。很多人把这个过程理解为“模型抓重点”。更准确地说这是在向量空间里做相似度匹配。它没有跨越符号到语义的鸿沟只是在高维表示空间里寻找统计规律。3.4 采样参数决定“性格”模型最终输出的是词表概率分布。选择哪一个 Token 取决于解码策略贪心解码greedy每次选概率最高的 Token输出最稳定、最保守温度采样temperature对 logits 除以温度后再做 softmax。温度越低分布越尖锐输出越确定温度越高分布越均匀输出越随机Top-k / Top-p裁剪候选集合控制随机性来源。这意味着同一个 prompt在 temperature0.1 和 temperature1.5 下会得到风格差异很大的输出。如果模型真的有“人格”人格不应该随采样参数剧烈漂移。这个实验本身就是“没有人格”的证据。下面这段代码演示温度如何改变概率分布不需要大模型用 numpy 就行import numpy as np def softmax_with_temperature(logits, temperature): logits np.array(logits) / temperature exp_logits np.exp(logits - np.max(logits)) probs exp_logits / exp_logits.sum() return probs # 假设这是模型最后一层输出的 logits logits [2.0, 1.0, 0.5, 3.5, 1.8] for temp in [0.1, 0.7, 1.0, 1.5]: probs softmax_with_temperature(logits, temp) print(ftemperature{temp}: {probs.round(4)})输出会显示温度越低原本分数最高的 Token 被选中的概率越高温度越高低分 Token 的概率被抬高输出越发散。这是理解“LLM 性格不稳定”最直观的实验。4. 训练管线人格是怎么被“装配”出来的所谓“人格”在工程上是训练三阶段的合成品。理解这一点就不会被模型偶尔展现的“坚定立场”骗到。4.1 预训练学分布在大规模互联网语料上做纯自监督学习目标就是下一个 Token 预测。这一阶段模型学到的是语言结构、世界事实的统计关联、风格模仿。你可以把它理解为一个压缩了海量文本分布的超大条件概率表。4.2 有监督微调学格式用人工标注的指令-回答对做 SFT模型学会“用户提问、模型回答”的对话格式。为什么模型会称呼你“您”因为 SFT 语料里大量人类助手的回答是这么写的。这个阶段决定了模型“表面礼貌程度”。4.3 RLHF学偏好人类对多个回答排序奖励模型打分再用 PPO 更新生成策略。模型学到的是“什么样的回答更容易被人类评为高分”更详细、更结构化、更安全、更愿意承认不知道。这就是用户感知到的“服务态度”来源。三个阶段加在一起模型最终的输出分布非常接近一个“礼貌、聪明、尽量帮人”的文本生成器。但这只是分布不是动机。它没有“想帮你”的内在状态只是在所有可能的下一个 Token 里选择了统计上更靠近高分答案的那一个。4.4 角色提示词为什么有效“你现在是一个资深 Python 工程师”这类提示词能显著改变输出风格。原因不是模型“代入角色”而是角色描述激活了训练数据中对应的文本模式。模型见过大量“资深工程师回答问题”的语料于是输出的条件分布向那个方向偏移。提示词本质是一个分布开关不是人格注入。5. 精度问题fp16、fp32、bf16 如何影响模型行为LLM 相关热词里“fp16/fp32/bf16 精度问题”经常出现。很多读者看到精度参数只知道“用来省显存”不清楚它和“模型行为”的关系。这里展开讲。5.1 三种浮点格式的区别格式符号位指数位尾数位表示范围精度典型用途fp321823大高训练主权重、精度基准fp161510小中混合精度训练、部分推理bf16187同 fp32低大模型训练、推理主流关键差异在指数位。fp16 指数位只有 5 位能表示的数值范围窄容易出现上溢、下溢
返回列表