大语言模型基础:Transformer架构、Tokenization、注意力机制、生成原理与能力边界

要真正驾驭大语言模型(LLM)的提示词设计,必须首先理解模型内部的运作机制。提示词并非简单的“指令字符串”,而是被模型转化为数学信号、经过多层神经网络计算后,才生成回复的。本章将从Transformer架构出发,拆解Tokenization(分词)、注意力机制、生成原理,并明确模型的能力边界——这些知识将直接决定你设计提示词时的策略选择与容错空间。

输入文本 “请解释注意力机制” Tokenization [CLS] 请 解释 注意 力 机制 嵌入向量 768维向量序列 Transformer 解码器块(多层堆叠) 自注意力层 Q/K/V 交互 前馈网络 非线性变换 残差连接 + 层归一化 Softmax 概率 下一个分布 采样生成 贪心/温度采样 新拼接回输入

上图展示了LLM从输入到输出的完整数据流:原始文本经过分词、嵌入、多层Transformer计算,最终通过Softmax输出下一个的概率分布。理解这条链路,是设计高质量提示词的前提。

2.1 Transformer架构:自注意力与并行计算

核心原理

2017年,Vaswani等人提出Transformer架构,彻底取代了RNN/LSTM。其核心创新在于自注意力机制(Self-Attention),允许模型在处理每个时,直接关注序列中所有其他,从而捕捉长距离依赖关系。与RNN必须逐步传递隐状态不同,Transformer可以并行处理整个序列,大幅提升训练效率。

一个标准的Transformer块包含两个子层:多头自注意力层和前馈网络(FFN)。每个子层都采用残差连接和层归一化。对于生成式模型(如系列),使用的是解码器架构,其中注意力层带有因果掩码(Causal Mask),确保模型只能看到当前位置之前的,不能“偷看”未来信息。

特性RNN/LSTMTransformer
并行计算无法并行,需逐步计算完全并行,训练速度快
长距离依赖易遗忘,梯度消失直接注意力,全局视野
计算复杂度O(n)O(n²)(n为序列长度)
位置编码隐式包含在顺序中需显式添加位置编码
提示词启示:由于Transformer的O(n²)复杂度,超长提示词(如数万)会显著增加计算成本和延迟。在设计提示词时,应尽量精简冗余内容,将关键指令前置。

判断方法:识别模型架构差异

不同LLM(如、Claude、Llama)虽然都基于Transformer,但具体实现有差异:层数(如70层 vs 32层)、注意力头数、激活函数(GELU vs SwiGLU)、是否使用MoE(混合专家)等。这些差异影响模型的推理深度和知识容量,但提示词设计的基本原则(清晰、具体、有上下文)在所有架构上通用。

2.2 Tokenization:模型眼中的文本碎片

核心原理

Tokenization是将文本拆分为模型可处理的最小单元。常见策略包括:词级分词(按空格拆分)、子词分词(如BPE、WordPiece)、字符级分词。现代LLM普遍采用Byte-Pair Encoding(BPE)或其变体,将常见词保留为完整,罕见词拆分为多个子词。

例如,英文单词"unbelievable"可能被拆分为["un", "belie", "vable"]三个。中文则通常按字或词拆分,例如“人工智能”可能被拆分为["人工", "智能"]或["人", "工", "智", "能"],取决于词表设计。

# 示例:的Tokenization效果(近似)
输入: "请解释Transformer的注意力机制"
序列: ["请", "解释", "Transformer", "的", "注意", "力", "机制"]
数量: 7个
风险提示:数量直接影响API计费(按计费)和模型上下文窗口占用。中文文本通常比英文消耗更多(因为中文字符信息密度高但词表覆盖有限)。设计提示词时,应避免无意义的重复表述,压缩冗余修饰词。

操作流程:估算消耗

  1. 使用模型提供商的Tokenizer工具(如的tiktoken库)进行精确计算。
  2. 粗略估算:英文约4个字符/,中文约1.5-2个汉字/。
  3. 为回复预留空间:提示词+回复总长度不能超过模型上下文窗口(如8K、32K、128K)。

2.3 注意力机制:模型如何“聚焦”

核心原理

自注意力机制通过三个可学习矩阵将每个映射为Query(查询)、Key(键)、Value(值)向量。计算过程为:每个的Query与所有的Key做点积,得到注意力分数,经Softmax归一化后,对Value加权求和。多头注意力(Multi-Head Attention)将这一过程并行执行多次,捕捉不同子空间的关系。

在提示词场景中,注意力机制意味着:提示词中越靠前、越明确的指令,越容易被模型赋予高注意力权重。相反,如果提示词中混杂大量无关信息,模型可能将注意力分散到噪声上,导致输出偏离预期。

案例拆解:假设提示词为“你是一个翻译助手。今天天气很好。请将‘Hello’翻译成中文。”模型可能因“天气很好”分散注意力,但通常仍能正确翻译。然而,如果提示词为“请翻译:Hello。另外,告诉我明天的天气。”模型可能混淆任务优先级。正确做法是将主任务放在开头,并用分隔符明确区分。

实战场景:利用注意力特性优化提示词

  • 指令前置:将核心任务放在提示词前50个内。
  • 使用分隔符:用```、###、XML标签等明确区分指令与输入数据。
  • 重复关键约束:对于重要限制(如“只输出JSON”),可在开头和结尾各强调一次。

2.4 生成原理:自回归与采样策略

核心原理

LLM的生成过程是自回归(Autoregressive)的:模型逐个生成,每生成一个,就将其拼接到输入序列末尾,再预测下一个。这个过程重复直到生成结束符(EOS)或达到最大长度。每一步,模型输出一个概率分布,覆盖整个词表。

采样策略决定如何从概率分布中选择下一个:

策略原理适用场景
贪心解码始终选择概率最高的事实性问答、代码生成
温度采样调整概率分布的平滑度(温度>1更随机,<1更确定)创意写作、头脑风暴
Top-k采样仅从概率最高的k个中采样平衡多样性与质量
Top-p(核采样)从累积概率超过p的最小集合中采样通用推荐,动态调整候选集
# 温度参数的影响(示意)
温度=0.2: 输出更保守,重复度高
温度=0.8: 平衡创造性与准确性
温度=1.5: 输出更随机,可能产生幻觉
提示词启示:在提示词中明确指定采样参数(如“使用温度0.3”)可以影响输出风格,但更有效的方式是通过语言约束,例如“请给出最保守的答案”或“请发挥想象力”。

常见误区与复盘

  • 误区1:认为模型“理解”提示词。实际上模型只是计算概率分布,没有真正的语义理解。因此,模糊的提示词会导致随机输出。
  • 误区2:忽略上下文窗口限制。当提示词+历史对话超过窗口时,最早的内容会被截断,导致模型“遗忘”关键信息。
  • 误区3:过度依赖采样参数。调整温度/top_p是“治标”,优化提示词结构才是“治本”。

2.5 能力边界:知道模型“不能做什么”

核心原理

LLM的能力边界由训练数据、模型容量、上下文窗口共同决定。主要限制包括:

  • 知识截止日期:模型无法知晓训练数据之后的事件。
  • 幻觉问题:模型可能编造不存在的事实,尤其在缺乏足够上下文时。
  • 数学与逻辑推理:复杂计算(如多位数乘法)和形式逻辑推理仍不可靠。
  • 长文本一致性:超过一定长度后,模型可能前后矛盾。
风险提示:当提示词要求模型执行超出能力边界的任务(如“计算987654321×123456789”),模型可能给出看似合理但错误的答案。设计提示词时,应主动将复杂任务拆解为子任务,或要求模型“逐步思考”以降低幻觉风险。

案例拆解:边界认知的实战应用

背景:某数据分析师需要LLM从一份财报中提取关键指标并计算同比增长率。
初始提示词:“分析这份财报,计算所有同比增长率。”
问题:模型可能遗漏部分指标,或计算错误。
优化后提示词:“请从以下财报中提取营收、净利润、毛利率三个指标,并计算2023年对比2022年的同比增长率。财报内容:...(限定文本)。”
结果:优化后模型准确提取并计算,因为任务被明确限定,且提供了具体数据范围。
复盘:理解模型的计算能力边界后,通过结构化提示词将任务从“开放式分析”转变为“封闭式提取+计算”,显著提升可靠性。

总结复盘

掌握Transformer架构、Tokenization、注意力机制和生成原理,是提示词设计的“内功”。核心要点:

  1. 意识:精简提示词,控制消耗。
  2. 注意力引导:将关键指令放在显眼位置,使用分隔符。
  3. 生成可控:通过语言约束而非仅依赖采样参数。
  4. 边界敬畏:主动拆解复杂任务,避免触发幻觉。