Skip to content

LLaMA 模型改进与微调指南

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

1. LLaMA 与 LLaMA 2 的区别是什么?

LLaMA 和 LLaMA 2 都是基于 Transformer 的大型语言模型,可用于文本生成、文本摘要、机器翻译、问答等多种自然语言处理任务。

1.1 LLaMA 简介

LLaMA 是一种基于 Transformer 的 seq2seq 模型:

  • 使用两种预训练任务:无监督的 Span 级别 mask + 有监督的多任务学习
  • 将所有下游任务视为文本到文本的转换问题
  • 使用干净的大规模英文语料 C4,包含约 750GB 文本数据

1.2 LLaMA 2 的改进

改进维度LLaMALLaMA 2
数据量和质量750GB C4 语料比 LLaMA 1 多 40% 数据,包含更多高质量和多样性数据(Surge、Scale 等标注公司)
上下文长度20484096(翻倍)
模型架构MHAGQA(Grouped-Query Attention,34B/70B 模型)
微调方法SFTSFT + RLHF
对话模型无官方对话版LLaMA 2-Chat(有用性和安全性显著提升)

提示:GQA(分组查询注意力)技术可以提高模型的推理速度和质量。

2. LLaMA 2 的四大改进详解

2.1 数据量和质量提升

  • 使用比 LLaMA 1 多 40% 的数据进行预训练
  • 纳入更多高质量和多样性数据
  • 数据来源包括 Surge 和 Scale 等专业数据标注公司

2.2 上下文长度翻倍

LLaMA:   2048 tokens  →  适合短文本任务
LLaMA 2: 4096 tokens  →  支持更长文本和更复杂逻辑

2.3 分组查询注意力(GQA)

LLaMA 2 在 34B 和 70B 参数模型中使用了 GQA 技术:

特性MHA(LLaMA)GQA(LLaMA 2)
Query 头数NN
Key/Value 头数NN/G(共享)
推理速度标准更快
生成质量标准更好
显存占用较高较低

2.4 SFT + RLHF 微调

LLaMA 2-Chat 使用两阶段微调:

阶段1: SFT(监督微调)
  → 使用高质量对话数据进行有监督训练

阶段2: RLHF(人类反馈强化学习)
  → 基于人类偏好优化模型
  → 提升有用性和安全性

3. 如何对 LLaMA 2 进行微调?

3.1 微调步骤

步骤说明
1. 准备训练脚本使用 Meta 开源的 llama-recipes 项目,提供快速开始示例和配置文件
2. 准备数据集选择符合目标任务和领域的数据集(如 GuanacoDataset),支持 alpaca 格式
3. 准备模型从 Hugging Face Hub 下载 LLaMA 2 权重,转换为 HF 格式
4. 启动训练单 GPU 或多 GPU 训练,可选 PEFT 或量化加速

3.2 数据集格式

使用 alpaca 格式组织数据:

json
[
  {
    "instruction": "请解释什么是 Transformer 架构",
    "input": "",
    "output": "Transformer 是一种基于自注意力机制的神经网络架构..."
  }
]

3.3 常用数据集

数据集特点
GuanacoDataset多语言对话数据集,支持 alpaca 格式
alpaca_gpt4_en英文指令数据集
alpaca_gpt4_zh中文指令数据集
自定义数据集按 alpaca 格式组织即可

3.4 微调方式选择

方式适用场景资源需求
全量微调(Full Fine-tuning)需要最佳效果高(多卡 A100)
LoRA 微调资源有限,快速迭代低(单卡即可)
QLoRA 微调极低资源部署极低(消费级显卡)
PEFT通用参数高效微调

提示:使用 PEFT(参数高效微调)或量化技术可以显著加速训练过程并降低资源需求。

4. LLaMA 2 微调最佳实践

4.1 硬件配置建议

模型规模全量微调LoRA 微调
7B2×A100 80GB1×A100 40GB
13B4×A100 80GB1×A100 80GB
70B8×A100 80GB2×A100 80GB

4.2 关键训练参数

bash
# 常用训练参数
--learning_rate 5e-5        # 学习率
--num_train_epochs 2.0      # 训练轮数
--per_device_train_batch_size 4  # 每卡batch size
--gradient_accumulation_steps 8  # 梯度累积
--lr_scheduler_type cosine  # 学习率调度
--fp16                      # 混合精度训练

5. 总结

LLaMA 2 相比 LLaMA 在数据质量、上下文长度、模型架构和微调方法四个方面实现了全面升级。微调 LLaMA 2 的关键要点:

  • 使用 llama-recipes 项目快速启动
  • 数据按 alpaca 格式组织
  • 根据资源选择全量微调或 PEFT/LoRA
  • SFT + RLHF 两阶段微调可获得最佳对话效果
  • 量化技术(QLoRA)可在消费级显卡上完成微调