
LIamaFactory介绍在智能应用日益个性化的今天通用大模型虽然强大但在特定领域——比如医疗咨询、法律问答或企业客服中——往往“说得漂亮却不够专业”。要让AI真正理解行业语境、输出精准内容关键在于领域适配的微调。然而从环境配置到训练部署传统流程动辄几十行命令、层层依赖冲突对开发者极不友好。有没有一种方式能让开发者不用写代码、不必深究底层细节就能完成从模型加载、数据准备到训练和推理的全流程答案是有。LLaMA-Factory 正是为此而生。它被称为“大模型微调的一站式工厂”不仅支持包括 Qwen、 Llama、Baichuan、ChatGLM 等数十种主流架构还统一了全参数微调、LoRA、QLoRA 等多种高效训练方法并通过一个直观的 WebUI 界面把复杂的操作变成点选配置。哪怕你是第一次接触模型微调也能在一个下午内跑通整个流程。下面我们就以 Qwen2.5-3B-Instruct 模型为例带你从零开始在本地完成一次完整的微调实验并最终启动 API 服务让你的专属模型对外提供能力。LlamaFactory - 一站式AI开发工具平台提供大模型集成与优化资源 | LlamaFactoryLLaMA-Factory是一个开源的大模型微调框架支持 100 语言模型和视觉模型的高效微调提供 WebUI 和命令行两种使用方式 。官方链接:https://github.com/hiyouga/LLaMA-FactoryGitHub 开源项目仓库提供完整代码和文档核心功能多模型支持支持 LLaMA、Mistral、Qwen、DeepSeek、Gemma 等 100 大模型架构涵盖语言模型和视觉模型。微调方法丰富提供全量微调、LoRA、QLoRA、DoRA 等多种微调策略支持 2-8 位量化训练单卡即可微调 7B 模型。易用性高内置 WebUI 可视化界面和命令行工具无需编写训练代码通过配置文件即可完成从数据准备到模型部署的全流程。Llama-Factory 是基于 transformers 库开发的训练、微调、推理一体化平台支持预训练、指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等多种训练范式。支持使用 Accelerate 或 DeepSpeed 作为训练加速后端。使用 Llama-Factory 进行微调非常简单因为其最大的优势在于强大的数据处理与训练配置能力。只要按照官方的文档配置好环境直接运行对应的脚本即可。一、为什么选择 LLaMA-Factory Qwen2.51.1 传统微调的三大痛点在过去想要微调一个大模型开发者往往面临三重困境硬件门槛高全参数微调需要多卡A100集群个人开发者望而却步技术复杂度大分布式训练、参数调优、环境配置环环相扣一个报错卡半天工具链碎片化从数据处理到模型部署需要拼接多个工具流程冗长1.2 LLaMA-Factory 的破局之道LLaMA-Factory 的出现彻底改变了这一局面。它的核心设计理念是“开箱即用”单卡可跑通过 LoRA 技术将可训练参数压缩至百万级12GB显存就能微调7B模型零代码训练通过 YAML 配置文件 一条命令完成训练无需手写 Trainer全流程覆盖从数据准备、训练、评估到部署提供完整工具链1.3 为什么选 Qwen2.5Qwen2.5 是阿里巴巴开源的高性能大语言模型家族涵盖 0.5B 到 72B 多种规模。它的核心优势18万亿Token预训练在代码、数学等领域有天然优势Decoder-only架构标准因果语言模型微调兼容性好内置对话模板通过 apply_chat_template 自动处理多轮对话格式环境准备与安装硬件要求配置项 最低要求 推荐配置显存 8GBQLoRA 16GBLoRA内存 16GB 32GB存储 20GB 50GB先确认你的 GPU 是否已被系统识别 nvidia-smi,如果能看到类似 GeForce RTX 3090 和显存使用情况说明驱动已就绪pip install nvitop 实时查看gpu cpu使用情况 nvitoppip install bitsandbytes0.39.01.模型下载pip install modelscope modelscope download --model Qwen/Qwen2.5-3B-Instruct --local_dir /mnt/llminstruct模型就是专门学会“听指令干活”的大模型它是在基础模型上经过特殊训练能精准理解并执行人类给出的自然语言任务2.数据准备如果你想训练客服机器人、法律助手或医学顾问就需要用自己的数据。支持格式包括 JSONL、CSV、Parquet结构示例如下{instruction: 解释什么是糖尿病, input: , output: 糖尿病是一种慢性代谢疾病……}1.操作步骤1. 将文件放入项目根目录下的 data 文件夹2. 在 WebUI 中选择 Custom Dataset3. 填写路径如 data/my_medical_data.json4. 映射字段instruction → instruction, output → output注意每条样本不宜过长建议控制在 512 token 以内避免显存溢出。类似这样的{ instruction: Who are you?, input: , output: I am 小聚, an AI assistant developed by Aron. How can I assist you today? }, { instruction: What is your name?, input: , output: You may refer to me as 小聚, an AI assistant developed by Aron. },需在data/dataset_info.json中注册自定义数据集明确指定文件路径与列名映射 如在llama-factory-data文件夹下面 新增数据文件如identity.json. 同时需要再dataset_info.json中配置{ identity: { file_name: identity.json }, fintech: { file_name: fintech.json }, alpaca_en_demo: { file_name: alpaca_en_demo.json },3.Llama-Factory 安装git clone https://github.com/hiyouga/LLaMA-Factory.git # 或者国内镜像 git clone https://gitee.com/qzl9999/LLaMA-Factory.git cd LLaMA-Factory pip install -e .4.Llama-Factory启动启动 WebUI可视化操作让微调不再神秘LLaMA-Factory 最大的亮点之一就是它的图形界面。只需一条命令cd Llama-Factory llamafactory-cli webui稍等片刻终端会提示Running on local URL: http://127.0.0.1:7860默认打开gradio 的7860端口注意如果是云服务请打开云服务的7860端口5.微调界面配置如何使用LLaMA-Factory进行模型微调使用LLaMA-Factory进行模型微调是一个涵盖从选择模型、数据加载、参数配置到训练、评估优化直至部署应用的全面且高效的流程。1. 选择模型根据应用场景和需求选择合适的预训练模型。LLaMA-Factory 本身不包含模型权重你需要自行从 Hugging Face 或 ModelScope 下载。模型路径指定了下载的模型路径回到 WebUI 页面点击左侧 Train 标签页开始配置。设置语言进入WebUI后可以切换到中文zh。配置模型选择LLaMA2.5 3B-instruct模型。 instruct是经过安全测试的模型微调策略选择微调方法则保持默认值lora使用LoRA轻量化微调方法能极大程度地节约显存。注意微调方法选择lora,量化登记选择4就是qlora,不选就是lora,注意每次跑完模型最好卸载模型并将saves文件夹的内容删掉对于大多数本地用户QLoRA 是最优解。它结合了 LoRA 的低秩适配和 4-bit 量化技术在仅增加几百 MB 显存开销的情况下就能实现接近全参数微调的效果。配置如下Finetuning Type: qloraQuantization Bit: 4LoRA Rank: 64秩越高表达能力越强但也更耗显存LoRA Dropout: 0.1防过拟合加载数据集将准备好的数据集加载到LLaMA-Factory中。LLaMA-Factory项目内置了丰富的数据集放在了data目录下。同时也可以自己准备自定义数据集将数据处理为框架特定的格式放到指定的data目录下。一切就绪后点击 Start 按钮训练进程将在后台启动。WebUI 实时展示- 当前 epoch / step- Loss 曲线变化- GPU 显存占用- 日志输出含错误信息训练过程中可随时暂停或终止任务模型检查点会自动保存到 output/ 目录下。输出目录将输出目录修改为train_2026训练后的LoRA权重将会保存在此目录中。预览命令点击「预览命令」可展示所有已配置的参数如果想通过代码运行微调可以复制这段命令在命令行运行。开始点击「开始」启动模型微调。先训练 1 轮看看效果如果效果不理想再多训练几轮。如果 SFT 样本较少可以设置较大 Epoch。较小 Epoch 的 loss 会不收敛较大 Epoch 会容易导致过拟合但过拟合要优于欠拟合。如果 SFT 样本数量较多如在十万以上一般 2 个 Epoch 即可收敛。学习率控制模型权重更新步幅的参数按照经验来讲 LoRA 选择在 1e-5 ~ 2e-5。由于数据集都是一些短问答可以把截断长度设置小一点为 1024默认是 2048。梯度累计设置为 4。计算类型选择 BF16暂不支持 FP4。6. 评估与优化使用LLaMA-Factory提供的评估工具对模型性能进行评估并根据评估结果进行针对性的优化。刷新适配器微调完成后点击页面顶部的「刷新适配器」适配器路径点击适配器路径即可弹出刚刚训练完成的LoRA权重点击选择下拉列表中的train_llama3选项在模型启动时即可加载微调结果。评估模型选择「EvaluatePredict」栏在数据集下拉列表中选择「eval」验证集评估模型。输出目录更改输出目录为eval_llama3模型评估结果将会保存在该目录中。开始评估最后点击开始按钮启动模型评估。评估分数模型评估大约需要5分钟左右评估完成后会在界面上显示验证集的分数。ROUGE分数其中ROUGE分数衡量了模型输出答案predict和验证集中标准答案label的相似度ROUGE分数越高代表模型学习得更好。7.训练完成测试将训练好的模型部署到实际应用场景中实现其功能和价值。加载模型选择「Chat」栏确保适配器路径是train_llama3点击「加载模型」即可在Web UI中和微调模型进行对话。微调成功后我们得到了一个 Checkpoint 记录下拉可以选择刚刚微调好的模型注意检查点路径的配置 配置成checkpointadapter 开头的是 LoRA 适配器结果后续用于模型推理融合。training_loss 和 trainer_log 等记录了训练过程中的指标。其他是训练时各种参数的备份。8.概念LoRA是给大模型打补丁的技术只训练少量参数QLoRA4-bit压缩大模型LoRA补丁让普通电脑也能微调大模型。传统微调 vs LoRA传统微调修改整个大模型的所有参数像给整栋大楼重新装修问题7B模型需要14GB显存训练成本极高LoRA只训练参数补丁像只装修关键房间核心思想冻结原始模型仅训练低秩分解的小矩阵LoRA全称是 Low-Rank Adaptation低秩适配微调。正常全参微调是模型所有参数都参与训练AI写代码比如一个 7B 模型大约有 70 亿参数全部训练显存压力很大。LoRA 的做法是冻结原始大模型参数只在部分线性层旁边加一小组可训练参数训练这些新增的小参数也就是说原模型本体不动只训练一个“小外挂”。可以简单画成原始权重 W冻结不训练输入 x → W x LoRA新增参数部分AI写代码LoRA 微调完后保存的不是整个模型而是一个很小的 adapter 文件。例如原始模型7B十几 GBLoRA adapter几十 MB 到几百 MBQLoRA 可以理解为 Quantized LoRA也就是量化版 LoRA。它比 LoRA 多做了一步先把原始模型从 FP16/BF16 压缩成 4bit然后再做 LoRA 微调普通 LoRA原模型用 FP16/BF16 加载LoRA 参数参与训练QLoRA原模型用 4bit 加载LoRA 参数参与训练所以 QLoRA 的最大优势是显存占用更低AI写代码比如同样微调 7B 模型微调方式 原模型精度 是否训练原模型 显存占用 效果全参微调 FP16/BF16 是 很高 上限最高LoRA FP16/BF16 否 中等 很好QLoRA 4bit 否 最低 接近 LoRA