☰
如何用LoRA微调Llama3?cgft-llm LLaMA-Factory实战教程:从训练数据到模型合并量化全流程
2026/10/1 15:36:49 网站建设 项目流程

如何用LoRA微调Llama3?cgft-llm LLaMA-Factory实战教程:从训练数据到模型合并量化全流程

【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型(LLM)开发的开源资源。它提供代码、文档和视频教程,帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llm

想让 Llama3 听懂你的业务?本文基于开源学习项目cgft-llm提供的完整实战资源,带你用LLaMA-Factory框架做LoRA 微调 Llama3 8B:从整理训练数据、配置超参数,到对话验证、模型合并与量化部署,全流程一步到位,单卡 24GB 显存即可跑通。

整个流程一览:

步骤内容关键产出
① 准备数据整理 Alpaca 格式训练集并注册fintech.json、identity.json
② 环境搭建安装 LLaMA-Factory + 下载基座模型Llama3-8B-Chinese-Chat
③ LoRA 训练配置超参数启动 SFT 微调LoRA 适配器(仅几十 MB)
④ 效果验证Web UI / 终端 / API 三种方式对话可用的小模型
⑤ 合并量化合并 LoRA + 量化瘦身可独立部署的完整模型

为什么用 LoRA 微调 Llama3?

全量微调 8B 模型需要数百 GB 显存和大量算力,而LoRA(Low-Rank Adaptation)只训练一小部分低秩矩阵,原模型参数冻结不动:

  • 💰显存友好:单张 RTX 4090(24GB)就能微调 8B 模型
  • ⚡成本低:训练产物只是一个很小的 LoRA 适配器,便于保存和复用
  • 🔄可插拔:同一个基座模型可挂多个适配器,切换不同业务场景

本实验的硬件环境(来自仓库文档):

设备配置
Ubuntu 服务器RTX 4090 24GB × 1,PyTorch 2.1.0 / CUDA 12.1
Mac Mini M2用于 Mac 端验证

更多环境说明可参考:02-llm-core/llama-factory/README.md

第一步:准备 Llama3 LoRA 微调训练数据

微调质量 = 数据质量。cgft-llm 仓库提供了两份现成的中文训练数据,可直接上手:

  • data/fintech.json:金融领域的多轮对话数据(含history历史轮次)
  • data/identity.json:身份人设数据(教模型"我是谁")

数据采用Alpaca 格式,每条样本包含 4 个字段:

字段含义
instruction用户指令(与input拼接后作为人类指令)
input补充输入(可为空)
output模型期望的回答
history多轮对话历史(字符串二元组列表)
{ "instruction": "国际经济与贸易专业的就业前景是怎样的?", "input": "", "output": "国际经济与贸易专业的就业前景较为广阔……", "history": [] }

然后把数据集注册到 data/dataset_info.json,指定字段映射:

"fintech": { "file_name": "fintech.json", "columns": { "prompt": "instruction", "query": "input", "response": "output", "history": "history" } }

📌 数据整理技巧(Alpaca / ShareGPT 两种格式、清洗建议)详见仓库文档:02-llm-core/docs/llama-factory-training-dataset.md

第二步:安装 LLaMA-Factory 与下载基座模型

克隆 LLaMA-Factory 官方仓库后,用 pip 以可编辑模式安装:

cd LLaMA-Factory pip install -e .

基座模型选用经过中文数据训练的Llama3-8B-Chinese-Chat(模型托管平台搜索下载即可),国内网络建议配置镜像站再执行huggingface-cli download。

💡 想系统了解大模型学习顺序,可参考学习路径文档:02-llm-core/docs/llm-roadmap.md

第三步:配置 LoRA 关键超参数,启动训练

cgft-llm 提供了现成的训练配置文件 cust/train_llama3_lora_sft.yaml,核心参数解读:

参数示例值说明
model_name_or_path本地基座模型路径指向 Llama3-8B-Chinese-Chat
stage: sft+do_train: true—监督微调并开启训练
finetuning_type: loralora使用 LoRA 而非全量微调
lora_targetq_proj,v_proj只注入注意力层的 Q/V 投影矩阵
templatellama3⚠️ 必须与模型匹配,否则效果差
cutoff_len1024单条样本最大长度
learning_rate1e-4 ~ 2e-4LoRA 常用学习率区间
num_train_epochs3 ~ 10数据量小时可多跑几轮
fp16true半精度训练,省显存提速

配置好后,一条命令启动训练:

llamafactory-cli train cust/train_llama3_lora_sft.yaml

不想写配置文件?也可以llamafactory-cli webui启动可视化界面,点鼠标完成同样的训练。

训练过程中会记录 loss 曲线(plot_loss: true),loss 平稳下降即正常;仓库配置还划分了 10% 验证集(val_size: 0.1)用于监控过拟合。

第四步:三种方式验证 LoRA 微调效果

训练结束后,用下面任一方式与微调后的模型对话(均以训练配置为入口):

  1. Web UI 对话(最直观):llamafactory-cli webchat cust/train_llama3_lora_sft.yaml
  2. 终端对话:llamafactory-cli chat cust/train_llama3_lora_sft.yaml
  3. OpenAI 兼容 API:llamafactory-cli api cust/train_llama3_lora_sft.yaml,可直接接入现有应用

💬 用identity.json训练过的模型,问"你是谁"应该能回答出自定义的人设名字——这是验证微调是否生效的最快方式。

第五步:合并 LoRA 适配器,得到完整模型

LoRA 适配器需要配合基座加载。如果想得到可独立部署的完整模型,执行一次模型合并:

llamafactory-cli export cust/merge_llama3_lora_sft.yaml

合并配置 cust/merge_llama3_lora_sft.yaml 只需关心两点:

  • model_name_or_path:基座模型路径
  • adapter_name_or_path:训练产出的 LoRA 适配器路径
  • export_dir:合并后模型的输出目录

⚠️重要避坑:合并时不要使用量化后的模型或quantization_bit参数,否则会破坏精度(仓库配置文件的注释中也特别标注了这一点)。合并后的模型推理时不再需要加载适配器,速度更快。

第六步:模型量化与轻量化部署

模型量化是把 FP32/FP16 高精度参数转换为低精度(如 INT8、INT4)的过程,能显著减小模型体积、降低显存占用,是上生产前的常见一步。合并出完整模型后即可进行量化,再配合本地推理工具完成轻量化部署——仓库中 llama.cpp 相关文档可作延伸参考:02-llm-core/llama-cpp/README.md

常见问题与调优避坑指南

  • ❓显存不够怎么办:调小per_device_train_batch_size、增大gradient_accumulation_steps,或用 4bit 量化加载基座再训练
  • ❓回答格式错乱:检查template是否与模型匹配(Llama3 必须用llama3模板)
  • ❓loss 不下降或爆炸:先降学习率(如 1e-4 → 5e-5),再检查训练数据是否有脏数据
  • ❓微调后"失忆":数据中混入身份/人设样本(如identity.json)可缓解能力遗忘

延伸阅读:微调之后的 LLM 学习路线

微调只是 LLM 工程的一环。微调好的 Llama3 还可以结合 RAG 知识库回答企业内部问题,也可以赋予它调用工具的能力。cgft-llm 仓库中都有对应实践:

  • 工具调用实战:02-llm-core/function-calling/README.md
  • 完整微调节奏(数据整理 → 训练 → 部署):02-llm-core/llama-factory/README.md

掌握"数据 → 训练 → 验证 → 合并 → 量化"这条主线后,你可以把同一套流程平移到 DeepSeek、Qwen 等更多模型上,开启自己的大模型定制之旅 🚀

【免费下载链接】cgft-llmcgft-llm 是一个学习大语言模型(LLM)开发的开源资源。它提供代码、文档和视频教程,帮助用户通过实践掌握前沿核心 LLM 技术项目地址: https://gitcode.com/echonoshy/cgft-llm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询