LLaMA Factory 项目代码指南

1 LLaMa-Factory 项目简介 LLaMA-Factory 是一个面向大语言模型(LLM)的高效训练与微调框架,专为简化 LLaMA 系列以及各类开源大模型的训练流程而设计。它以“开箱即用、灵活高效”为核心理念,提供从数据准备、参数高效微调(PEFT)、训练配置管理到模型部署的一站式解决方案。 LLaMA-Factory 支持多种主流模型架构(如 LLaMA、Qwen、Gemma、Mistral 等),并集成了 LoRA、QLoRA、AdaLoRA、Prompt Tuning 等多种轻量化训练技术,使开发者能够以极低成本在单卡或多卡环境下完成高质量模型微调。 该框架提供直观易用的命令行工具与 Web UI,适配从科研实验到生产级应用的多场景需求。通过结构化的配置体系、完善的训练监控以及可扩展的数据加载管线,LLaMA-Factory 让大模型训练变得更加透明、可控且易于维护。 2 项目目录结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 LLaMA-Factory ├── assets # 项目静态资源(图标、示例图片、赞助商信息等) │ ├── sponsors # 赞助商Logo与展示资源 │ └── thirdparty # 第三方依赖或引用资源 │ ├── data # Demo 数据与示例数据集 │ └── mllm_demo_data # 多模态LLM(MLLM)演示数据 │ ├── docker # Docker 环境配置(CUDA/NPU/ROCm 等) │ ├── docker-cuda # NVIDIA GPU 环境 Dockerfile │ ├── docker-npu # 华为 Ascend NPU 训练环境 │ └── docker-rocm # AMD ROCm 训练环境 │ ├── examples # 训练、推理、工具使用的完整示例脚本 │ ├── accelerate # accelerate 分布式训练示例 │ ├── ascend # 华为 Ascend NPU 示例 │ ├── deepspeed # DeepSpeed 训练配置与示例 │ ├── extras # 各类高级特性示例(如 fp8、Galore、LoRA+ 等) │ │ ├── adam_mini # Adam mini 参数优化示例 │ │ ├── apollo # Apollo 优化器示例 │ │ ├── badam # BAdam 优化器示例 │ │ ├── dft # DFT 训练示例 │ │ ├── fp8 # FP8 训练示例 │ │ ├── fsdp_qlora # FSDP + QLoRA 示例 │ │ ├── galore # GaLore低秩优化示例 │ │ ├── llama_pro # LLaMA-Pro 示例 │ │ ├── loraplus # LoRA+ 示例 │ │ ├── mod # MOD 技术示例 │ │ ├── multi_tokens # 多Token生成实验示例 │ │ ├── muon # Muon 优化器示例 │ │ ├── nlg_eval # 文本生成质量评测示例 │ │ ├── oft # OFT 微调示例 │ │ ├── pissa # PiSSA 权重重参数方法示例 │ │ └── qoft # QOFT 示例 │ ├── inference # 推理脚本示例(Chat、工具调用等) │ ├── kt_optimize_rules # KTO 规则示例(奖励建模优化) │ ├── megatron # Megatron-LM 适配示例 │ ├── merge_lora # LoRA 权重合并示例 │ ├── train_full # 全参数训练示例 │ ├── train_lora # LoRA 微调示例 │ └── train_qlora # QLoRA 微调示例 │ ├── scripts # 辅助脚本(转换、统计、API示例) │ ├── api_example # HTTP/API 使用示例 │ ├── convert_ckpt # 权重转换脚本(HF <-> 原始权重) │ └── stat_utils # 数据、token 统计工具 │ ├── src │ └── llamafactory # 核心代码入口 │ ├── api # Web API / 服务端(OpenAI 接口兼容) │ ├── chat # ChatEngine、多轮对话、工具调用 │ ├── data # 数据加载、处理、格式化、模板系统 │ │ ├── processor # 数据预处理组件(指令/对话/多模态) │ ├── eval # 模型评测 │ ├── extras # 辅助函数(如日志、常量,环境等) │ ├── hparams # 超参数解析(模型/数据/训练参数) │ ├── model # 模型加载、LoRA/QLoRA/PEFT、patch等 │ │ └── model_utils # 模型结构、权重、分布式工具 │ ├── third_party # 集成第三方模块(如 muon 优化器) │ ├── train # 训练核心模块(SFT/DPO/KTO/PPO/RM等) │ │ ├── dpo # DPO 训练逻辑 │ │ ├── ksft # KSFT 训练逻辑 │ │ ├── kto # KTO 训练逻辑 │ │ ├── mca # MCA 对齐算法 │ │ ├── ppo # PPO 强化学习训练 │ │ ├── pt # 预训练流程 │ │ ├── rm # Reward Model(奖励模型训练) │ │ └── sft # 指令监督微调 │ ├── v1 # 老版本核心(LLaMA-Factory v1) │ │ ├── config # v1 配置系统 │ │ ├── core # v1 核心训练与推理模块 │ │ ├── extras # v1 扩展功能 │ │ ├── plugins # 插件系统(模型/采样器/分布式等) │ │ └── trainers # 训练器(Trainer)体系 │ └── webui # Web UI(Gradio 界面) │ ├── components # UI 组件 │ ├── tests # 测试集(核心模块测试) │ ├── data # 数据处理测试 │ ├── e2e # 端到端测试 │ ├── eval # 评测模块测试 │ ├── model # 模型加载/patch等测试 │ └── train # 训练流程测试 │ └── tests_v1 # v1 版本的历史测试集 ├── core # v1 核心模块测试 └── plugins # v1 插件系统测试 3 命令行接口 在使用如下命令安装环境依赖时,setup.py 会注册命令行工具 ...

2025年12月5日 · 8 分钟 · 1627 字 · hiyouga

KTransformers 微调 × LLaMA-Factory 集成

KTransformers 微调 × LLaMA-Factory 集成 引言 从 DeepSeek-V3/R1 到 Qwen3-MoE 和 Kimi-K2,每一次超大模型的开源都带来性能与规模上的巨大跃升。然而,多数研究者与开发者受限于昂贵的显卡与动辄数千亿参数的模型,难以在资源受限条件下微调超大模型。面对这种差距,我们提出了一种更具可行性的方案:通过 KTransformers 与 LLaMA-Factory 的结合,仅需 2~4 张 RTX 4090 与较高内存 CPU,便可微调 DeepSeek-671B 等超大规模的 MoE 模型。 该架构的核心目标是为资源受限下的研究者提供在本地探索超大规模模型微调的可能性。同时,也在较小规模(如 14B/30B)提供快速定制特定场景的路径。我们以风格化对话、西式腔调翻译、医学问答作为代表任务,验证架构的可行性,并展示在数小时内达成个性化适配的可操作性。 如下图所示,LLaMA-Factory 是整个微调流程的统一调度与配置框架,负责数据处理、训练调度、LoRA 插入与推理接口管理; KTransformers 则作为其可插拔的高性能后端,在相同的训练配置下接管 Attention / MoE 等核心算子,实现异构设备(GPU+CPU)的高效协同。 我们在 LLaMA-Factory 框架下,对比评测了 HuggingFace、Unsloth、KTransformers 三种后端的 LoRA 微调方案。结果显示,KTransformers 为超大规模的 MoE 模型(671B 等)提供了4090 级别的唯一可行方案,并在较小规模的 MoE 模型(DeepSeek-14B)上面也展现了更高的吞吐和更低的显存占用。 Under LoRA (BF16) + NekoQA-10K 风格化对话数据集 HuggingFace Backend Unsloth Backend KTransformers Backend [14B-DeepSeekV2-Lite] LoRA fine-tuning 吞吐量 303.58 token/s 455.37 token/s 530.38 token/s [14B-DeepSeekV2-Lite] GPU memory 32.12 GB 9.64 GB 6.08 GB [671B-DeepSeekV3] LoRA fine-tuning 吞吐量 OOM 尚未支持 40.35 token/s [671B-DeepSeekV3] GPU memory(共计) 理论值 1400 GB † 尚未支持 70 GB † † 1400 GB 为理论显存(BF16 全参数常驻,非可运行配置);70 GB 为 KT 策略(Attention 驻 GPU + MoE 分层 offload)下的实测峰值。 ...

2025年11月4日 · 5 分钟 · 914 字 · MadSys 实验室, KVCache-AI 团队, 趋境科技, LLaMA-Factory 团队

Megatron-Core Fine-Tuning with LLaMA-Factory

LLaMA-Factory 🤝 MCoreAdapter 为充分利用 Megatron-core 的并行技术并提高 MoE 模型的训练效率,我们将 ROLL 团队 提供的 MCoreAdapter 与 LLaMA-Factory 的数据链路及 Megatron Trainer 的训练后端相结合,构建了一个新的模型训练工作流。 🚀 快速开始 1. 💻 环境安装 📦 pip 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # for megatron-core pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu124 pip install \ numpy==1.26.4 \ optree>=0.13.0 \ spacy==3.7.5 \ weasel==0.4.1 \ transformer-engine[pytorch]==2.2.0 \ megatron-core==0.13.0 \ deepspeed==0.16.4 pip uninstall -y opencv opencv-python opencv-python-headless pip install opencv-python-headless==4.11.0.86 pip install "git+https://github.com/alibaba/roll.git#subdirectory=mcore_adapter" # for llamafactory git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]" --no-build-isolation 🐳 docker (推荐) 参考 Dockerfile 进行构建。 ...

2025年10月21日 · 3 分钟 · 616 字 · LLaMA-Factory Team

Easy Dataset × LLaMA Factory: 让大模型高效学习领域知识

1 引言 Easy Dataset 是一个专为创建大型语言模型(LLM)微调数据集而设计的应用程序。它提供了直观的界面,用于上传特定领域的文件,智能分割内容,生成问题,并为模型微调生成高质量的训练数据。支持使用 OpenAI、DeepSeek、火山引擎等大模型 API 和 Ollama 本地模型调用。 LLaMA Factory 是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过 Web UI 界面零代码微调大模型,目前已经成为开源社区最热门的微调框架之一,GitHub 星标超过 6.3 万。支持全量微调、LoRA 微调、以及 SFT 和 DPO 等微调算法。 本教程使用 Easy Dataset 从五家互联网公司的公开财报构建 SFT 微调数据,并使用 LLaMA Factory 微调 Qwen2.5-3B-Instruct 模型,使微调后的模型能学习到财报数据集中的知识。 2 运行环境要求 GPU 显存:大于等于 12 GB CUDA 版本:高于 11.6 Python 版本:3.10 3​ ​使用 Easy Dataset 生成微调数据 3.1 安装 Easy Dataset 方法一:使用安装包 如果操作系统为 Windows、Mac 或 ARM 架构的 Unix 系统,可以直接前往 Easy Dataset 仓库下载安装包:https://github.com/ConardLi/easy-dataset/releases/latest 方法二:使用 Dockerfile 1.从 GitHub 拉取 Easy Dataset 仓库 ...

2025年4月3日 · 3 分钟 · 445 字 · hiyouga