1. 大语言模型(LLM)的本质与核心架构
大语言模型(Large Language Model, LLM)并非魔法,而是一个基于数学、统计学和算力的复杂系统。它的核心能力来源于对海量语言数据的概率建模和模式识别。理解LLM的工作原理,需要从最基本的语言表示开始,逐步深入到其核心架构Transformer。
1.1 语言表示:从文字到数学
计算机无法直接理解人类语言,因此需要将文字转化为数学表示。这个过程分为两个关键步骤:
-
Tokenization(分词):将连续的文字流切分为离散的语义单元。对于英文,一个token可能是一个单词(如"apple")或子词(如"ing");对于中文,通常以字或词为单位。例如:
- 英文:"I love AI" → ["I", "love", "AI"]
- 中文:"我喜欢人工智能" → ["我", "喜欢", "人工", "智能"]
-
Embedding(嵌入):将离散的token映射到连续的高维向量空间。这种表示的关键在于:
- 语义相似的词在向量空间中距离相近
- 向量运算可以捕捉语义关系(如:国王-男人+女人≈女王)
- 典型维度为1024或更高,每个维度编码某种潜在语义特征
实际应用中,现代LLM使用的tokenizer可以处理数十万种不同的token,包括特殊符号、表情符号等。例如,GPT-4的tokenizer包含约10万个token。
1.2 Transformer架构解析
2017年Google提出的Transformer架构是LLM的核心突破,它解决了传统RNN/LSTM在长序列建模中的局限性。Transformer的核心创新在于:
1.2.1 自注意力机制(Self-Attention)
自注意力机制使模型能够动态计算输入序列中各个token之间的相关性。具体实现包括:
- 查询(Query)、键(Key)、值(Value)的三元组计算
- 缩放点积注意力(Scaled Dot-Product Attention)
- 多头注意力(Multi-Head Attention)机制
例如在句子"The animal didn't cross the street because it was too tired"中,自注意力机制能够准确识别"it"与"animal"之间的强关联,而与"street"关联较弱。
1.2.2 前馈神经网络(Feed-Forward Network)
FFN层通常由两个线性变换和一个激活函数组成:
- 第一线性层将维度扩大(如从1024到4096)
- 使用GeLU等非线性激活函数
- 第二线性层将维度还原
FFN层的作用可以理解为:
- 存储和提取模型从数据中学到的知识
- 对注意力层的输出进行非线性变换
- 实际参数量通常占模型总参数的大部分
1.2.3 其他关键组件
- 层归一化(Layer Norm):稳定训练过程
- 残差连接(Residual Connection):缓解梯度消失
- 位置编码(Positional Encoding):注入序列顺序信息
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. LLM的训练过程详解
一个成熟的LLM需要经过三个关键训练阶段,每个阶段都有其独特的目标和方法。
2.1 预训练(Pre-training)
预训练阶段是LLM获取通用语言能力的核心环节:
数据规模:
- 典型数据集:Common Crawl、Wikipedia、书籍、代码等
- 数据量可达数TB,token数量达数万亿
- 需要复杂的清洗和过滤流程
训练目标:
- 自回归语言建模(Autoregressive LM):预测下一个token
- 或掩码语言建模(Masked LM):预测被遮蔽的token
技术细节:
- 使用大规模分布式训练(数百至数千GPU)
- 混合精度训练(FP16/FP32)加速计算
- 梯度裁剪防止梯度爆炸
- 学习率预热和衰减策略
产出特点:
- 具备强大的语言生成能力
- 掌握丰富的世界知识
- 但缺乏指令跟随和对话能力
2.2 有监督微调(Supervised Fine-Tuning)
SFT阶段使模型学会遵循人类指令:
数据特点:
- 高质量人工编写的问答对
- 涵盖多种任务类型(问答、创作、分析等)
- 规模通常为数万至数十万样本
训练方法:
- 使用与预训练相似的损失函数
- 通常采用较低的学习率
- 可能需要多轮迭代优化
关键改进:
- 学会对话格式(如System/User/Assistant角色)
- 理解复杂指令意图
- 生成结构化的合理回答
2.3 人类反馈强化学习(RLHF)
RLHF阶段使模型输出更符合人类偏好:
核心组件:
- 奖励模型(Reward Model):
- 通过人类对回答的排序训练
- 学习评估回答质量的隐式标准
- 策略模型(Policy Model):
- 使用PPO等强化学习算法优化
- 最大化奖励模型的预期得分
训练流程:
- 收集人类对模型输出的偏好数据
- 训练奖励模型预测人类偏好
- 使用强化学习优化策略模型
- 迭代进行步骤1-3
效果提升:
- 回答更有帮助且无害
- 减少幻觉(hallucination)
- 风格更符合用户期望
3. 推理生成过程与技术细节
LLM的文本生成过程是一个复杂的概率采样过程,涉及多个关键技术参数。
3.1 自回归生成机制
LLM通过以下步骤生成文本:
- 接收输入并计算上下文表示
- 预测下一个token的概率分布
- 根据采样策略选择一个token
- 将选择的token追加到输入
- 重复步骤2-4直到生成结束
概率计算:
- 使用softmax将logits转换为概率
- 通常会对logits进行温度缩放
- 可能应用top-k或top-p过滤
3.2 关键生成参数
温度(Temperature):
- 控制生成多样性的主要参数
- 温度→0:确定性选择最高概率token
- 温度→1:保持原始概率分布
- 温度>1:放大低概率token的可能性
Top-k/Top-p采样:
- Top-k:仅从概率最高的k个token中采样
- Top-p(核采样):从累积概率达p的最小token集合中采样
- 两者可结合使用,提高生成质量
重复惩罚:
- 通过降低已出现token的概率减少重复
- 典型参数:presence_penalty和frequency_penalty
3.3 长上下文处理
现代LLM通过以下技术处理长上下文:
- 扩展的上下文窗口(如128K tokens)
- 高效的注意力计算(如Flash Attention)
- 外挂知识检索(RAG)
- 层次化记忆机制
4. 实践应用与优化技巧
4.1 提示工程最佳实践
基础原则:
- 明确指令:清晰表达需求
- 提供示例:few-shot prompting
- 分步思考:Chain-of-Thought
- 角色设定:System Prompt设计
高级技巧:
- 思维树(Tree of Thought)
- 自洽性校验(Self-Consistency)
- 反射提示(Reflexion)
- 工具使用(Tool Calling)
4.2 模型微调策略
全参数微调:
- 适用场景:领域深度适配
- 资源需求:高(需多GPU)
- 技术要点:学习率调度、早停
参数高效微调:
- LoRA:低秩适配
- Prefix Tuning:前缀优化
- Adapter:插入小型网络模块
4.3 性能优化方法
推理加速:
- 量化(4/8-bit量化)
- 模型蒸馏
- 推测解码(Speculative Decoding)
- 批处理优化
内存优化:
- 梯度检查点
- 激活值压缩
- 内存高效注意力
在实际应用中,理解这些底层原理能帮助开发者更好地调试模型行为,优化提示设计,并针对特定场景进行定制化调整。例如,当需要创意写作时可以适当提高温度参数,而在需要事实准确性时应降低温度并启用检索增强。
