Appearance
章节1:大模型原理与选型
学习目标
- 理解大语言模型的技术演进脉络(BERT → GPT → 多模态)
- 掌握主流大模型(GPT / LLaMA / Qwen / Claude)的能力边界与适用场景
- 理解 Scaling Law 与涌现能力的基本概念
- 能够根据业务需求进行开源 vs 闭源选型决策
- 了解训练数据采集与对齐技术(SFT / RLHF / DPO)
核心知识点
1.1 大模型技术演进
定义
大语言模型(Large Language Model, LLM)经历了从编码器-解码器架构到纯解码器架构再到多模态融合的演进路径。
| 阶段 | 代表模型 | 核心特点 |
|---|---|---|
| 预训练时代 | BERT (2018) | 编码器双向注意力,擅长理解任务 |
| GPT时代 | GPT-3 (2020) | 纯解码器+自回归,擅长生成任务 |
| 指令跟随时代 | InstructGPT (2022) | 引入 RLHF 对齐人类偏好 |
| 开源爆发时代 | LLaMA / Qwen (2023) | 高质量开源,社区可复现 |
| 多模态时代 | GPT-4V / Gemini (2024) | 文本+图像+语音统一理解 |
代码示例:用 Transformers 加载 GPT-2 查看架构
python
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "gpt2"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 查看模型参数量
total_params = sum(p.numel() for p in model.parameters())
print(f"模型参数量: {total_params:,}")
# 查看模型结构
print(model)python
# 简单文本生成测试
inputs = tokenizer("大规模语言模型的核心能力是", return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=30)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))1.2 主流大模型对比
定义
当前主流通用大模型的能力边界与适用场景各有侧重:
| 模型 | 厂商 | 特点 | 优势场景 | 不足 |
|---|---|---|---|---|
| GPT-4o | OpenAI | 多模态原生,推理强 | 通用问答、代码、创意写作 | 成本高,审查严 |
| Claude 3.5 Sonnet | Anthropic | 安全对齐,长文理解 | 长文档分析、安全敏感场景 | 中文能力稍弱 |
| LLaMA 3 | Meta | 开源最强,社区生态好 | 私有化部署、微调二次开发 | 需要较大算力 |
| Qwen 2.5 | 阿里 | 中文能力强,工具调用 | 中文场景、Function Calling | 英文推理略逊 |
代码示例:统一 API 调用不同模型
python
import os
from openai import OpenAI
# GPT-4o 调用
gpt_client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
response = gpt_client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "解释一下什么是Scaling Law"}]
)
print(response.choices[0].message.content)
# 通义千问 调用(通过阿里云 DashScope)
from openai import OpenAI as DashScopeClient
qwen_client = DashScopeClient(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
resp = qwen_client.chat.completions.create(
model="qwen2.5-72b-instruct",
messages=[{"role": "user", "content": "解释一下什么是Scaling Law"}]
)
print(resp.choices[0].message.content)1.3 Scaling Law 与涌现能力
定义
Scaling Law(规模定律):模型性能随参数量、数据量、计算量的增加而可预测地提升,呈现幂律关系。
涌现能力(Emergent Abilities):当模型规模突破某个阈值时,突然展现出小模型不具备的能力(如推理、翻译、代码生成)。
python
# 模拟 Scaling Law 可视化
import numpy as np
import matplotlib.pyplot as plt
params = np.array([0.1, 0.5, 1, 3, 7, 13, 70, 175, 540]) # 参数量 (B)
loss = 4.0 * params ** (-0.25) # 近似幂律关系
plt.figure(figsize=(10, 5))
plt.plot(params, loss, 'bo-', linewidth=2)
plt.xlabel("模型参数量 (B)")
plt.ylabel("测试损失 (Loss)")
plt.title("Scaling Law:损失随参数量增加而下降")
plt.xscale("log")
plt.yscale("log")
plt.grid(True)
plt.show()1.4 开源 vs 闭源选型指南
定义
| 维度 | 闭源模型(GPT-4o / Claude) | 开源模型(LLaMA / Qwen) |
|---|---|---|
| 成本 | 按 Token 付费,长期成本高 | 自建 GPU 集群,前期投入大 |
| 数据安全 | 数据需经过云端 | 数据完全本地化 |
| 可控性 | 无法修改模型权重 | 可微调、可定制 |
| 开发效率 | API 接入即用 | 需要部署和优化 |
| 能力上限 | 当前最强 | 追赶中,但进步极快 |
选型决策树
python
def recommend_model(data_sensitive, budget, need_customize, language):
"""
根据业务需求推荐模型选型
"""
if data_sensitive:
if need_customize:
return "推荐:Qwen2.5(本地部署+LoRA微调)"
else:
return "推荐:LLaMA 3(本地私有化部署)"
else:
if budget > 50000:
return "推荐:GPT-4o(最强能力,按量付费)"
else:
if language == "zh":
return "推荐:Qwen2.5 API(中文最优性价比)"
else:
return "推荐:Claude 3.5 Sonnet(长文处理强)"
print(recommend_model(data_sensitive=True, budget=10000, need_customize=True, language="zh"))
print(recommend_model(data_sensitive=False, budget=80000, need_customize=False, language="en"))1.5 训练数据与对齐技术
定义
对齐技术让大模型从"会说话"进化为"说对话":
| 技术 | 全称 | 核心思想 |
|---|---|---|
| SFT | Supervised Fine-Tuning | 用人工标注的指令-回答对进行监督微调 |
| RLHF | Reinforcement Learning from Human Feedback | 训练奖励模型,用强化学习优化策略 |
| DPO | Direct Preference Optimization | 直接优化偏好,无需显式奖励模型 |
代码示例:DPO 训练数据格式
python
# DPO 训练数据:偏好对格式
dpo_dataset = [
{
"prompt": "请解释什么是量子计算",
"chosen": "量子计算利用量子比特的叠加态和纠缠态进行计算...", # 偏好回答
"rejected": "量子计算就是很快的计算..." # 非偏好回答
},
{
"prompt": "如何提高团队协作效率?",
"chosen": "1. 明确目标与分工 2. 建立有效沟通机制 3. ...",
"rejected": "大家多开会就好了"
}
]
# 使用 TRL 库加载 DPO 训练
# pip install trl
from trl import DPOTrainer
# trainer = DPOTrainer(
# model=model,
# ref_model=ref_model,
# train_dataset=dpo_dataset,
# tokenizer=tokenizer,
# args=training_args
# )
# trainer.train()python
# SFT 数据格式(指令微调)
sft_example = {
"instruction": "用Python写一个斐波那契数列生成函数",
"input": "",
"output": """def fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
fib = [0, 1]
for i in range(2, n):
fib.append(fib[-1] + fib[-2])
return fib"""
}小结与练习
小结
- 大模型从 BERT 到多模态经历了架构和能力的双重飞跃
- GPT-4o、Claude、LLaMA、Qwen 各有适用场景,选型需综合成本、安全、可控性
- Scaling Law 揭示了规模驱动的性能提升规律,涌现能力是规模突破后的质变
- 对齐技术(SFT → RLHF → DPO)让模型更符合人类偏好
练习题
- 基础题:简述 BERT 和 GPT 在架构和任务上的核心区别。
- 实践题:使用 Hugging Face Transformers 加载 Qwen2.5-7B-Instruct,完成一次中文问答并记录显存占用。
- 分析题:你的公司需要构建一个内部知识库问答系统,数据高度敏感,预算有限,你会选择哪种方案?说明理由。
- 拓展题:阅读 DPO 原论文,对比 DPO 和 RLHF 在训练稳定性和实现复杂度上的差异。