大语言模型入门:原理、架构与应用
什么是大语言模型
大语言模型(Large Language Model,LLM)是一类基于深度学习技术、能够理解和生成人类语言的AI系统。它们通过在大规模文本数据上进行预训练,学习语言的模式、知识和推理能力。
GPT、BERT、Claude、LLaMA 等都是大语言模型的代表。
LLM 的发展历程
| 年份 |
模型 |
里程碑 |
| 2017 |
Transformer |
Google 提出注意力机制 |
| 2018 |
BERT |
刷新 NLP 各项基准 |
| 2019 |
GPT-2 |
生成能力大幅提升 |
| 2020 |
GPT-3 |
涌现出上下文学习能力 |
| 2022 |
ChatGPT |
对话式 AI 破圈 |
| 2023 |
GPT-4 |
多模态能力、更强推理 |
| 2023 |
Claude/LLaMA |
开源模型崛起 |
| 2024 |
GPT-4o/Claude 3.5 |
原生多模态、端到端 |
现代 LLM 的核心是 Transformer 架构,它解决了传统 RNN 的长距离依赖问题。
注意力机制(Attention)
注意力机制让模型能够”关注”输入序列中与当前任务最相关的部分:
1 2 3 4 5 6 7 8 9
| def attention(query, key, value): scores = softmax(query @ key.T / sqrt(d_k))
output = scores @ value
return output
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| 输入 Tokens │ ▼ ┌─────────────────┐ │ Embedding 层 │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ 位置编码 │ │ (Positional) │ └────────┬────────┘ │ ▼ ┌─────────────────┐ │ N 层 Encoder │ ← BERT 系列 │ 或 Decoder │ ← GPT 系列 └────────┬────────┘ │ ▼ ┌─────────────────┐ │ 输出层 │ │ (Language │ │ Model Head) │ └────────┬────────┘ │ ▼ 输出 Token 概率
|
Encoder vs Decoder
| 类型 |
代表模型 |
特点 |
适用场景 |
| Encoder only |
BERT |
双向理解 |
分类、NER、抽取 |
| Decoder only |
GPT 系列 |
自回归生成 |
对话、写作、代码 |
| Encoder-Decoder |
T5、BART |
序列到序列 |
翻译、摘要、问答 |
LLM 的训练过程
1. 预训练(Pretraining)
在大规模无标注语料上学习语言知识:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| def pretraining_loss(model, tokenizer, corpus): total_loss = 0
for text in corpus: tokens = tokenizer.encode(text)
for i in range(len(tokens) - 1): input_ids = tokens[:i+1] labels = tokens[i+1]
logits = model(input_ids) loss = cross_entropy(logits[-1], labels) total_loss += loss
return total_loss / len(corpus)
|
训练数据规模:
| 模型 |
参数量 |
训练 Token |
| GPT-3 |
175B |
300B |
| GPT-4 |
~1.8T (推测) |
数万亿 |
| LLaMA 2 |
70B |
2T |
| Claude 3 |
未公开 |
数万亿 |
2. 指令微调(SFT - Supervised Fine-Tuning)
在人工标注的指令数据上微调:
1 2 3 4 5 6 7 8 9 10 11 12 13
| instruction_data = [ { "instruction": "将以下句子翻译成英文", "input": "今天天气真好", "output": "The weather is nice today." }, { "instruction": "写一首关于春天的诗", "input": "", "output": "春风拂面柳丝长,\n桃红李白竞芬芳..." } ]
|
3. 人类反馈强化学习(RLHF)
用人类偏好数据训练奖励模型,再用强化学习优化:
1 2 3 4 5 6 7 8
| ┌─────────────┐ 人类评分 ┌─────────────┐ │ 初始模型 │ ───────────→ │ 奖励模型 │ │ (SFT) │ ←─── 反馈 ───── │ (RM) │ └──────┬──────┘ └──────┬──────┘ │ │ │ 强化学习优化 │ └─────────────←───────────────┘ PPO 算法
|
4. 直接偏好优化(DPO)
DPO 简化了 RLHF,不需要单独的奖励模型:
1 2 3 4 5 6 7 8 9 10
| def dpo_loss(policy_logps, reference_logps, chosen_logps, rejected_logps): chosen_rewards = chosen_logps - reference_chosen_logps rejected_rewards = rejected_logps - reference_rejected_logps
loss = -log_sigmoid(chosen_rewards - rejected_rewards)
return loss
|
主流 LLM 模型
GPT 系列(OpenAI)
| 模型 |
特点 |
适用场景 |
| GPT-4o |
原生多模态,低延迟 |
实时对话 |
| GPT-4 |
强推理,代码能力强 |
复杂任务 |
| GPT-4-turbo |
更快、更便宜 |
生产环境 |
| GPT-3.5-turbo |
轻量级,快速响应 |
简单任务 |
Claude 系列(Anthropic)
| 模型 |
特点 |
适用场景 |
| Claude 3.5 Sonnet |
编码能力强,长上下文 |
编程、分析 |
| Claude 3 Opus |
最强推理能力 |
复杂推理 |
| Claude 3 Haiku |
轻量、快速 |
简单任务 |
开源模型
| 模型 |
参数量 |
特点 |
| LLaMA 3 |
8B/70B |
Meta 开源,支持中文 |
| Mistral |
7B/34B |
欧洲团队,效果出色 |
| Qwen |
7B/14B/72B |
阿里开源,中文优化 |
| DeepSeek |
7B/67B |
国产开源,代码能力强 |
| Yi |
6B/34B |
零一万物,中英双语 |
LLM 的核心能力
1. 上下文学习(In-Context Learning)
无需额外训练,通过提示中的示例学习新任务:
1 2 3 4 5 6 7 8 9 10 11
| 用户:请判断情感是正面还是负面
示例: 文本:"这个产品太棒了,非常满意!" 情感:正面
文本:"质量很差,不推荐购买" 情感:负面
文本:"一般般,没什么特别的" 情感:
|
2. 思维链(Chain of Thought, CoT)
通过逐步推理提升复杂问题的准确率:
1 2 3 4 5 6 7 8
| 问题:小明有10个苹果,送给小红3个,又买了5个,现在有多少个?
思考:让我一步步分析 1. 小明开始有10个苹果 2. 送给小红3个,10 - 3 = 7个 3. 又买了5个,7 + 5 = 12个
答案:12个
|
3. 代码能力(Coding)
LLM 在代码相关任务上表现出色:
4. 多模态能力
现代 LLM 能够处理图像、音频、视频:
1 2 3 4 5 6 7 8 9 10 11
| response = openai.ChatCompletion.create( model="gpt-4o", messages=[{ "role": "user", "content": [ {"type": "text", "text": "这张图里有什么?"}, {"type": "image_url", "url": "data:image/..."} ] }] )
|
LLM 的局限性
1. 幻觉(Hallucination)
LLM 可能生成看似合理但实际错误的内容:
1 2 3 4 5 6 7
| 用户:北京的人口是多少? LLM:北京的人口约为2200万人。(可能不准确)
解决思路: ✅ 提供具体上下文让模型参考 ✅ 使用 RAG 检索最新数据 ✅ 要求模型说明不确定性
|
2. 上下文长度限制
模型有固定的上下文窗口:
| 模型 |
上下文长度 |
| GPT-3.5 |
16K |
| GPT-4 |
128K |
| Claude 3 |
200K |
| Gemini 1.5 |
1M/10M |
3. 推理成本
大模型的推理需要大量计算:
- 延迟问题:复杂任务响应慢
- 成本问题:大规模使用费用高
- 能耗问题:训练和推理耗电大
4. 安全与对齐
确保模型行为符合人类意图:
- 避免生成有害内容
- 尊重隐私和版权
- 保持回答的客观性
LLM 的应用场景
1. 智能对话
1 2 3 4 5 6 7 8
| response = openai.ChatCompletion.create( model="gpt-4", messages=[ {"role": "system", "content": "你是一个有帮助的助手"}, {"role": "user", "content": "帮我解释什么是量子计算"} ] )
|
2. 内容创作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| prompt = """ 请为技术博客写一篇关于 Python 装饰器的入门文章: - 包含代码示例 - 解释原理 - 300 字左右 """
prompt = """ 写一封请假邮件: - 原因:发烧需要休息 - 时间:明天一天 - 语气:礼貌但不啰嗦 """
|
3. 代码开发
1 2 3 4 5 6 7 8 9 10 11
|
def buggy_function(items, threshold): for item in items if item > threshold print(item)
|
4. 数据分析
1 2 3 4 5 6 7 8 9 10 11 12 13
| prompt = """ 分析这个 CSV 文件,找出销售额最高的产品类别: - 文件路径:sales.csv - 需要按类别汇总 - 生成可视化图表 """
prompt = """ 清洗以下数据,去除重复项,处理缺失值: [data...] """
|
5. RAG 系统
结合知识库实现更准确的问答:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 用户问题 │ ▼ ┌─────────┐ 检索 ┌──────────┐ │ 向量 │ ───────→ │ 知识库 │ │ 数据库 │ └──────────┘ └────┬────┘ │ 返回相关片段 ▼ ┌─────────┐ │ LLM │ ← 结合上下文生成答案 └────┬────┘ │ ▼ 最终回答
|
如何选择 LLM
选择考虑因素
| 因素 |
说明 |
| 任务类型 |
对话/代码/分析/创作 |
| 性能要求 |
准确率、速度、成本 |
| 隐私需求 |
是否需要私有化部署 |
| 语言 |
中文/英文/多语言 |
| 预算 |
API 调用 vs 开源自部署 |
推荐方案
| 场景 |
推荐模型 |
| 对话/客服 |
GPT-4o / Claude 3.5 |
| 代码开发 |
Claude 3.5 / GPT-4 |
| 中文简单任务 |
Qwen / DeepSeek |
| 低成本方案 |
GPT-3.5 / 开源模型 |
| 完全私有化 |
LLaMA 3 / Qwen |
Prompt 工程基础
1. 结构化提示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| prompt = """ # 角色 你是一位资深 Python 后端工程师。
# 任务 帮我审查以下代码的性能问题。
# 代码 def slow_function(data): result = [] for item in data: if item > 0: result.append(item ** 2) return result
# 要求 1. 指出性能问题 2. 提供优化方案 3. 给出优化后的代码 """
|
2.Few-shot 示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| prompt = """ 情感分类任务:
文本:"刚收到货,质量很不错" 情感:正面
文本:"等了两周还没到,太慢了" 情感:负面
文本:"就那样吧,不好不差" 情感:
请判断上文的情感: """
|
3. 思维链提示
1 2 3 4 5 6 7 8 9 10 11
| prompt = """ 解数学题时,请先思考再给出答案。
问题:超市促销,原价 80 元的商品打 8 折,再减 10 元,最后多少钱?
思考过程: 1. 打 8 折:80 × 0.8 = 64 元 2. 再减 10 元:64 - 10 = 54 元
答案:54 元 """
|
总结
大语言模型代表了人工智能领域的重要突破,它们通过大规模预训练学习到了丰富的语言知识和推理能力。
理解 LLM 的基本原理(Transformer、注意力机制、预训练+SFT+RLHF)、掌握主流模型的特点、熟练运用 Prompt 工程,是每一个 AI 应用开发者必备的技能。
随着模型能力的不断提升和成本的持续下降,LLM 正在成为各行各业的生产力工具。掌握这项技术,将帮助我们更好地适应这个 AI 时代。
有问题欢迎留言讨论!