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 会注册命令行工具 ...