别把大模型当成智能助手,它本质上只是个超级概率补全机
很多开发者在用 Claude Code 写代码或者用 ChatGPT 做调研时,很容易陷入一个认知误区:把 LLM 当成一个具备逻辑思考能力的“智能体”。但如果你想真正压榨出模型的性能,必须撕掉这个“助手”的标签,从底层逻辑去理解它到底在干什么。最近复盘了 Andrej Karpathy 关于 LLM 深潜的分享,对我触动最大的是关于基座模型与指令模型之间那层微妙的界限。
很多人在使用时会混淆 Base Model(基座模型)和 Instruct/Chat Model(指令/对话模型)。其实,基座模型在本质上就是一个极其庞大的“互联网文本自动补全引擎”。它并不懂什么叫“对话”,更没有所谓的“助手意识”。如果你给基座模型输入“如何写一个 Python 快速排序函数?”,它大概率不会直接给你代码,而是可能会补全成一个类似面试题的列表,因为它在预训练阶段看到的文本分布就是这样的。
要让这个补全引擎变成我们现在熟知的 ChatGPT,必须经过一个关键的后训练(Post-training)过程。这个过程的核心在于“对齐(Alignment)”。通过喂入大量由人类标注的对话样本,模型才学会了如何扮演一个“助手”的角色。简单来说,基座模型拥有海量的知识储备,而指令微调(SFT)则是给这些知识套上了一个“对话外壳”。当你意识到这一点时,你就会发现,模型在回答问题时的某些不稳定,其实是它在“概率预测”与“指令遵循”之间产生的冲突。
在技术细节上,有几个点决定了 LLM 的能力上限。首先是 Loss(损失函数)值的意义。在训练过程中,Loss 值的降低意味着模型对下一个 Token 的预测准确率在提升。这就是为什么业界疯狂堆算力的逻辑:更低的 Loss 意味着模型对语言模式的捕捉更精准,从而在表现上呈现出更强的“推理能力”。
其次是硬件的必然性。为什么必须用 GPU 或 TPU?因为 LLM 的核心是海量的张量运算(Tensor Operations),这种规模的并行数学计算如果交给 CPU,效率会低到无法接受。而当我们讨论开源模型时,其实开源的是前向传播代码和那几十亿个参数(权重数字),闭源模型则通过 API 将这些权重和计算逻辑封装了起来。
最让我觉得有趣(且经常被吐槽)的一个点是,模型其实并不擅长数数或拼写。很多用户发现模型数不清一个单词里有几个字母 'r',这并非因为它“笨”,而是因为 Tokenization(分词)机制。模型处理的是 Token 而非单个字符,一个单词在模型眼里可能只是一个数字 ID,它并不直接感知字符的物理排列。
理解了这些底层逻辑,我们在构建 Prompt 工作流时会理性得多。当你发现模型在某个复杂任务上表现不稳定时,不要试图用“请你认真思考”这种情绪化词汇去引导,而应该意识到这可能触碰到了它作为“概率预测机”的底层局限。此时,通过 Few-Shot(给几个正确示例)来引导它进入正确的补全模式,效果往往比单纯增加指令强度要好得多。
把Temperature直接拉到0.8,结果它给我编了个离谱的新词,笑死我了