Appearance
大语言模型简介
大语言模型(Large Language Model,LLM)是当前 AI 领域最激动人心的突破,能够理解和生成人类语言。
什么是大语言模型?
LLM 是在海量文本数据上训练的深度学习模型,具有以下特点:
- 📚 大规模:数十亿到数千亿参数
- 🧠 通用性:一个模型处理多种任务
- 💬 对话能力:自然的人机交互
- 🎯 零样本学习:无需训练即可完成新任务
发展历程
早期模型(2018-2019)
BERT(2018)
- Google 推出
- 双向编码器
- 擅长理解任务
GPT-1(2018)
- OpenAI 推出
- 单向解码器
- 擅长生成任务
规模扩大(2019-2020)
GPT-2(2019)
- 15 亿参数
- 展现惊人的生成能力
- 因担心滥用延迟发布
GPT-3(2020)
- 1750 亿参数
- 少样本学习能力
- API 商业化
爆发期(2022-至今)
ChatGPT(2022.11)
- 基于 GPT-3.5
- RLHF 对齐
- 2 个月破亿用户
GPT-4(2023.3)
- 多模态能力
- 更强推理能力
- 更长上下文
开源浪潮
- LLaMA(Meta)
- Mistral
- 通义千问、文心一言
核心技术
Transformer 架构
LLM 的基础是 Transformer,包含:
python
# 简化的 Transformer 组件
import torch
import torch.nn as nn
class MultiHeadAttention(nn.Module):
def __init__(self, d_model, num_heads):
super().__init__()
self.d_model = d_model
self.num_heads = num_heads
self.head_dim = d_model // num_heads
self.qkv = nn.Linear(d_model, d_model * 3)
self.out = nn.Linear(d_model, d_model)
def forward(self, x):
batch_size, seq_len, d_model = x.shape
# 计算 Q, K, V
qkv = self.qkv(x)
qkv = qkv.reshape(batch_size, seq_len, 3, self.num_heads, self.head_dim)
qkv = qkv.permute(2, 0, 3, 1, 4)
q, k, v = qkv[0], qkv[1], qkv[2]
# 注意力计算
scores = torch.matmul(q, k.transpose(-2, -1)) / (self.head_dim ** 0.5)
attn = torch.softmax(scores, dim=-1)
out = torch.matmul(attn, v)
# 合并多头
out = out.transpose(1, 2).reshape(batch_size, seq_len, d_model)
return self.out(out)
class TransformerBlock(nn.Module):
def __init__(self, d_model, num_heads, d_ff):
super().__init__()
self.attention = MultiHeadAttention(d_model, num_heads)
self.norm1 = nn.LayerNorm(d_model)
self.norm2 = nn.LayerNorm(d_model)
self.ffn = nn.Sequential(
nn.Linear(d_model, d_ff),
nn.ReLU(),
nn.Linear(d_ff, d_model)
)
def forward(self, x):
# 注意力 + 残差连接
x = x + self.attention(self.norm1(x))
# 前馈网络 + 残差连接
x = x + self.ffn(self.norm2(x))
return x预训练与微调
预训练:在大规模文本上学习语言知识
python
# 预训练任务:预测下一个词
def next_token_prediction(model, context):
"""
输入:今天天气
预测:很好 / 不错 / 晴朗 ...
"""
logits = model(context)
next_token = torch.argmax(logits, dim=-1)
return next_token微调:在特定任务上优化
python
# 微调示例:情感分类
from transformers import AutoModelForSequenceClassification, Trainer
model = AutoModelForSequenceClassification.from_pretrained(
"bert-base-chinese",
num_labels=2
)
trainer = Trainer(
model=model,
train_dataset=train_dataset,
eval_dataset=eval_dataset
)
trainer.train()RLHF(人类反馈强化学习)
ChatGPT 的关键技术:
- 监督微调(SFT):人工标注对话数据
- 奖励模型(RM):学习人类偏好
- 强化学习(PPO):优化模型输出
python
# 简化的 RLHF 流程
def rlhf_training(model, prompts, reward_model):
for prompt in prompts:
# 生成多个回复
responses = model.generate(prompt, num_return=4)
# 计算奖励
rewards = [reward_model(prompt, resp) for resp in responses]
# 更新模型(PPO)
model.update_with_ppo(responses, rewards)主流模型对比
| 模型 | 公司 | 参数量 | 特点 | 开源 |
|---|---|---|---|---|
| GPT-4 | OpenAI | 未公开 | 多模态、强推理 | ❌ |
| Claude 3 | Anthropic | 未公开 | 长上下文、安全 | ❌ |
| Gemini | 未公开 | 多模态、集成 | ❌ | |
| LLaMA 3 | Meta | 8B-70B | 开源、高效 | ✅ |
| 通义千问 | 阿里 | 多规格 | 中文优化 | 部分 |
| 文心一言 | 百度 | 未公开 | 中文、多模态 | ❌ |
| Mistral | Mistral AI | 7B-8x7B | 开源、高性能 | ✅ |
使用 LLM
通过 API
python
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
# 基本对话
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "解释什么是大语言模型"}
]
)
print(response.choices[0].message.content)本地部署
python
from transformers import AutoTokenizer, AutoModelForCausalLM
# 加载模型
model_name = "Qwen/Qwen-7B-Chat"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
trust_remote_code=True
)
# 生成文本
def chat(prompt):
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_length=2048,
temperature=0.7,
top_p=0.9
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return response
# 使用
response = chat("介绍一下人工智能")
print(response)使用 LangChain
python
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
# 创建提示模板
template = """
你是一个{role}。
请回答以下问题:{question}
"""
prompt = PromptTemplate(
input_variables=["role", "question"],
template=template
)
# 创建链
llm = OpenAI(temperature=0.7)
chain = LLMChain(llm=llm, prompt=prompt)
# 执行
result = chain.run(
role="Python 专家",
question="如何优化代码性能?"
)
print(result)核心能力
1. 文本生成
python
# 创意写作
prompt = "写一首关于 AI 的现代诗"
# 代码生成
prompt = "用 Python 实现快速排序算法"
# 内容改写
prompt = "将以下文本改写得更专业:{text}"2. 文本理解
python
# 情感分析
prompt = "分析这条评论的情感:'这个产品太棒了!'"
# 信息提取
prompt = "从以下文本中提取人名、地名和时间:{text}"
# 文本分类
prompt = "将这篇文章分类到:科技/娱乐/体育/财经"3. 问答
python
# 知识问答
prompt = "什么是量子计算?"
# 文档问答
prompt = f"根据以下文档回答问题:\n文档:{document}\n问题:{question}"
# 多轮对话
messages = [
{"role": "user", "content": "什么是机器学习?"},
{"role": "assistant", "content": "机器学习是..."},
{"role": "user", "content": "它有哪些应用?"}
]4. 推理
python
# 逻辑推理
prompt = """
前提1:所有程序员都会编程
前提2:小明是程序员
结论:?
"""
# 数学推理
prompt = "一个数的3倍加5等于20,这个数是多少?请逐步推理。"
# 常识推理
prompt = "如果外面在下雨,我应该带什么出门?"5. 翻译
python
# 多语言翻译
prompt = "将以下中文翻译成英文:人工智能正在改变世界"
# 代码翻译
prompt = "将这段 Python 代码转换为 JavaScript"提示工程基础
基本原则
- 清晰具体
python
# ❌ 不好
"写点东西"
# ✅ 好
"写一篇500字的文章,介绍人工智能在医疗领域的应用"- 提供上下文
python
# ✅ 好
"""
你是一个资深的 Python 开发者。
用户是初学者,需要简单易懂的解释。
请解释什么是装饰器。
"""- 指定格式
python
# ✅ 好
"""
请以 JSON 格式返回结果:
{
"summary": "摘要",
"keywords": ["关键词1", "关键词2"],
"sentiment": "positive/negative/neutral"
}
"""常用技巧
Few-shot Learning
python
prompt = """
将产品评论分类为正面或负面。
示例:
评论:这个产品质量很好
分类:正面
评论:完全不值这个价格
分类:负面
评论:{new_review}
分类:
"""Chain of Thought(思维链)
python
prompt = """
问题:一个班级有30个学生,其中60%是女生,女生中有一半戴眼镜。
请问有多少女生戴眼镜?
请逐步思考:
1. 首先计算女生人数
2. 然后计算戴眼镜的女生人数
"""角色扮演
python
prompt = """
你是一个经验丰富的产品经理。
请从产品经理的角度分析这个功能需求:
{requirement}
"""应用场景
内容创作
- 文章写作
- 广告文案
- 社交媒体内容
- 视频脚本
编程助手
- 代码生成
- Bug 修复
- 代码解释
- 代码审查
客户服务
- 智能客服
- FAQ 自动回复
- 工单分类
- 情感分析
教育
- 个性化辅导
- 作业批改
- 学习计划
- 知识问答
数据分析
- 报告生成
- 数据解读
- 趋势分析
- 可视化建议
局限性
注意事项
- 幻觉问题:可能生成看似合理但错误的内容
- 知识截止:训练数据有时间限制
- 偏见:可能反映训练数据中的偏见
- 上下文限制:输入长度有限制
- 计算成本:大模型推理成本高
- 隐私风险:不要输入敏感信息
最佳实践
使用建议
- 验证输出:不要盲目信任,需要人工审核
- 迭代优化:根据结果调整提示词
- 组合使用:结合搜索、计算器等工具
- 版本控制:记录有效的提示词模板
- 成本控制:选择合适的模型规格
- 安全合规:遵守使用条款和法律法规
未来趋势
技术方向
- 🎯 更长上下文:百万 token 级别
- 🖼️ 多模态融合:文本、图像、音频、视频
- 🤖 AI Agent:自主规划和执行任务
- ⚡ 效率提升:更小更快的模型
- 🔒 安全对齐:更可控、更安全
应用趋势
- 个性化 AI 助手
- 垂直领域专家系统
- 实时协作工具
- 边缘设备部署
学习资源
在线课程
- DeepLearning.AI:LLM 系列课程
- Hugging Face:Transformer 课程
- OpenAI:API 文档和教程
实践平台
- Hugging Face Hub:模型和数据集
- OpenAI Playground:在线测试
- Colab:免费 GPU 环境
社区
- r/LocalLLaMA:本地部署讨论
- Hugging Face 论坛
- GitHub:开源项目
下一步学习
实践项目
- 智能问答系统:基于文档的 QA
- 代码助手:自动生成和解释代码
- 内容生成器:文章、广告文案生成
- 聊天机器人:多轮对话系统
开始探索 LLM 的无限可能吧!
