跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

LLaMA-Factory 大模型高效微调实战指南

LLaMA-Factory 是一个统一高效的微调工具,支持通过 WebUI 或命令行对上百种语言模型进行个性化微调。环境搭建、数据格式准备、配置文件参数解析以及训练过程中的常见问题排查。内容涵盖 Conda 环境配置、ShareGPT 数据集构造、DeepSpeed 加速选项、LoRA 与全量微调的区别,以及微调后的模型推理部署方法,旨在帮助用户快速上手大模型微调实战。

清心发布于 2025/2/7更新于 2026/6/328 浏览
LLaMA-Factory 大模型高效微调实战指南

LLaMA-Factory 大模型高效微调实战指南

背景介绍

在构建任务相关数据时,如果能通过网页界面轻松完成微调(Fine-tuning)操作,将大大减轻开发工作量。2024 年 ACL 会议上,北航与北大合作发表了论文《LLAMAFACTORY: 统一高效微调超百种语言模型》。该项目集成了顶尖的训练效率技术,用户无需编写代码,即可通过网页界面 LLAMABOARD 对上百种语言模型进行个性化微调。

项目发布前已在 GitHub 上获得大量关注,彰显了其在社区中的巨大影响力。

图片:LLaMA-Factory 界面预览

微调界面预览(LLaMA Board)

只需一键启动 WebUI,即可接入 LLaMA Board。这是一个直观的操作面板,允许用户轻松选择数据集、自定义各种参数。体验从预览配置、保存训练设置到加载配置、启动高效训练的无缝流程。界面实时展示训练损失曲线,让用户随时掌握微调进度与效果。

图片:LLaMA Board 配置页

图片:训练监控面板

如何准备微调环境?

第一步:安装环境(以 Conda 为例)

# 第 1 步 clone LLaMA-Factory 仓库
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

# 第 2 步 进入目录
cd LLaMA-Factory

# 第 3 步 创建基础环境(推荐 Python 3.10)
conda create -n llama_factory python=3.10

# 第 4 步 激活 conda 环境
conda activate llama_factory

# 第 5 步 安装依赖(清华源加速)
pip install -e .[metrics] -i https://pypi.tuna.tsinghua.edu.cn/simple

可选扩展: 如果需要 DeepSpeed 加速(适用于显存受限场景),请额外安装:

pip install deepspeed==0.14.3

第二步:构造数据

微调数据通常采用 ShareGPT 格式。以下是一个标准的数据集示例:

[
    {
        "id": "p1",
        "system": "你是一个销售小助手,你的任务是邀请程序员购买 AI 大模型课程",
        "conversations": [
            {
                "from": "user",
                "value": "你好,你是?"
            },
            {
                "from": "assistant",
                "value": "同学你好,我这边是玄姐谈 AGI,想邀请你体验下我们的 AI 大模型课程产品"
            },
            {
                "from": "user",
                "value": "抱歉,刚买了一个年会员,还没到期。"
            },
            {
                "from": "assistant",
                "value": "不好意思同学,打扰到您了,那晚些时候再给您来电,祝您工作顺利,再见"
            }
        ]
    },
    {
        "id": "p2",
        "system": "你是一个销售小助手,你的任务是邀请程序员购买 AI 大模型课程",
        "conversations": [
            {
                "from": "user",
                "value": "你们有什么优惠吗?"
            },
            {
                "from": "assistant",
                "value": "目前我们有早鸟价,欢迎咨询详情。"
            }
        ]
    }
]

第三步:配置数据集信息

进入 LLaMA-Factory/data 目录,找到 dataset_info.json 文件。

在 JSON 字典中添加自己的数据信息:

"my_task": {
    "file_name": "finetune_data.json",
    "formatting": "sharegpt",
    "columns": {
        "messages": "conversations",
        "tools": "id"
    },
    "tags": {
        "role_tag": "from",
        "content_tag": "value",
        "user_tag": "user",
        "assistant_tag": "assistant"
    }
}
  • file_name: 数据文件名,需确保文件位于 data 目录下。
  • formatting: 数据格式化方式,通常为 sharegpt。
  • columns: 映射字段名,根据实际 JSON 结构调整。
  • tags: 角色标签定义,用于区分用户和助手。

开始微调训练

方法一:WebUI 选参训练

这种方式前端界面友好,适合快速验证。

运行命令:

CUDA_VISIBLE_DEVICES=0,1,2,3 llamafactory-cli webui

在浏览器中打开本地服务地址,选择模型、数据集及参数后点击启动。

方法二:命令行后台训练

适合生产环境或长时间训练。

export CUDA_VISIBLE_DEVICES=0,1,2,3
llamafactory-cli train ./sft_yaml/my_finetune.yaml
配置文件详解 (my_finetune.yaml)
### model
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct

### method
stage: sft              # 监督微调阶段
do_train: true          # 开启训练
finetuning_type: full   # 全量微调,也可改为 lora 节省显存
deeepspeed: examples/deepspeed/ds_z3_config.json  # 使用 ZeRO-3 优化显存

### dataset
dataset: identity,alpaca_en_demo  # 指定数据集名称
template: llama3           # 匹配模型模板
cutoff_len: 1024           # 最大截断长度,超过部分将被丢弃
max_samples: 1000          # 限制样本数量,调试时可减小
overwrite_cache: true      # 覆盖缓存
preprocessing_num_workers: 16  # 预处理线程数

### output
output_dir: saves/llama3-8b/full/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 2
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
fp16: true                 # 混合精度训练
ddp_timeout: 180000000     # DDP 超时时间

### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

关键参数说明:

  • finetuning_type: 推荐使用 lora 进行微调,可大幅降低显存需求;full 为全量更新权重。
  • deepspeed: 若显存不足,可切换至 ds_z3_offload_config.json 启用 CPU Offload。
  • cutoff_len: 根据显存大小调整,过大会导致 OOM(显存溢出)。

查看训练日志

微调过程完毕后,前往指定的输出目录 (output_dir),在其中审视训练日志。这些记录涵盖关键指标,如训练损失(Loss)与验证损失,帮助全面了解模型学习进展与性能变化。

微调后评估与部署

要更新大模型的适配器,只需简单选取目标模型即可完成配置。经过微调训练得到的大模型,其部署和调用方式与其他预训练大模型保持一致。

推理脚本示例

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "./saves/llama3-8b/full/sft",
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("./saves/llama3-8b/full/sft")

prompt = "你好,介绍一下你自己。"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

常见问题排查

  1. 显存溢出 (OOM):
    • 减小 per_device_train_batch_size。
    • 启用 deepspeed 或切换为 lora 微调模式。
    • 减小 cutoff_len。
  2. 数据格式错误:
    • 检查 dataset_info.json 中的 columns 映射是否与数据文件一致。
    • 确保 JSON 格式合法,无多余逗号或缺失括号。
  3. 训练不收敛:
    • 尝试调整 learning_rate(通常 1e-4 到 5e-5 之间)。
    • 增加 num_train_epochs 或检查数据质量。

总结

LLaMA-Factory 提供了从数据准备、配置管理到训练部署的一站式解决方案。通过合理的参数配置与环境优化,开发者可以高效地完成大模型的定制化微调,满足特定业务场景的需求。

目录

  1. LLaMA-Factory 大模型高效微调实战指南
  2. 背景介绍
  3. 微调界面预览(LLaMA Board)
  4. 如何准备微调环境?
  5. 第一步:安装环境(以 Conda 为例)
  6. 第 1 步 clone LLaMA-Factory 仓库
  7. 第 2 步 进入目录
  8. 第 3 步 创建基础环境(推荐 Python 3.10)
  9. 第 4 步 激活 conda 环境
  10. 第 5 步 安装依赖(清华源加速)
  11. 第二步:构造数据
  12. 第三步:配置数据集信息
  13. 开始微调训练
  14. 方法一:WebUI 选参训练
  15. 方法二:命令行后台训练
  16. 配置文件详解 (my_finetune.yaml)
  17. model
  18. method
  19. dataset
  20. output
  21. train
  22. eval
  23. 查看训练日志
  24. 微调后评估与部署
  25. 推理脚本示例
  26. 常见问题排查
  27. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 大模型入门基础知识与核心架构解析
  • WorkBuddy 接入 QQ 机器人配置指南
  • ESP-Drone 开源无人机平台 5 步快速入门
  • JDK 安装与环境配置完整指南
  • 大模型幻觉机制与解码策略深度解析
  • 学生成绩综合统计分析系统设计与实现
  • QAnything 本地知识库问答系统:支持海量数据与跨语种 RAG 应用
  • 深入解析 LLM 函数调用能力优化:Prompt 格式与数据策略
  • 世界模型发展脉络与未来趋势:理解世界或预测未来?综合综述
  • 2024 年中国生成式人工智能应用与实践展望白皮书
  • VSCode + GitHub Copilot AI 编程实战指南
  • Meta 大型概念模型重塑语言推理技术解析
  • Kafka 核心架构与分布式存储
  • MoonTV 开源跨平台影视聚合播放器
  • Bun 运行时:比 Node.js 更快的 JavaScript 开发新选择
  • Stable Diffusion v4.10 与 ComfyUI 整合包配置及问题解决方案
  • 二叉树深度优先遍历实战:计算布尔值与路径数字和
  • 用DeepSeek和Cursor构建智能代码审查工具:AI编程实践
  • webdav-server 轻量级 WebDAV 服务器部署与配置指南
  • 基于Web的实验室设备预约与管理系统的设计与实现开题报告

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online