引言:一套快速实现 Llama3 中文微调的教程
主要参考:胖虎遛二狗的 B 站教学视频《【大模型微调】使用Llama Factory实现中文llama3微调》
✅
笔者简介:Wang Linyong,西工大,2023级,计算机技术
研究方向:文本生成、大语言模型
笔者的实验环境:
| 版本 | |
|---|---|
| Ubuntu | 22.04.4 |
| CPU | Intel® Core™ i9-14900KF |
| Driver(驱动) | 535.171.04 |
| GPU(一张) | NVIDIA GeForce RTX 4090 |
| CUDA | 12.4 |
| Python | 3.10.14 |
| Pytorch | 2.2.1 |
文章目录
1. 配置 Hugging Face 的国内镜像网站
● 如果不配置的话,我们在后续下载 15G 的 Llama3 的模型权重文件会很慢很慢。
● 第一步: 安装 huggingface_hub 包。这个包是 Hugging Face 提供的 Python 客户端库,用于与 Hugging Face Hub 进行交互。
pip install huggingface_hub
● 第二步: 配置 Hugging Face API 的镜像端点,可以加快模型的下载速度,尤其是在中国大陆网络环境。
export HF_ENDPOINT=https://hf-mirror.com
● 第三步: 使用 huggingface-cli 工具从 Hugging Face Hub 下载指定的模型文件。
huggingface-cli download --resume-download meta-llama/Llama-3.2-3B-Instruct --local-dir ./models/Qwen2.5-7B-Instruct/
指令解释:
--resume-download:启用断点续传。如果下载中断,下次继续下载时将从中断的位置开始,而不是重新下载。- shenzhi-wang/Llama3-8B-Chinese-Chat:这是模型的仓库路径,表示从
Hugging Face上下载shenzhi-wang(作者)发布的Llama3-8B-Chinese-Chat模型。 --local-dir ./models/Llama3-8B-Chinese-Chat/:将下载的模型文件保存到本地的./models/Llama3-8B-Chinese-Chat/目录中。
结果展示(我安装在 ~/llama/models/Llama3-8B-Chinese-Chat 目录下的):

2. 安装 LLaMA-Factory 框架
● 【关于 LLaMA-Factory 的简介】LLaMA-Factory 是一个开源工具,旨在简化大型语言模型(LLMs)的微调和推理过程,特别是针对 LLaMA(Large Language Model Meta AI)系列模型。它提供了用户友好的接口和高效的工具,帮助研究者和开发者快速上手并定制化 LLM 模型,适用于各种自然语言处理任务。
● 首先进入 ~/llama 的同级目录,从 GitHub 克隆 LLaMA-Factory 仓库到本地。再进入该仓库目录。接着使用 pip 安装该项目作为一个可编辑的 Python 包,方便开发和修改。
cd ~/llama
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
3. 启动可视化窗口
● 启动命令:
cd LLaMA-Factory
llamafactory-cli webui
● UI界面执行步骤: 注意第 ③ 步要将模型路径换成你所下载的路径。

● 一个简单的调用案例:
问题:工作多长一段时间后没有签订劳动合同,公司的做法是违法的?我们应该怎么维权?

4. 数据集构建方式
● 在 LLaMA-Factory/data/dataset_info.json 中添加自己的数据格式。比如下述名为 Laws_QA 的数据集(对应的文件是 Laws_QA.json )。其中,各字段的含义:
instruction告诉模型要解释法律条款。input提供了具体的法律条款。output是模型生成的解释。
"Laws_QA": {
"file_name": "Laws_QA.json",
"columns": {
"prompt": "instruction",
"query": "input",
"response": "output",
}
}
● 然后需要把你的数据集对应的文件 Laws_QA.json 放入到 LLaMA-Factory/data/ 目录下。在这里 举一个数据样例:
{
"instruction": "解释一下以下法律条款",
"input": "《中华人民共和国合同法》第52条",
"output": "《中华人民共和国合同法》第52条规定了合同无效的情形,包括一方以欺诈、胁迫的手段订立合同,损害国家利益;恶意串通,损害国家、集体或者第三人利益;以合法形式掩盖非法目的;损害社会公共利益;违反法律、行政法规的强制性规定。"
}
● 这是我构造的数据样例: 我只构造了简单的 “问答对”,所以 input 字段为空。

5. 模型微调的流程
● 一图胜千言,按照下图的步骤设置就行:
- 微调中文模型就选
zh - 选择模型名称
- 选择对应的模型参数路径
- 选择微调方法,一般是 LoRA
- 训练方式如果是有监督的微调,就选择
Supervised Fine-Tuning - 选择对应的数据集(我这里选的就是之前我构造的
Laws_QA) - 设置对应的超参数
- 开始训练
备注:量化等其他设置可自行抉择。
● 微调完后,当需要调用时,可参考本文前面写的 “3. 启动可视化窗口” 的内容。

6. 参考资料
[1] 胖虎遛二狗的 B 站教学视频《【大模型微调】使用Llama Factory实现中文llama3微调》,感谢Up主:胖虎遛二狗
7. 补充说明
● 若有写得不对、欠妥的地方,或有疑问,欢迎评论交流。
⭐️ ⭐️ 完稿于 2025年3月21日 14:36 教研室工位 💻