Llama 3 大模型微调实战:基于 XTuner 的 8B 模型训练指南
Llama 3 近期重磅发布,提供了 8B 和 70B 参数量的模型版本。本文详细介绍如何使用 XTuner 框架对 Llama 3 进行微调,包括环境配置、数据集准备、模型训练及部署全流程。
Llama 3 概览
在开始微调之前,了解 Llama 3 的技术特性至关重要:
- 架构优化:首次出现 8B 模型,且 8B 与 70B 模型全系列使用 GQA (Group Query Attention),显著提升了推理效率。
- 词表升级:分词器由 SentencePiece 换为了 Tiktoken,与 GPT-4 保持一致。词表大小从 Llama 2 的 32000 提升至 128256。
- 数据规模:训练使用了约 15T token 的高质量数据。
- 开源规格:提供 8B 和 70B 两种规模的基座模型(Base)和指令微调模型(Instruct)。其中 Llama 3 8B Instruct 在数学与代码能力上相比 Llama 2 7B Chat 有显著提升。
硬件要求与性能预估
XTuner 团队针对 Llama 3 8B 进行了性能测试。在配备 2 张 A100 80G GPU 的环境下,即可支持 8K 上下文长度的全量微调。对于显存有限的用户,推荐使用 QLoRA 等高效微调方法。
实践教程
1. 环境配置
首先创建独立的 Conda 环境并安装必要的依赖库。
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
2. 下载 Llama 3 模型
通过 Hugging Face 或本地仓库下载 Meta-Llama-3-8B-Instruct 模型。确保已签署相关协议并拥有访问权限。
mkdir -p ./models
cd ./models
git clone https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct.git
若已有本地模型路径,可建立软链接以简化路径管理。
ln -s /path/to/existing/models/Meta-Llama-3-8B-Instruct ./Meta-Llama-3-8B-Instruct
3. 安装 XTuner
克隆 XTuner 项目并安装为可编辑模式。
cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .
4. Web Demo 部署(微调前验证)
在微调前,建议先运行官方提供的 Web Demo 验证模型基础能力。
streamlit run ~/XTuner/tools/internstudio_web_demo.py \
./models/Meta-Llama-3-8B-Instruct
此时询问模型'你是谁',默认回答应体现其作为 Llama 的身份。
5. 微调目标:个人助手认知定制
本节演示如何让 Llama 3 具备特定的自我认知,例如将其设定为某公司的专属 AI 助手。


