Llama 3 模型微调实战指南
1. Llama 3 概览
Meta 近期发布了 Llama 3,包含 8B 和 70B 参数量的模型。相比 Llama 2,Llama 3 在多个方面进行了显著升级:
- 架构优化:首次引入 8B 模型,且全系列(8B/70B)采用 GQA (Group Query Attention) 技术,提升了推理效率。
- 词表扩展:分词器由 SentencePiece 换为 Tiktoken,与 GPT-4 保持一致。词表大小从 32000 提升至 128256,增强了多语言支持能力。
- 训练数据:使用了约 15T token 进行训练,大幅提升了模型的数学与代码能力。
- 上下文窗口:支持 8K 上下文长度。
2. 硬件与环境要求
2.1 硬件建议
XTuner 团队测试显示,使用 2 张 A100 80G GPU 即可对 Llama 3 8B 进行全量微调或高效微调。对于 QLoRA 微调,显存需求更低,消费级显卡亦可尝试。
2.2 环境配置
建议使用 Linux 环境,安装 Python 3.10+ 及 PyTorch 2.1.2。
conda create -n llama3 python=3.10
conda activate llama3
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
conda install git
git-lfs install
3. 模型下载与准备
通过 OpenXLab 或 HuggingFace 下载 Meta-Llama-3-8B-Instruct 模型。
mkdir -p ~/model
cd ~/model
git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct
若使用云开发环境,可直接软链接共享模型路径:
ln -s /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct \
~/model/Meta-Llama-3-8B-Instruct
4. 安装 XTuner
XTuner 是 InternLM 推出的大模型微调工具包。
cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .
5. 数据集准备
微调需要格式化的对话数据。标准格式为 JSONL,包含 conversation 字段,内含 system, input, output。
以下脚本用于生成自我认知训练数据示例:
import json
# 输入你的名字或者机构名称
name = '您的团队名称'
n = 2000
data = [
{
: [
{
:,
: ,
: .(name, name)
}
]
}
]
i (n):
data.append(data[])
(, , encoding=) f:
json.dump(data, f, ensure_ascii=, indent=)


