Skip to content

大模型原理简介

理解大模型如何"思考",才能更好地驾驭它

从GPT说起

GPT的全称是 Generative Pre-trained Transformer(生成式预训练变换器),这个名字揭示了它的三个核心特征:

GPT = Generative + Pre-trained + Transformer
        ↓              ↓              ↓
     生成能力        预训练基础      架构基础

Transformer架构:大模型的心脏

注意力机制

Transformer的核心创新是自注意力机制(Self-Attention),它让模型能够理解词与词之间的关系。

传统处理方式:
"苹果" → 单独处理 → 无法理解上下文

注意力机制:
"我吃了一个苹果" → "苹果"与"吃"建立强关联 → 理解为水果
"我买了一个苹果手机" → "苹果"与"手机"建立强关联 → 理解为品牌

注意力计算过程

输入序列 → Q(Query) + K(Key) + V(Value)

        Attention(Q,K,V) = softmax(QK^T/√d)V

           加权求和得到输出
概念类比作用
Query (Q)查询问题"我要找什么?"
Key (K)索引标签"这里有什么?"
Value (V)实际内容"具体是什么?"

多头注意力

一个注意力头可能关注不同类型的关系,多头注意力让模型同时关注多个角度:

多头注意力 = 多个独立的注意力头并行计算

头1:关注语法结构
头2:关注语义关系  
头3:关注指代关系
...
头N:关注其他特征

最终输出 = 拼接所有头的输出 → 线性变换

编码器-解码器结构

原始Transformer包含两部分:

┌─────────────────────────────────────────┐
│              Transformer                 │
│  ┌─────────────┐    ┌─────────────┐     │
│  │   Encoder   │ →  │   Decoder   │     │
│  │  (编码器)    │    │  (解码器)    │     │
│  │             │    │             │     │
│  │ 理解输入文本  │    │ 生成输出文本  │     │
│  └─────────────┘    └─────────────┘     │
└─────────────────────────────────────────┘

GPT系列:只使用Decoder(解码器)
BERT系列:只使用Encoder(编码器)
T5系列:Encoder + Decoder

大模型是如何训练的?

训练三阶段

阶段一:预训练
────────────────────────────
目标:学习语言的统计规律
数据:海量无标注文本(TB级)
方法:预测下一个词
成本:极高(数百万美元)

阶段二:监督微调 (SFT)
────────────────────────────
目标:学习遵循指令
数据:人工标注的问答对
方法:在指令数据上微调
成本:中等

阶段三:人类反馈强化学习 (RLHF)
────────────────────────────
目标:对齐人类价值观
数据:人类偏好排序
方法:强化学习优化
成本:较高

预训练:预测下一个词

输入:"今天天气真"

模型预测下一个词的概率分布

"好": 0.35
"不错": 0.25
"差": 0.15
"热": 0.10
...

选择概率最高的词:"好"

继续预测:"今天天气真好"

为什么预测下一个词能学到知识?

要准确预测下一个词,模型需要理解:
- 语法规则:"他___" → 预测动词而非名词
- 常识知识:"太阳从___升起" → 预测"东方"
- 专业领域:"Python中print是___" → 预测"函数"
- 逻辑推理:"1+1等于___" → 预测"2"

RLHF:让模型更"听话"

RLHF流程:

1. 生成多个回答
   问题:"如何学习编程?"
   回答A:详细的学习路径...
   回答B:编程很难,放弃吧...
   回答C:建议从Python开始...

2. 人类排序
   A > C > B

3. 训练奖励模型
   学习人类的偏好

4. 强化学习优化
   让模型生成更符合人类偏好的回答

涌现能力:量变到质变

当模型规模达到一定程度,会出现训练时未曾明确训练过的能力:

模型规模与能力涌现:

参数量

  │                              ████████ 推理能力
  │                         ██████
  │                    █████
  │               █████
  │          █████
  │     █████
  │██████                              ████████ 代码能力
  │                               ██████
  │                          █████
  │                     █████
  └─────────────────────────────────────────────→
       1B    10B    100B    1T    参数规模

典型的涌现能力

能力描述涌现规模
上下文学习从示例中学习新任务~100B参数
思维链推理分步骤解决复杂问题~100B参数
指令遵循理解并执行复杂指令~10B参数
代码生成编写可执行代码~10B参数

Token:模型的"词汇单元"

什么是Token?

Token是模型处理文本的最小单位:

英文处理:
"Hello world" → ["Hello", " world"] → 2 tokens

中文处理:
"你好世界" → ["你好", "世界"] → 2 tokens

"你好世界" → ["你", "好", "世", "界"] → 4 tokens

混合文本:
"Hello世界" → ["Hello", "世", "界"] → 3 tokens

Token与成本

Token计算规则:
- 1个英文单词 ≈ 1.3 tokens
- 1个中文字符 ≈ 1-2 tokens
- 代码的token密度更高

成本估算示例:
GPT-4: $0.03/1K input tokens
处理10万字中文 ≈ 15万tokens ≈ $4.5

Token优化建议

  1. 使用简洁的表达
  2. 避免重复内容
  3. 合理设计上下文窗口
  4. 选择合适的模型版本

上下文窗口

上下文窗口决定了模型一次能处理的最大文本长度:

上下文窗口示意:

┌─────────────────────────────────────────────────────┐
│                    上下文窗口 (8K tokens)             │
│  ┌─────────────────────────────────────────────────┐│
│  │ 用户输入 + 历史对话 + 系统提示 + 模型输出        ││
│  └─────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────┘

超出窗口 → 早期内容被"遗忘"

主流模型的上下文窗口

模型上下文窗口适用场景
GPT-4 Turbo128K长文档分析
Claude 3200K超长文本处理
GPT-3.516K一般对话
DeepSeek64K代码分析

推理过程

温度参数

温度控制输出的随机性:

温度 = 0:确定性输出
────────────────────
输入:"1+1等于"
输出:"2"(100%选择概率最高的)

温度 = 0.7:适度随机
────────────────────
输入:"写一首关于春天的诗"
输出:有创意但相关的内容

温度 = 1.0:高度随机
────────────────────
输入:"今天天气"
输出:可能产生意想不到的内容

温度选择建议

任务类型推荐温度原因
数学计算0需要确定性答案
代码生成0.2需要准确语法
内容创作0.7-0.9需要创意
头脑风暴1.0+需要多样性

Top-P 采样

Top-P (核采样):
只从累计概率达到P的最可能词汇中选择

P = 0.9 示例:
候选词概率:A(0.4), B(0.3), C(0.2), D(0.05), E(0.05)
累计概率:A+B+C = 0.9
→ 只从A、B、C中选择

模型能力边界

大模型能做什么?

✅ 擅长的任务:
- 文本生成与改写
- 代码编写与解释
- 知识问答与总结
- 翻译与本地化
- 创意内容生成
- 数据分析与洞察

大模型不能做什么?

❌ 不擅长的任务:
- 精确数学计算(可能出错)
- 实时信息获取(知识有截止日期)
- 访问外部系统(需要工具支持)
- 长期记忆(每次对话独立)
- 保证100%准确性(可能产生幻觉)

幻觉问题

幻觉:
模型生成看似合理但实际错误的内容

示例:
问题:"《红楼梦》的作者是谁?"
正确答案:曹雪芹
幻觉回答:《红楼梦》的作者是鲁迅...

原因:
- 训练数据中的噪声
- 模型的"创造性"倾向
- 对不确定问题的强行回答

减少幻觉的方法

  1. 提供明确的上下文
  2. 要求模型"不确定时说不知道"
  3. 使用RAG检索增强
  4. 人工验证关键信息

学习检验

概念理解

  1. Transformer的核心创新是什么?
  2. 为什么大模型会出现涌现能力?
  3. 温度参数如何影响模型输出?

实践思考

  1. 在什么场景下应该使用低温度?什么场景使用高温度?
  2. 如何设计Prompt来减少模型的幻觉?

下一步学习

📖 AI应用开发概述💬 开始Prompt工程🔌 OpenAI API实践


💡 核心要点:大模型本质上是"预测下一个词"的统计模型,理解这一点有助于你更好地使用它。