2.1 大语言模型的工作原理
理解大语言模型的工作原理,是掌握提示词工程的重要基础。本节将用相对直观的方式解释这些复杂系统的核心机制,重点关注与提示词设计相关的概念。
2.1.1 从语言建模说起
大语言模型的核心任务是 语言建模( Language Modeling),即学习和表示人类语言的概率分布。简单来说,模型在训练过程中学会了一件事:给定一段文本,预测下一个最可能出现的词是什么。
例如,给定文本“今天天气真”,模型会计算各个可能续写词的概率:
“好” — 概率 45%
“不错” — 概率 20%
“糟糕” — 概率 15%
“热” — 概率 10%
其他 — 概率 10%
然后根据这个概率分布选择下一个词,并重复这个过程直到生成完整的回复。
这个看似简单的“下一词预测”任务,当在海量文本数据上进行训练后,会涌现出令人惊讶的能力:模型不仅学会了语法规则,还学会了事实知识、推理模式,甚至创意表达。
2.1.2 Transformer 架构
现代大语言模型几乎都基于 Transformer 架构,这是 2017 年由 Google 研究团队在论文 Attention Is All You Need中提出的神经网络结构。
图 2-1: Transformer 架构的核心组件
注意力机制
Transformer 的核心创新是 自注意力机制( Self-Attention),它使模型能够在处理每个词时“关注”输入序列中的所有其他词,并动态计算它们之间的关联强度。
这种机制使模型能够捕捉长距离的语义依赖关系,理解复杂的句子结构。
位置编码
由于 Transformer 并行处理所有输入 token ,需要通过 位置编码( Positional Encoding)告诉模型每个词在序列中的位置,从而保留语序信息。
多层堆叠
Transformer 通过堆叠多个相同的层来逐步提取更高级的语言特征。底层可能学习语法和简单模式,而高层则捕捉更抽象的语义和推理能力。GPT-4 等大型模型可能有数十甚至上百层。
2.1.3 Token:模型理解的基本单位
大语言模型不直接处理字符或完整单词,而是处理 Token——一种介于字符和单词之间的文本单位。
什么是 Token
Token 是模型词汇表中的基本单元,可能是:
一个完整的常用词(如 'the', “是”)
一个词的一部分(如 'understanding' 可能被拆分为 'under' + 'stand' + 'ing')
一个汉字(中文通常每个字是一个 Token)
标点符号或空格
不同模型使用不同的分词器,因此相同文本在不同模型中的 Token 数量可能不同。
Token 与提示词工程的关系
理解 Token 对提示词设计有实际意义:
成本计算: API 定价通常基于 Token 数量,输入和输出 Token 数直接影响费用。
长度限制:模型的上下文窗口以 Token 计量,过长的提示词可能被截断。
估算方式:
英文:1 个 Token ≈ 4 个字符或 0.75 个单词
中文:1 个汉字 ≈ 1-2 个 Token
例如,一段 1000 词的英文文章大约是 1300-1500 个 Token ,而 1000 字的中文文章大约是 1000-2000 个 Token。
2.1.4 训练过程:预训练与微调
大语言模型的能力来源于其训练过程,通常分为两个主要阶段:
预训练
在预训练阶段,模型在海量文本数据上进行训练,学习预测下一个 Token。这些数据可能包括:
网页内容(如 Common Crawl)
书籍和文献
代码仓库
维基百科等百科全书
新闻文章
预训练需要巨大的计算资源,可能需要数千个 GPU 训练数周甚至数月。在这个过程中,模型学会了:
语言的语法规则
世界知识和事实
推理模式
各种文本风格和格式
微调与对齐
预训练后的模型具有强大的语言能力,但可能不太“听话”——它只会续写文本,而不是按照指令完成任务。
微调阶段使用更小但更精心策划的数据集来调整模型行为:
监督微调( Supervised Fine-tuning, SFT):使用高质量的指令-回复对训练模型遵循指令。
人类反馈强化学习( Human Feedback Reinforcement Learning, RLHF):收集人类对模型输出的偏好评价,训练模型生成人类更喜欢的回复。
这些对齐技术使模型从“文本预测器”转变为“智能助手”,能够理解指令、遵循格式要求,并避免生成有害内容。
2.1.5 推理过程:从提示词到输出
当用户发送提示词给模型时,会经历以下推理过程:
图 2-2:从提示词到输出的推理流程
逐 Token 生成
模型是一个 Token 一个 Token 地生成回复。每生成一个新 Token ,它就被添加到上下文中,作为预测下一个 Token 的输入。这个过程称为 自回归生成( Autoregressive Generation)。
这解释了为什么:
模型生成长文本需要更多时间
模型“知道”自己之前说了什么(因为前文在上下文中)
一旦生成了某些内容,可能会影响后续生成的方向
概率采样
模型不总是选择概率最高的 Token。通过调整采样参数(如 temperature),可以控制生成的随机性:
低随机性:更确定、更一致的输出
高随机性:更多样、更有创意的输出
这些参数将在 2.3 节详细讨论。
2.1.6 涌现能力
当模型规模(参数量、训练数据、计算资源)达到一定阈值时,会出现一些较小模型不具备的能力,这被称为 涌现能力( Emergent Abilities):
少样本学习:只需少量示例就能学会新任务
思维链推理:能够展示推理步骤
指令遵循:理解并执行复杂的指令
代码生成:编写和理解程序代码
涌现能力解释了为什么某些提示词技术(如思维链)在大模型上效果显著,而在小模型上可能无效。
2.1.7 对提示词设计的启示
理解模型工作原理后,可以得出以下提示词设计启示:
提示词是条件信号,而非简单指令:大模型的本质是在计算“给定输入文本,下一个 Token 的概率分布”。从这个视角看,提示词工程的本质不是“沟通技巧”,而是对模型输出概率分布的精确操控。改变提示词就是改变概率分布的形状,从而影响采样结果。
上下文决定输出:模型根据完整的上下文生成回复,提示词中的每个部分都可能影响输出。
清晰的信号更有效:模型需要明确的“信号”来理解任务,模糊的提示词会导致模型“猜测”。
顺序和位置有影响:由于注意力机制和位置编码,信息在提示词中的位置可能影响其权重。
示例是强引导:由于训练方式,模型擅长从示例中学习模式并应用到新情况。
想一想
模型是逐 Token 生成的——这对你在设计长文本输出提示词时有什么启示?
预训练阶段和对齐阶段各自解决了什么问题?如果跳过对齐训练,用户体验会有什么变化?
最后更新于
