随着 ChatGPT 等大语言模型(LLM)的火爆,“AI 如何理解并生成人类语言”成为大众热议的话题。很多人好奇:为什么 LLM 能像人一样接话、写诗、甚至编程?答案藏在“预测下一个词”这个看似简单的任务背后。本文将带你从 Token 到 Transformer,一窥 LLM 的完整工作流程。
第一步:把文字变成数字——Tokenization
计算机无法直接理解自然语言,因此需要将文本转换为数字。这一过程称为 Tokenization(分词)。LLM 不会按单个汉字或字母切割,而是采用子词(subword)算法(如 BPE 或 SentencePiece),将常见词保留为整体,罕见词拆分为更小的单元。例如“ChatGPT”可能被拆成“Chat”和“GPT”两个 Token,“人工智能”则可能被切为“人工”和“智能”。每个 Token 都对应一个唯一的 ID(整数),一段文本由此变成一串数字序列。
在训练前,模型会建立一个词汇表(Vocabulary),通常包含数万到数十万个 Token。例如 GPT-3 的词汇表约 5 万个 Token。通过 Tokenization,模型将用户输入“今天天气”转化为 [112, 345, 678] 这样的 ID 序列。
第二步:赋予含义——嵌入与位置编码
Token ID 仅表示类别,没有语义关联。为了让模型理解“苹果”和“水果”的相似性,需要将每个 ID 映射为高维向量(Embedding)。这些向量在训练中学习到词的语义和语法关系:相似的词向量距离更近,例如“国王 - 男人 + 女人 ≈ 王后”。
但词序同样重要。“我打你”和“你打我”含义完全相反。由于 Transformer 结构本身不具备顺序感知能力,需要额外加入位置编码(Positional Encoding)。常用的正弦波编码或可学习位置嵌入,为每个位置生成一个独特的向量,与词嵌入相加,从而让模型知道词的前后顺序。
第三步:核心机制——Transformer 与自注意力
得到带有位置信息的词向量后,它们进入多层 Transformer 解码器(以 GPT 为代表的因果语言模型)。每层 Transformer 主要由两个子层构成:多头自注意力(Multi-Head Self-Attention)和前馈神经网络(FFN)。
自注意力机制是 LLM 的“理解引擎”。它让每个词向量都能“关注”序列中所有其他词向量,并计算它们之间的关联权重。例如,“他吃了一个苹果,然后把它洗干净”,模型在预测“它”时,会通过注意力机制发现“苹果”的权重最高,从而理解“它”指代苹果。更重要的是,在预测下一个词时,模型只能看到当前词及其左侧的词(因果掩码),不能偷看后面。这保证了生成过程的自回归性——每次只输出一个 Token。
多头注意力(Multi-Head)让模型从不同角度同时学习关系(如语法关系、长距离依赖等)。每个头计算一组注意力矩阵,最后拼接并线性变换。
随后,注意力层的输出进入前馈神经网络,进行非线性变换,进一步提取高层特征。每一层都包含残差连接和层归一化,以稳定训练。通过堆叠数十甚至上百层(如 GPT-3 有 96 层),模型能捕捉极其复杂的语言模式。
第四步:预测下一个词——从概率到文本
经过最后的 Transformer 层,模型输出一个向量,维度等于词汇表大小。通过 Softmax 函数将其转换为概率分布,表示每个 Token 成为下一个词的可能性。例如输入“今天天气真”,模型可能给出“好”的概率 0.6,“热”的概率 0.3,“冷”的概率 0.1。根据这个概率,模型选择最可能(或采样随机)的 Token 作为输出。
然后,这个新 Token 被拼接回输入序列,重复上述过程,逐字生成完整回答。这就是 LLM 生成文本的本质——不断预测下一个词,直到遇到终止符或达到最大长度。
第五步:训练与调优——从随机到智能
一个未训练的模型只会输出随机 Token。训练过程通过海量文本(互联网、书籍、代码等)进行。模型每次预测后,与真实的下一个词对比,计算交叉熵损失函数,并通过反向传播更新所有参数(包括嵌入、注意力权重等)。GPT-3 拥有 1750 亿参数,训练一次需要数千块 GPU 连续跑数周。
为了更贴合人类偏好,还需要经过指令微调(Instruction Tuning)和基于人类反馈的强化学习(RLHF)。这些技术让模型学会遵循指令、减少有害输出。
结语
从 Token 化输入,到注意力机制捕捉长距依赖,再到逐概率输出,LLM 的“预测下一个词”绝非简单的单词接龙。它通过大规模参数和深层网络,隐式学习了语法、逻辑甚至世界知识。如今,从聊天机器人到代码助手,这一机制的潜力仍在不断被挖掘。理解它的原理,或许能帮助我们更好地驾驭 AI 的浪潮。