
Llama Factory
Fine-tune and serve open LLMs with LLaMA-Factory workflows—LoRA, RLHF/DPO/KTO trainers, Web UI, and NPU/vLLM inference—from agent-assisted setup.
Install
npx skills add https://github.com/orchestra-research/ai-research-skills --skill llama-factoryWhat is this skill?
- Covers GPT-OSS LoRA fine-tuning with install, single-GPU train (>44 GB VRAM), merge, and Web UI paths
- Documents trainer modes: pre-training, SFT, RLHF (reward model, PPO), DPO, and KTO
- Includes Ascend NPU inference setup with vLLM-Ascend and Web UI chat using vLLM engine
- References quantization and Web UI screenshots from official LLaMA-Factory Read the Docs structure
Adoption & trust: 1 installs on skills.sh; 9.4k GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Custom model training is a Build concern for solo builders shipping agent features that need domain-tuned weights rather than generic API calls alone. Agent-tooling is the shelf because LLaMA-Factory is the stack that produces tuned models your coding agents or product backends can load.
Common Questions / FAQ
Is Llama Factory safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Llama Factory
# Llama-Factory - Images **Pages:** 3 --- ## **URL:** https://llamafactory.readthedocs.io/en/latest/_images/logo.png --- ## **URL:** https://llamafactory.readthedocs.io/en/latest/_images/quantization_0.png --- ## **URL:** https://llamafactory.readthedocs.io/en/latest/_images/webui_0.png --- # Llama-Factory - Advanced **Pages:** 14 --- ## GPT-OSS¶ **URL:** https://llamafactory.readthedocs.io/en/latest/advanced/best_practice/gpt-oss.html **Contents:** - GPT-OSS¶ - 3 Steps to LoRA Fine-tuning for GPT-OSS¶ - 1. Install LLaMA-Factory and transformers¶ - 2. Train GPT-OSS on a single GPU (requires VRAM > 44 GB, multi-GPU supported)¶ - 3. Merge LoRA Weights¶ - Chat with the Fine-tuned Model¶ - Full Fine-tuning Script¶ Fine-tune the Model via Web UI: --- ## NPU 推理¶ **URL:** https://llamafactory.readthedocs.io/en/latest/advanced/npu_inference.html **Contents:** - NPU 推理¶ - 环境安装¶ - 版本需求¶ - 硬件环境¶ - 软件环境¶ - vLLM-Ascend安装¶ - LLaMA-Factory安装¶ - 推理测试¶ - 可视化界面¶ - 性能对比¶ Python:>= 3.10, < 3.12 CANN >= 8.1.RC1,包括 toolkit、kernels、nnal。 使用下述命令安装 vLLM-Ascend 。 使用下述命令安装 LLaMA-Factory 。 使用下述命令启动LLaMA-Factory的可视化界面。 选择模型并切换到chat模式并将推理引擎修改为vLLM,然后点击加载模型。 在推理性能上。vLLM框架比huggingface的推理速度提升了超过一倍。 --- ## Trainers¶ **URL:** https://llamafactory.readthedocs.io/en/latest/advanced/trainers.html **Contents:** - Trainers¶ - Pre-training¶ - Post-training¶ - Supervised Fine-Tuning¶ - RLHF¶ - Reward model¶ - PPO¶ - DPO¶ - KTO¶ 大语言模型通过在一个大型的通用数据集上通过无监督学习的方式进行预训练来学习语言的表征/初始化模型权重/学习概率分布。 我们期望在预训练后模型能够处理大量、多种类的数据集,进而可以通过监督学习的方式来微调模型使其适应特定的任务。 预训练时,请将 stage 设置为 pt ,并确保使用的数据集符合 预训练数据集 格式 。 在预训练结束后,模型的参数得到初始化,模型能够理解语义、语法以及识别上下文关系,在处理一般性任务时有着不错的表现。 尽管模型涌现出的零样本学习,少样本学习的特性使其能在一定程度上完成特定任务, 但仅通过提示(prompt)并不一定能使其表现令人满意。因此,我们需要后训练(post-training)来使得模型在特定任务上也有足够好的表现。 Supervised Fine-Tuning(监督微调)是一种在预训练模型上使用小规模有标签数据集进行训练的方法。 相比于预训练一个全新的模型,对已有的预训练模型进行监督微调是更快速更节省成本的途径。 监督微调时,请将 stage 设置为 sft 。 下面提供监督微调的配置示例: 由于在监督微调中语言模型学习的数据来自互联网,所以模型可能无法很好地遵循用户指令,甚至可能输出非法、暴力的内容,因此我们需要将模型行为与用户需求对齐(alignment)。 通过 RLHF(Reinforcement Learning from Human Feedback) 方法,我们可以通过人类反馈来进一步微调模型,使得模型能够更好更安全地遵循用户指令。 但是,获取真实的人类数据是十分耗时且昂贵的。一个自然的想法是我们可以训练一个奖励模型(reward model)来代替人类对语言模型的输出进行评价。 为了训练这个奖励模型,我们需要让奖励模型获知人类偏好,而这通常通过输入经过人类标注的偏好数据集来实现。 在偏好数据集中,数据由三部分组成:输入、好的回答、坏的回答。奖励模型在偏好数据集上训练,从而可以更符合人类偏好地评价语言模型的输出。 在训练奖励模型时,请将 stage 设置为 rm ,确保使用的数据集符合 偏好数据集 格式并且指定奖励模型的保存路径。 以下提供一个示例: 在训练奖励完模型之后,我们可以开始进行模型的强化学习部分。与监督学习不同,在强化学习中我们没有标注好的数据。语言模型接受prompt作为输入,其输出作为奖励模型的输入。奖励模型评价语言模型的输出,并将评价返回给语言模型。确保两个模型都能良好运行是一个具有挑战性的任务。 一种实现方式是使用近端策略优化(PPO,Proximal Policy Optimization)。其主要思想是:我们既希望语言模型的输出能够尽可能地获得奖励模型的高评价,又不希望语言模型的变化过于“激进”。 通过这种方法,我们可以使得模型在学习趋近人类偏好的同时不过多地丢失其原有的解决问题的能力。 在使用 PPO 进行强化学习时,请将 stage 设置为 ppo,并且指定所使用奖励模型的路径。 下面是一个示例: 既然同时保证语言模型与奖励模型的良好运行是有挑战性的,一种想法是我们可以丢弃奖励模型, 进而直接基于人类偏好训练我们的语言模型,这大大简化了训练过程。 在使用 DPO 时,请将 stage 设置为 dpo,确保使用的数据集符合 偏好数据集 格式并且设置偏好优化相关参数。 以下是一个示例: KTO(Kahneman-Taversky Optimization) 的出现是为了解决成对的偏好数据难以获得的问题。 KTO使用了一种新的损失函数使其只需二元的标记数据, 即只需标注回答的好坏即可训练,并取得与 DPO 相似甚至更好的效果。 在使用 KTO 时,请将 stage 设置为 kto ,设置偏好优化相关参数并使用 KTO 数据集。 --- ## 模型支持¶ **URL:** https://llamafactory.readthedocs.io/en/latest/advanced/model_support.html **Contents:** - 模型支持¶ - 注册 template¶ - 多模态数据构建¶ - 提供模型路径¶ LLaMA-Factory 允许用户添加自定义模型支持。我们将以 LLaMA-4 多模态模型为例,详细介绍如何为新模型添加支持。对于多模态模型,我们需要完成两个主要任务: 首先,我们可以通过以下方法获取 LLaMA-4 模型的 template 输出如下。通过观察输出我们可以得到模型的 chat_template。除此以外也可以通过 huggingface repo 来获取模型的 template. 通过观察输出,我们可以得知 LLaMA-4 的 chat_template 主要由以下几部分组成: 用户消息: <|header_start|>user<|header_end|>\n\n{{content}}<|eot|> 助手消息: <|header_start|>assistant<|header_end|>\n\n{{content}}<|eot|> 系统消息: <|header_start|>system<|header_end|>\n\n{{content}}<|eot|> 工具消息: <|header_start|>ipython<|header_end|>\n\n"{{content}}"<|eot|> 我们可以在 src/llamafactory/data/template.py 中使用 register_template 方法为自定义模型注册 chat_template。 在实际应用中,我们往往会在用户输入的信息后添加助手回复模板的头部 <|header_start|>assistant<|header_end|> 来引导模型进行回复。 因此我们可以看到,用户消息和工具输出的模板中都附有了助手回复的头部,而助手消息格式 format_assitant 也因此省略了