LLM 训练微调实战:基于 LLaMA-Factory 框架详解
LLaMA-Factory 是一个整合了主流高效训练微调技术的开源框架,支持多种大模型架构。其安装方法、数据格式要求、命令行操作流程及 WebUI 使用方式。内容涵盖 Conda 环境搭建、Windows 量化支持、数据集配置以及 LoRA 微调实战步骤,详细解析了 YAML 配置参数与显存优化技巧,适合希望快速上手大模型微调的开发者参考。

LLaMA-Factory 是一个整合了主流高效训练微调技术的开源框架,支持多种大模型架构。其安装方法、数据格式要求、命令行操作流程及 WebUI 使用方式。内容涵盖 Conda 环境搭建、Windows 量化支持、数据集配置以及 LoRA 微调实战步骤,详细解析了 YAML 配置参数与显存优化技巧,适合希望快速上手大模型微调的开发者参考。

LLaMA-Factory 是一个整合了主流高效训练微调技术的开源框架,支持多种大模型架构。它提供了丰富的功能,包括全参数微调、LoRA、QLoRA 等,适配性好且易于上手。
推荐使用 Conda 管理 Python 环境,创建虚拟环境并激活:
conda create -n llamafactory python=3.8.0
conda activate llamafactory
克隆项目代码并进入目录:
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
安装依赖包(包含 PyTorch 和指标库):
pip install -e ".[torch,metrics]"
如果在 Windows 环境下开启量化 LoRA(QLoRA),需要安装预编译的 bitsandbytes 库,支持 CUDA 11.1 - 12.2。请根据实际 CUDA 版本选择合适的 wheel 文件进行安装。
若需使用 FlashAttention-2,同样需要安装预编译的 flash-attn 库,支持 CUDA 12.1 - 12.2。
LLaMA-Factory 的数据集通常放置在 /data 路径下。标准的数据格式为 JSONL 或 JSON 数组,每条记录包含指令、输入和输出字段。
示例数据结构如下:
[
{
"instruction": "你好",
"input": "",
"output": "你好!有什么可以帮你的吗?"
},
{
"instruction": "解释一下什么是人工智能",
"input": "",
"output": "人工智能是计算机科学的一个分支..."
}
]
使用自定义数据集时,需要在 /data 路径下的 dataset_info.json 文件中注册新的数据集配置,指定数据文件路径及列名映射。
LLaMA-Factory 提供了便捷的 CLI 工具,支持训练、推理和模型合并等操作。
对 Llama3-8b-Instruct 模型进行 LoRA 微调,配置文件位于 examples/lora_single_gpu/llama3_lora_sft.yaml:
llamafactory-cli train examples/lora_single_gpu/llama3_lora_sft.yaml
加载微调后的模型进行对话测试:
llamafactory-cli chat examples/inference/llama3_lora_sft.yaml
将 LoRA 权重合并到基座模型中,以便部署:
llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml
所有指令操作的参数调整均在对应的 YAML 配置文件中完成。高级用法可参考 examples/README.md。
LLaMA-Factory 内置了由 Gradio 驱动的可视化界面,适合不熟悉命令行的用户。
启动 WebUI:
llamafactory-cli webui
访问本地地址 127.0.0.1:7860 即可在浏览器中进行模型选择、数据上传、参数配置及训练监控。
YAML 配置文件是微调的核心,主要包含以下部分:
q_proj, v_proj 等。如果训练过程中出现 OOM(Out Of Memory),可以尝试以下措施:
per_device_train_batch_size。gradient_checkpointing 以节省显存。gradient_accumulation_steps 保持总 Batch Size 不变。若模型在验证集上表现下降,可能是过拟合:
部署时可考虑使用 vLLM 或 TGI 作为推理后端,配合 LLaMA-Factory 导出的模型,以获得更高的吞吐量。
LLaMA-Factory 为大模型微调提供了统一且高效的解决方案。通过本文介绍的安装、数据准备、命令行操作及 WebUI 使用方法,开发者可以快速构建自己的微调流程。结合合理的参数配置与优化策略,能够显著降低大模型落地的门槛。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online