Llama 系列
Llama 系列
Section titled “Llama 系列”Llama 是 Meta 的开源大模型系列,单枪匹马推动了开源 LLM 生态的爆发。
| 版本 | 时间 | 最大参数 | 关键创新 |
|---|---|---|---|
| Llama 1 | 2023.02 | 65B | 证明小模型+多数据 > 大模型 |
| Llama 2 | 2023.07 | 70B | GQA、4K 上下文、商用许可 |
| Llama 3 | 2024.04 | 70B | 15T tokens 训练、128K 词表 |
| Llama 3.1 | 2024.07 | 405B | 开源首次对标 GPT-4 |
| Llama 4 | 2025 | - | 多模态、MoE 架构 |
关键架构选择
Section titled “关键架构选择”# Llama 的核心架构特点# 1. Pre-Norm — 训练更稳定# 2. RoPE 位置编码 — 可外推到更长序列# 3. SwiGLU 激活 — 比 ReLU/GELU 性能更好# 4. GQA (Grouped Query Attention) — 节省 KV Cache使用 Llama
Section titled “使用 Llama”from transformers import AutoModelForCausalLM, AutoTokenizerimport torch
model = AutoModelForCausalLM.from_pretrained( "meta-llama/Llama-3.2-3B-Instruct", torch_dtype=torch.bfloat16, device_map="auto",)tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B-Instruct")
messages = [ {"role": "system", "content": "你是一个 AI 助手。"}, {"role": "user", "content": "解释什么是 Transformer"},]inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to("cuda")outputs = model.generate(inputs, max_new_tokens=200, temperature=0.7)print(tokenizer.decode(outputs[0]))SwiGLU 激活函数
Section titled “SwiGLU 激活函数”Llama 使用 SwiGLU 替代传统 FFN:
其中
GQA:分组查询注意力
Section titled “GQA:分组查询注意力”| 变体 | K、V 头数 | 显存 | 性能 |
|---|---|---|---|
| MHA | 等于 Q 头数 | 最大 | 最好 |
| GQA | 少于 Q 头数 | 中等 | 接近 MHA |
| MQA | 1 | 最小 | 略有下降 |
Llama 3 使用 8 个 KV 头配 32 个 Q 头,平衡了效率和性能。
为什么 Llama 改变了生态?
Section titled “为什么 Llama 改变了生态?”- 开源:任何人都能下载、微调、部署
- 商用许可:Llama 2 起允许商用
- 衍生生态:Alpaca、Vicuna、Llama-2-Chinese 等数千个微调版本
- 本地部署:通过量化可在消费级 GPU 运行