使用LLama-Factory的简易教程(Llama3微调案例+详细步骤)

发布于:2025-03-22 ⋅ 阅读:(16) ⋅ 点赞:(0)

引言:一套快速实现 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/

指令解释:

  1. --resume-download:启用断点续传。如果下载中断,下次继续下载时将从中断的位置开始,而不是重新下载。
  2. shenzhi-wang/Llama3-8B-Chinese-Chat:这是模型的仓库路径,表示从 Hugging Face 上下载 shenzhi-wang(作者) 发布的 Llama3-8B-Chinese-Chat 模型。
  3. --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 )。其中,各字段的含义:

  1. instruction 告诉模型要解释法律条款。
  2. input 提供了具体的法律条款。
  3. 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. 模型微调的流程

一图胜千言,按照下图的步骤设置就行:

  1. 微调中文模型就选 zh
  2. 选择模型名称
  3. 选择对应的模型参数路径
  4. 选择微调方法,一般是 LoRA
  5. 训练方式如果是有监督的微调,就选择 Supervised Fine-Tuning
  6. 选择对应的数据集(我这里选的就是之前我构造的 Laws_QA
  7. 设置对应的超参数
  8. 开始训练

备注:量化等其他设置可自行抉择。

● 微调完后,当需要调用时,可参考本文前面写的 “3. 启动可视化窗口” 的内容。

在这里插入图片描述


6. 参考资料

[1] 胖虎遛二狗的 B 站教学视频《【大模型微调】使用Llama Factory实现中文llama3微调》,感谢Up主:胖虎遛二狗


7. 补充说明

● 若有写得不对、欠妥的地方,或有疑问,欢迎评论交流。


⭐️ ⭐️ 完稿于 2025年3月21日 14:36 教研室工位 💻