
LLaMA Factory 简介LLaMA Factory(也常被称为LLaMA-Factory) 是一个专为大语言模型LLM设计的、集成了多种高效微调方法如 LoRA, QLoRA的开源框架。它最大的特点是易用性和集成度高。它通过提供一个简洁直观的网页操作界面Web UI和统一的命令行入口极大地降低了微调 LLM 的门槛。用户不需要深入了解复杂的训练脚本和参数配置就可以快速地在自己的数据集上训练和评估各种主流的开源大模型如 Llama、Mistral、Qwen、Yi 等。核心学习方面为了帮助你系统地掌握 LLaMA Factory我建议你按照以下几个方面逐步深入学习数据准备与格式了解 LLaMA Factory 支持哪些数据集格式例如alpaca,sharegpt等。学习如何将你自己的数据转换成它所要求的标准 JSON 格式。核心微调方法 (Training Methods)理解 LLaMA Factory 支持的几种关键微调技术尤其是它们之间的区别LoRA / QLoRA(参数高效微调)Full-parameter(全参数微调)DPO(直接偏好优化用于对齐)模型与工作流 (Models Workflow)熟悉 LLaMA Factory 支持哪些主流的基础模型(Base Models)。理解预训练 (Pre-training)、“指令微调 (SFT)” 和 “偏好对齐 (RM/DPO)” 在 LLaMA Factory 中的具体含义和使用流程。两种操作模式 (UI vs. CLI)Web UI (Gradio 界面)学习如何通过点击和选择来配置所有训练参数、启动训练和监控过程。命令行 (CLI)学习如何使用train_bash.py脚本并通过指定配置文件或命令行参数来运行训练这对于自动化和批量实验至关重要。训练后处理合并与推理 (Merge Inference)学习训练完成后如何将训练得到的适配器权重Adapter与基础模型合并 (Merge)导出一个完整的、可独立部署的模型。学习如何使用 LLaMA Factory 提供的 Web UI 或api.py脚本来测试 (Inference)你微调后的模型效果。1.数据准备与格式1. LLaMA Factory 支持的核心数据集格式LLaMA Factory 通过一个名为dataset_info.json的配置文件来管理所有数据集。这个文件定义了数据集的名称、对应的文件名以及最重要的它应该使用哪种格式模板 (template)来解析。以下是你需要了解的最关键的几种格式我会用文字描述它们的结构A. 指令/问答格式 (Instruction Format)这是最基础、最常用的格式适用于“一问一答”或“给定指令完成任务”的场景。代表格式:alpaca结构描述:这种格式的核心是三个字段instruction: 指令。你希望模型做什么比如“请总结以下文字”或“写一首关于春天的诗”。input: 可选输入。执行指令所必需的上下文信息。例如如果指令是“总结以下文字”那么这篇“以下文字”就放在input字段。如果指令本身已足够如“写一首诗”则input字段可以为空或省略。output: 输出。你希望模型给出的标准答案。如何理解LLaMA Factory 会在训练时自动将instruction和input拼接到一起按照特定的提示词模板作为模型的“输入”Prompt然后要求模型预测的答案必须与output字段一致。B. 多轮对话格式 (Conversational Format)当你需要模型学习上下文理解、连续聊天或扮演特定角色时就需要用到这种格式。代表格式:sharegpt结构描述:这种格式不再是简单的三个字段而是模拟真实的聊天记录。它的核心是一个列表 (list)列表中的每个元素代表一轮对话。这个列表通常被称为conversations或history。在每一轮对话中又包含两个关键信息from: 消息的发送者。通常是user(用户) 或assistant(助手/模型)。在某些变体中也可能是system(系统)。value: 该发送者所说的具体内容文字。数据样例描述:一个sharegpt格式的数据样本看起来会像这样第一轮from是uservalue是“你好你是谁”第二轮from是assistantvalue是“我是一个AI助手。”第三轮from是uservalue是“你能帮我做什么”第四轮from是assistantvalue是“我可以回答问题、生成文本……”如何理解LLaMA Factory 会把从user开始一直到最后一个user说的内容作为模型的“输入”并要求模型接上最后一个assistant的回复。它会智能地处理哪些是历史记录哪些是需要模型回答的当前问题。C. 偏好/对齐格式 (Preference Format)这种格式不用于常规的“指令微调 (SFT)”而是用于更高级的“对齐”阶段比如 DPO (直接偏好优化) 或 RM (奖励模型) 训练。代表格式:dpo或reward结构描述:它的目的是告诉模型“哪种回答更好”。因此它不再提供单一的“正确答案”。prompt: 用户的提问或指令。chosen: “好的”回答。这是你偏好的、得分高的回答。rejected: “坏的”回答。这是你不希望的、得分低的回答。(可能还有system字段用于设置系统提示词)。如何理解在 DPO 训练中LLaMA Factory 会向模型展示prompt并同时展示chosen和rejected两个答案。训练的目标是让模型“提高”chosen答案的概率偏好它同时“降低”rejected答案的概率不偏好它。2. 如何将你自己的数据转换为标准格式了解了上述格式后将你自己的数据转换过来就有了清晰的思路。这个过程的重点是映射 (Mapping)而不是编程。步骤一分析你的数据和任务首先问自己我的原始数据是什么样子的我希望模型学会什么场景1如果你有一个 Excel 表格包含“问题”和“标准答案”两列。目标你希望模型学会回答这些问题。转换策略你应该选择alpaca格式。将“问题”列映射到instruction字段将“标准答案”列映射到output字段。input字段可以保持为空。场景2如果你有一堆客服聊天记录的日志。目标你希望模型学会扮演客服并能联系上下文。转换策略你应该选择sharegpt格式。你需要解析聊天日志把客户说的内容标记为from: user把客服说的内容标记为from: assistant然后把它们按顺序组织成conversations列表。场景3如果你希望模型写出更安全、更无害的回答。你已经有了一批数据每个问题都有一个“好回答”和一个“坏回答”例如内容有偏见。目标让模型偏好“好回答”。转换策略你应该选择dpo格式。将问题映射到prompt“好回答”映射到chosen“坏回答”映射到rejected。步骤二处理系统提示词 (System Prompt)system_prompt系统提示词用于给模型设定一个“人设”或“全局规则”例如“你是一个专业的金融分析师回答问题要严谨。”。在 LLaMA Factory 中你不需要把system_prompt写入到每一个数据样本中。推荐做法在准备数据时你只需要准备instruction/input/output或sharegpt格式即可。使用时在 LLaMA Factory 的 Web UI 界面或命令行参数中有一个专门的“系统提示词”输入框。你在这里填写的system_prompt会被自动应用到所有训练数据上。步骤三保存为 JSONL 文件最后也是非常重要的一点LLaMA Factory 推荐使用JSONL格式 (JSON Lines) 来存储数据而不是单个巨大的 JSON 文件。JSONL 格式描述这是一个纯文本文件其每一行都是一个独立、完整、合法的 JSON 对象。为什么用它这种格式允许程序逐行读取和处理数据而不需要一次性将G或T级别的整个文件加载到内存中处理效率极高。你的转换脚本无论用什么语言写的最终目标就是生成一个.jsonl文件其中每一行都符合你选择的如alpaca或sharegpt格式规范。总结一下数据准备的核心就是根据你的训练目标从alpaca,sharegpt,dpo等格式中选择一个。将你的原始数据如 CSV, TXT, DB中的字段映射到目标格式所需的字段如instruction,output或conversations。将转换后的数据保存为JSONL文件。2.核心微调方法 (Training Methods)1. Full-parameter (全参数微调)这是最传统、最彻底的微调方式。它是什么全参数微调顾名思义就是解冻模型中所有的参数权重并在你的数据上对这数百亿个参数进行全部更新。它是如何工作的想象一下一个大语言模型是一个极其庞大和复杂的神经网络。全参数微调会计算你的数据在模型上产生的误差然后将这个误差反向传播对模型中每一层、每一个神经元的权重都进行微小的调整。优缺点优点理论上能达到的性能上限最高。因为它动用了模型的全部“算力”去拟合你的数据可能在某些特定任务上学得最深入。缺点资源消耗极其巨大。显存 (VRAM)你需要加载完整的模型、梯度、优化器状态。训练一个 7B70亿参数的模型往往需要多张 80GB 的专业级 GPU。时间训练速度非常慢。灾难性遗忘由于所有参数都在变动模型有可能会“忘记”它在预训练阶段学到的通用知识导致在你的任务上表现很好但在其他方面能力下降。产出物训练的最终产出是一个全新的、完整的模型文件例如 7B 模型就是 14GB。何时使用当你拥有极其强大的硬件资源并且你的任务与模型的原始领域差异巨大或者你追求模型在特定任务上可能的最高性能时。对于绝大多数用户这不常用。2. LoRA / QLoRA (参数高效微调)这是目前最主流、最推荐的微调方式属于 PEFT (Parameter-Efficient Fine-Tuning) 技术的一种。它是什么LoRA (Low-Rank Adaptation) 是一种“聪明的”微调技术。它冻结了原始大模型例如 7B的全部参数使其保持不变。它是如何工作的LoRA 的核心思想是微调时模型权重的变化是“低秩”的。冻结原始模型几十 G 大被加载到显存中但被设为“不可训练”。注入在模型的关键层通常是 Attention 层旁边LoRA 额外注入了两个非常小、可训练的“适配器”(Adapter) 矩阵称为 A 和 B。训练在训练时只有这些新添加的、总共只有几十兆MB的适配器参数被更新。原始模型的权重始终不变。类比想象原始模型是一本厚重的、不可修改的教科书。LoRA 不去修改教科书而是在旁边贴上一些“即时贴”(Post-it notes) 来补充新知识。训练时你只在更新这些“即时贴”上的内容。QLoRA 又是什么QLoRA (Quantized LoRA) 是 LoRA 的极致省显存版。它在 LoRA 的基础上做了两件事量化 (Quantization)在加载那本“教科书”原始模型时用 4-bit 的精度来加载而不是常规的 16-bit。这使得模型本身占用的显存锐减约 75%。Paging / Double Quant使用更高级的技术进一步优化显存占用。效果QLoRA 使得在单张消费级显卡如 24GB 的 RTX 3090/4090上微调 7B 甚至 13B 的模型成为可能。优缺点优点显存高效资源占用极低QLoRA 尤为突出。训练快速因为要训练的参数量极少不到总参数的 0.1%。无灾难性遗忘原始知识被完好保留在冻结的权重中。产出物轻便训练结果只是一个很小的适配器文件adapter_model.bin通常 10MB ~ 100MB易于分享和管理。你可以一个基础模型搭配多个不同的 LoRA 适配器来执行不同任务。缺点性能理论上限略低于完美的全参数微调但在绝大多数任务上其表现尤其是 QLoRA已经可以达到全参数微调的 99% 以上性价比极高。何时使用几乎所有情况下都推荐使用 LoRA 或 QLoRA。这是 LLaMA Factory 的默认和核心优势所在。3. DPO (直接偏好优化)DPO 是一个不同维度的概念。LoRA 和 Full-parameter 是**“如何更新权重”的技术而 DPO 是一种“训练阶段和目标”**。它是什么DPO (Direct Preference Optimization) 是一种对齐 (Alignment)训练技术。它不再强迫模型去模仿唯一的“标准答案”而是让模型去学习人类的偏好。它与前两者的关系SFT (指令微调)你使用alpaca或sharegpt格式的数据告诉模型“当用户问 A你必须回答 B”。这是在教模型**“能力”**。DPO (偏好对齐)你使用dpo格式的数据包含prompt,chosen,rejected告诉模型“当用户问 AB 回答比 C 回答更好”。这是在教模型**“价值观和品味”**。它是如何工作的在 LLaMA Factory 中你通常会先对模型进行 SFT使用 LoRA让它具备回答问题的基本能力。然后你再进行 DPO 训练通常也使用 LoRA 作为底层的技术。DPO 会加载 SFT 阶段训练好的 LoRA 适配器并使用你的偏好数据好/坏答案对进一步优化模型。训练的目标是让模型提高“好答案” (chosen) 的概率同时降低“坏答案” (rejected) 的概率。类比SFT (LoRA/Full)像是在驾校学习“如何踩油门”和“如何打方向盘”学习基本能力。DPO (LoRA)像是在教练的指导下上路教练不断告诉你“刚才的并线太猛了rejected”“这次的过弯很平顺chosen”学习偏好和风格。何时使用当 SFT 之后的模型已经能回答问题但回答的风格你不满意时。例如模型回答太啰嗦你希望它简洁chosen是简洁版rejected是啰嗦版。模型回答不够安全你希望它拒绝回答有害问题。模型不够“像你”例如不够幽默、不够专业。总结特性Full-parameter (全参数)LoRA / QLoRA (高效)DPO (偏好优化)目标学习知识/能力 (SFT)学习知识/能力 (SFT)学习风格/偏好/对齐 (Alignment)训练方式更新所有模型参数仅更新“适配器”参数使用偏好数据 (Chosen/Rejected)底层技术它本身是技术它本身是技术 (PEFT)它是一种训练阶段通常依赖 LoRA来实现资源消耗极高(多张 A100/H100)极低(单张 24GB 显卡)极低(与 LoRA 相同)产出物完整的模型 (几十 GB)适配器文件 (几十 MB)适配器文件 (几十 MB)推荐度专家/企业级不常用强烈推荐几乎所有人的首选在 SFT 之后用于提升模型质量在 LLaMA Factory 中最标准的流程是选择一个基础模型。使用QLoRA 你的SFT数据alpaca格式进行指令微调。可选使用QLoRA 你的DPO数据dpo格式进行偏好对齐。3.模型与工作流 (Models Workflow)这部分是 LLaMA Factory 的“大局观”。它将我们之前谈到的“数据”和“微调方法”串联起来告诉你一个模型是如何一步步“炼成”的。A. 关键模型的角色 (The “Models”)在 LLaMA Factory 的整个生态中你主要会接触到三种不同角色或状态的模型1. 基础模型 (Base Model)这是什么这就是你的起点。它是一个已经由大公司如 Meta, Mistral AI, 阿里巴巴在万亿级数据上训练好的、通用的、原始的预训练模型。例子Llama-3-8B,Mistral-7B,Qwen1.5-7B,Yi-6B等。它的角色扮演一本知识渊博的“教科书”。它什么都懂但“不听话”不知道如何按你的特定格式如问答来回答问题。在 LLaMA Factory 中你在“模型名称”处选择的就是基础模型。在 LoRA/QLoRA 训练中它被冻结只读作为知识底座。2. 适配器模型 (Adapter Model)这是什么这就是你使用LoRA / QLoRA方法进行 SFT 或 DPO 训练后得到的核心产出物。它的角色这是一个非常小的“插件”或“即时贴”文件通常只有几十到几百 MB。它不能单独运行必须“附加”到对应的基础模型上才能生效。它只包含了你教会它的新技能或偏好。类比基础模型 一款游戏本体 (Game)适配器 游戏的“模组” (Mod) 或“补丁” (Patch)在 LLaMA Factory 中训练完成后保存在saves/目录下的就是适配器。3. 合并后的模型 (Merged Model)这是什么这是将“基础模型”和“适配器模型”合并后生成的一个全新的、完整的、可独立运行的模型。它的角色这才是你最终用于部署和推理的模型。它既有基础模型的通用知识又包含了适配器中的新技能。类比基础模型 游戏本体适配器 Mod 补丁合并后的模型 一个打好了 Mod 补丁的、可直接运行的“游戏整合包”。在 LLaMA Factory 中这对应一个专门的“导出模型” (Export / Merge) 步骤。你提供基础模型路径和适配器路径它会为你生成这个“整合包”。B. 标准工作流 (The Workflow)LLaMA Factory 将复杂的训练过程抽象成了几个清晰的、可编排的阶段。一个完整的、教科书式的工作流如下但你通常只做其中几步阶段一(可选) 继续预训练 (Continued Pre-training, PT)目的给模型灌输新知识。场景比如你的基础模型是通用领域的但你想让它成为“医疗专家”。你需要准备海量的医疗文献非问答就是纯文本使用此阶段让模型“阅读”这些文献使它熟悉医疗术语和知识。使用的数据大量的纯文本数据 (.txt)。产出Adapter 或 Full Model这通常也用 LoRA 进行。阶段二指令微调 (Supervised Fine-Tuning, SFT)目的教会模型**“如何说话”**即理解并遵循人类的指令格式。场景这是最核心、最常用的一步。你希望模型能听懂你的问题instruction并给出对应的回答output。使用的数据alpaca或sharegpt格式的问答/对话数据。产出SFT 阶段的适配器 (Adapter)。此时的模型已经“会聊天”了。阶段三(可选) 偏好对齐 (Preference Alignment, DPO/RM)目的教会模型**“如何说得更好”**。场景SFT 后的模型虽然会回答了但回答可能很啰嗦、不安全或风格你不喜欢。此阶段用于打磨模型的“品味”。使用的数据dpo格式的偏好数据包含chosen和rejected回答。产出DPO 阶段的适配器。阶段四模型合并 (Merge Export)目的将训练成果固化准备用于部署。场景你已经完成了 SFT 或 DPO 训练得到了一个或多个适配器。你现在需要一个能独立运行的完整模型。工作LLaMA Factory 会加载基础模型然后将你的适配器比如 SFT 适配器 DPO 适配器的权重“加”到基础模型的权重上。产出一个合并后的完整模型几十 GB。阶段五推理与评估 (Inference Eval)目的测试模型效果。场景运行你的新模型看看它在真实问题上的表现。工作LLaMA Factory 提供了“聊天”(Chat) 和“评估”(Evaluate) 选项卡。聊天让你像 ChatGPT 一样直接与你刚训练好的模型可以是“基础模型适配器”模式也可以是“合并后的模型”对话。评估使用标准数据集如 MMLU, C-Eval来客观地测试模型的性能得分。总结最典型的工作流对于绝大多数用户包括你最常见的工作流是红色为核心步骤1. 准备数据(选择alpaca或sharegpt格式)2. 运行 SFT(使用QLoRA方法)3. 获得 SFT 适配器4. (可选) 运行 DPO(加载 SFT 适配器继续用QLoRA训练)5. 获得 DPO 适配器6. 运行合并(将基础模型SFT/DPO适配器合并)7. 获得最终模型8. 聊天/部署4.两种操作模式 (UI vs. CLI)好的我们来详细解析 LLaMA Factory 的两种操作模式Web UI (网页界面) 和 CLI (命令行)。这两种模式提供了完全相同的功能——它们背后调用的都是 LLaMA Factory 的核心训练逻辑。你的选择取决于你更看重直观易用性还是自动化与可复现性。1. Web UI (Gradio 界面)这是 LLaMA Factory 最吸引初学者的特性之一。它是什么它是一个通过在浏览器中运行的、图形化的操作界面基于 Gradio 库构建。你启动 LLaMA Factory 后它会给你一个本地网址 (如http://127.0.0.1:7860)你用浏览器打开就能看到。它是如何工作的整个界面就像一个**“训练参数配置面板”。它把所有可调的参数如模型名称、微调方法、学习率、数据集、LoRA 秩…都做成了下拉菜单**、输入框和勾选框。你的工作流是点选配置在 “Train” (训练) 选项卡中用鼠标依次选择你想要的基础模型、微调方法 (LoRA/QLoRA)、要训练的数据集。调整参数在 “Hyperparameters” (超参数) 选项卡中通过滑块或输入框设置 Epoch (轮数)、Batch Size (批大小)、Learning Rate (学习率) 等。点击启动点击 “Start” (开始) 按钮。监控界面会自动切换到日志 (Log) 窗口你可以实时看到训练过程的输出、损失 (Loss) 变化和TFLOPs算力利用率。优缺点优点极其直观所见即所得不需要记忆任何命令。易于探索你可以很方便地浏览所有可用的模型和数据集直观地了解 LLaMA Factory 到底支持什么。快速上手对新手极其友好是初次运行和调试的绝佳选择。缺点难以复现如果你这次训练调整了 20 个参数下次想完全复现你必须重新用鼠标点选 20 次很容易出错或遗漏。不便自动化无法用于编写脚本或进行批量实验。你不能让它“自动训练 10 个不同超参数的模型”。何时使用入门学习时刚开始接触 LLaMA Factory用它来熟悉各项参数和流程。调试数据时快速跑一个 Epoch看看数据格式是否正确训练是否能正常启动。进行单次、临时的训练任务时。2. CLI (命令行)这是更专业、更高效的模式也是在服务器上进行严肃训练的推荐模式。它是什么它是在你的终端Terminal 或 Shell中通过直接运行 Python 脚本 (主要是train_bash.py) 并附带一系列参数来启动训练的方式。它是如何工作的你不再需要鼠标点选。你通过两种方式告诉 LLaMA Factory 你要“做什么”和“怎么做”方式一使用 YAML 配置文件 (推荐)定义配置LLaMA Factory 提供了一个examples(示例) 目录里面有各种任务的.yaml配置文件例如lora_sft.yaml。修改配置你复制一个.yaml文件用文本编辑器打开它在里面明确指定你的model_name_or_path、dataset、finetuning_type(LoRA)、output_dir(输出目录) 以及所有超参数。运行在终端中执行一个非常简洁的命令告诉 LLaMA Factory 使用这个配置文件train_bash.py --config_file my_config.yaml(示例命令非代码)方式二直接传递命令行参数你也可以不使用配置文件而是把所有参数直接“拼接”在运行命令后面train_bash.py --model_name_or_path ... --dataset ... --finetuning_type lora ...(示例命令)这种方式通常很冗长容易出错一般只用于临时覆盖配置文件中的个别参数。优缺点优点可复现性极强.yaml配置文件就是你训练的**“快照”**。你只要保存了这个文件就能在任何机器、任何时间 100% 复现这次实验。易于自动化与批量实验你可以轻松编写 Shell 脚本循环更改.yaml文件中的某个参数比如学习率然后连续运行 10 次训练实现“网格搜索”调参。服务器友好在没有图形界面的远程服务器 (SSH) 上CLI 是唯一的操作方式。缺点有学习门槛你需要知道 LLaMA Factory 的核心脚本叫什么 (train_bash.py)并且需要熟悉那些关键参数的名称 (如finetuning_type,per_device_train_batch_size等)。不够直观你无法“浏览”可选项你必须“知道”你要用的模型或数据集的准确名称。何时使用进行严肃的、可复现的实验时。在远程服务器上训练时。需要进行自动化调参和批量训练时。总结特性Web UI (网页界面)CLI (命令行)交互方式鼠标点击、下拉菜单、输入框文本命令、YAML 配置文件易用性非常高所见即所得有门槛需要熟悉参数名称可复现性差依赖手动操作极高通过配置文件保证自动化难易可编写脚本批量运行环境适合本地开发机适合本地必备于远程服务器推荐场景学习、探索、调试数据严肃训练、调参、服务器部署给你的建议是先用Web UI跑通你的第一个“Hello World”训练熟悉流程。然后当你准备好进行真正的实验时立即转向 CLI YAML 配置文件的模式这将为你后续的工作节省大量时间。5.训练后处理合并与推理 (Merge Inference)当你使用 LLaMA Factory (尤其是 LoRA/QLoRA) 完成训练后你得到的并不是一个可以直接运行的完整模型而是一个轻量的适配器 (Adapter)。这一步就是教你如何使用这个适配器。1. 为什么需要“合并” (Merge)你训练得到了什么如前所述使用 LoRA/QLoRA 训练后你得到的是一个很小的几十到几百 MB适配器文件例如adapter_model.bin。适配器是什么它只是原始基础模型如 Llama-3-8B几十 GB的“修改补丁”。它本身不能独立工作必须“贴”在对应的基础模型上才能生效。“合并” (Merge) 的目的“合并”是一个导出 (Export)过程。它将“基础模型”和“适配器”的权重真正地、物理地加在一起生成一个全新的、完整的、独立的模型文件。类比基础模型 游戏v1.0适配器 游戏v1.1补丁包合并 (Merge) 将v1.0和v1.1补丁包整合导出一个完整的v1.1版本游戏安装包。这个导出的“整合包”合并后的模型就可以被其他任何标准的 Python 库如 Transformers, vLLM直接加载和使用了不再需要 LLaMA Factory 的特殊加载方式。2. 为什么需要“推理” (Inference)“推理”就是使用模型。在 LLaMA Factory 的上下文中这主要指在训练完成后立即测试模型效果。你非常关心的问题是“我刚训练的模型效果到底好不好” LLaMA Factory 提供了内置的工具让你无需离开这个框架就能快速与模型对话。3. LLaMA Factory 中的具体操作LLaMA Factory 为“合并”和“推理”都提供了便捷的 UI 和 CLI 操作。A. 合并 (Merge / Export)这是你准备部署 (Deploy)模型时的标准操作。Web UI 操作切换到“Export Model” (导出模型)选项卡。模型名称 (Model Name):选择你训练时用的那个基础模型(Base Model)。适配器路径 (Adapter Path):选择你训练保存的适配器在saves/目录中选择你想要的那个 checkpoint。(高级) 堆叠适配器LLaMA Factory 允许你同时加载多个适配器。例如你可以先加载 SFT 阶段的适配器再加载 DPO 阶段的适配器将它们的效果“叠加”在一起。导出目录 (Export Directory):指定一个新目录用来存放合并后的完整模型。点击 “Start” (开始)。CLI 操作使用export_model.py脚本并指定相同的参数基础模型路径、适配器路径、导出路径。最终产出在你的导出目录中你会得到一个包含config.json,model.bin(或*.safetensors) 和tokenizer.json等文件的完整模型。这就是你可以打包带走、用于部署的最终产物。B. 推理 (Inference / Chat)这是你测试 (Test)和评估 (Evaluate)模型时的常用操作。LLaMA Factory 的推理功能非常强大因为它允许你**“跳过”合并步骤**直接进行测试。Web UI 操作切换到“Chat” (聊天)选项卡。模型名称 (Model Name):同样选择那个基础模型。适配器路径 (Adapter Path):选择你要测试的适配器。点击 “Load Model” (加载模型)。背后发生了什么此时LLaMA Factory 会**“动态”加载**它先把基础模型加载到显存然后再把适配器的权重“附加”到基础模型之上。这个过程是在内存中实时发生的并没有创建新的模型文件。这种“动态加载”的好处极其灵活你可以快速切换不同的适配器比如checkpoint-100,checkpoint-200来对比它们的效果而不需要每次都花费几分钟去执行“合并”操作。CLI 操作 (推理服务)交互式聊天LLaMA Factory 提供cli_demo.py让你在终端中直接与模型对话。网页版聊天LLaMA Factory 也提供web_demo.py(或infer_web.py)它会启动一个类似于 ChatGPT 的聊天界面让你在浏览器中测试。API 服务LLaMA Factory 还提供api.py它会启动一个 OpenAI 兼容的 API 服务器。这意味着你可以像调用 OpenAI API 一样通过 HTTP 请求来调用你本地训练的模型非常适合程序化集成。总结何时使用它们当你想“测试”时 (Testing / Evaluating)使用“推理 (Inference)”功能 (Chat / API)。采用“基础模型 动态加载适配器”的方式。优点快速、灵活方便对比不同 checkpoint 的效果。当你想“部署”时 (Deploying / Sharing)使用“合并 (Merge)”功能 (Export Model)。生成一个单一的、完整的、合并后的模型。优点产物标准、独立、可移植方便用于各种生产环境和推理框架 (vLLM, TGI 等)。