大模型如何选择下一个词:从概率预测到文本生成的完整技术链路
引言:模型输出的真正面目 当你在ChatGPT中输入一个问题,屏幕上逐字显现答案时,你是否想过:模型内部发生了什么?它是如何决定下一个词的? 很多人以为大语言模型直接输出文字,这是一个普遍的误解。事实上,模型的输出是一个由数万个数字组成的向量——每个数字对应词表中的一个词,代表该词成为"下一个词"的原始分数。这个分数,在技术术语中被称为Logit。 ...
引言:模型输出的真正面目 当你在ChatGPT中输入一个问题,屏幕上逐字显现答案时,你是否想过:模型内部发生了什么?它是如何决定下一个词的? 很多人以为大语言模型直接输出文字,这是一个普遍的误解。事实上,模型的输出是一个由数万个数字组成的向量——每个数字对应词表中的一个词,代表该词成为"下一个词"的原始分数。这个分数,在技术术语中被称为Logit。 ...
一个看似简单的参数 当你第一次在API文档中看到seed参数时,可能会觉得它只是一个普通的整数。但这个看似简单的参数,却隐藏着大语言模型推理过程中最深层的随机性控制机制。 ...
当你向一个大语言模型输入"今天天气怎么样",它在毫秒级别内就能返回一段流畅的回答。这个过程看似简单,背后却隐藏着一套精密的计算流程。输入的文本经历了分词、嵌入、多层Transformer处理、概率计算、采样选择等多个阶段,最终才能生成你所看到的每一个字符。 ...
在处理变长序列时,padding是一个看似简单却暗藏玄机的预处理步骤。许多开发者在从BERT迁移到GPT风格模型时,都会遇到一个令人困惑的问题:同样的数据预处理流程,为什么在BERT上工作正常,在LLaMA上却产生荒谬的输出?答案藏在decoder-only架构的生成机制中。 ...
一个预训练完成的大型语言模型,如果直接投入使用,往往会给出令人困惑的回答。问它"法国的首都是哪里?",它可能会继续补全这个句子,输出"德国的首都是柏林,意大利的首都是罗马…"——这是典型的续写行为,而非回答问题。 ...
同样的文本内容,在一个模型中可能只需要100个token,在另一个模型中却可能膨胀到300个。这背后的差异源于一个经常被忽视但至关重要的设计决策:词表大小的选择。 ...
一个困惑的起点 你问 GPT-4:“告诉我关于量子纠缠的事情”,它给你一段教科书式的定义。你换个说法:“量子纠缠到底有多诡异?能用通俗的方式解释吗?“回答变得生动有趣,甚至还用了比喻。 ...