Skip to content

章节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-4oOpenAI多模态原生,推理强通用问答、代码、创意写作成本高,审查严
Claude 3.5 SonnetAnthropic安全对齐,长文理解长文档分析、安全敏感场景中文能力稍弱
LLaMA 3Meta开源最强,社区生态好私有化部署、微调二次开发需要较大算力
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 训练数据与对齐技术

定义

对齐技术让大模型从"会说话"进化为"说对话":

技术全称核心思想
SFTSupervised Fine-Tuning用人工标注的指令-回答对进行监督微调
RLHFReinforcement Learning from Human Feedback训练奖励模型,用强化学习优化策略
DPODirect 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)让模型更符合人类偏好

练习题

  1. 基础题:简述 BERT 和 GPT 在架构和任务上的核心区别。
  2. 实践题:使用 Hugging Face Transformers 加载 Qwen2.5-7B-Instruct,完成一次中文问答并记录显存占用。
  3. 分析题:你的公司需要构建一个内部知识库问答系统,数据高度敏感,预算有限,你会选择哪种方案?说明理由。
  4. 拓展题:阅读 DPO 原论文,对比 DPO 和 RLHF 在训练稳定性和实现复杂度上的差异。

Python 学习资料