开始使用 LlaMA-Factory WebUI
本节将学习如何在 Google Colab 和 Microsoft Windows 中安装并启动 LlaMA-Factory WebUI。
Google Colab 提供免费 GPU 资源,因此如果您的笔记本没有 GPU 或未安装 CUDA,建议从 Colab 笔记本开始。
- 以“T4 GPU”运行时类型启动 Google Colab 笔记本。
- 在代码单元中输入以下命令,克隆 LLaMA-Factory GitHub 仓库并安装所有必要的 Python 包。
%cd /content/
%rm -rf LLaMA-Factory
!git clone https://github.com/hiyouga/LLaMA-Factory.git
%cd LLaMA-Factory
%ls
%pip install -e .[torch,bitsandbytes]
- 要访问模型和数据集,您需要登录 Hugging Face 的 CLI。请前往 Hugging Face 设置,点击“Access Tokens”,为 Google Colab 创建一个新的访问令牌。

- 使用 Colab 的“Secrets”功能创建 Hugging Face 环境变量,以便在笔记本中安全访问。

- 使用 Hugging Face 访问令牌登录 Hugging Face Hub。
from huggingface_hub import login
from google.colab import userdata
hf_token = userdata.get("HUGGINGFACE_TOKEN")
login(token = hf_token)
- 使用
llamafactory-cli启动 LLaMA-Factory WebUI。我们设置 GRADIO_SHARE=1,以便生成可访问 web 应用的公共链接。
%cd /content/LLaMA-Factory/
!GRADIO_SHARE=1 llamafactory-cli webui
- 点击公共 URL,在新标签页中启动 WebUI。

LLAMA-Factory WebUI 界面简洁,但选项与标签页非常丰富。我们将在下一节进行探索。

如果您在启动 LlaMA-Factory WebUI 时遇到问题,请参考Google Colab 笔记本。
在 Windows 上运行 LlaMA-Factory WebUI
如果您希望在 Windows 本地运行 LlaMA-Factory WebUI,需要安装预编译版本的 bitsandbytes 库。它支持 CUDA 11.1 到 12.2,请根据您的CUDA 版本选择合适的发布版本。
- 在 Windows 终端中输入 Git 命令,克隆 LLaMA-Factory GitHub 仓库。
- 安装所有必要的 Python 包。
- 为 Windows 安装 bitsandbytes 库。
$ git clone https://github.com/hiyouga/LLaMA-Factory.git
$ cd LLaMA-Factory
$ pip install -e .[torch,bitsandbytes]
$ pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.2.post2-py3-none-win_amd64.whl
- 启动 LLaMA-Factory WebUI。
$ llamafactory-cli webui
- 别忘了通过 CLI 登录 Hugging Face,并提供访问令牌。
$ huggingface-cli login
使用 LlaMA-Factory WebUI 微调 LlaMA-3 8B Chat
本节无需编写代码。我们将选择用于微调的模型和数据集,调整部分参数,并通过几次点击实现更快的训练。
若想了解微调大语言模型背后的理论,请参阅这份全面指南: 微调大语言模型。
选择数据集与模型
我们将对 unsloth/llama-3-8b-bnb-4bit 模型在 Microsoft/wiki_qa 数据集上进行微调。该数据集包含多个列,如下图所示,但我们将使用“question”和“answer”两列进行模型微调。

来源:microsoft/wiki_qa | 来自 Microsoft 的 Wiki 问答语料库
在免费的 Google Colab 版本中,我们无法加载完整的 LLaMA-3-8B 指令模型。因此,我们将使用 Unsloth 提供的同模型的 4 位量化版本。
为此,请将模型名称选择为“Custom”,并在模型路径中粘贴仓库链接“unsloth/llama-3-8b-bnb-4bit”。

我们可以选择多个数据集来微调模型。但在本教程中,我们只使用“Wikiqa”数据集,您可以像上图那样从预定义数据集中直接选择。
调整训练参数
向下滚动页面调整模型训练参数。我们将设置以下参数:
- 学习率为 4e-5
- 轮数(Epochs)为 1.0
- 最大样本数设为 1000,以加快训练
其余参数保持默认值。这些数值可按需调整,以改变微调模型的行为。

我们也可以调整 LoRa 的秩及相关配置。本教程中我们保持其他设置为默认值。

启动训练流程
继续向下滚动查看训练配置。请填写输出目录与配置路径,并点击“Start”按钮。损失曲线需要一些时间才能显示,因为 LlaMA-Factory 会先下载模型和数据集,然后加载二者,整个过程至少需要 5 分钟。

当模型完全加载且训练开始后,您将看到损失曲线的可视化。如图所示,随着训练步数增加,损失在逐步下降,这是理想表现。

训练完成后,您会在左下角看到完成消息。可以看到,损失在 45 步后逐步下降并趋于平稳。

如果您是数据科学家或开发者,使用 Python 来微调模型也会很顺手。
我们为有技术背景的读者准备了更详细的 LlaMA-3 训练指南: 本地微调并使用 Llama 3:一步步指南。
评估微调后的模型
要评估微调后的模型,需要将菜单从“Train”切换到“Chat”。然后在“Checkpoint path”处加载已保存的微调适配器。

随后点击“Load model”按钮,等待数秒直至模型加载成功。

向下滚动查看聊天输入框,并就山脉范围提出一个一般性问题。

您会得到一个简洁明了的回答,风格与“wiki_qa”数据集相似。

我们再试一个问题。可以看到,模型表现相当出色。仅用 30 分钟我们就完成了微调,而使用 Transformers 库可能需要 4 小时以上。非常高效。

有时,微调并不能解决 LLM 的所有问题。因此,建议阅读RAG 与微调:含实践示例的全面教程,了解哪种方法更适合您的场景。
LlaMA-Factory WebUI 的其他功能
除了微调与测试模型,LLaMA-Factory 生态还提供多项核心能力,包括使用自定义数据进行微调、合并并导出模型,以及使用 VLLM 部署微调模型。
自定义数据集
要添加自定义数据集,只需修改 data/dataset_info.json 文件,即可在 LLaMA-Factory WebUI 中访问。
关于数据集文件所需格式以及如何修改 dataset_info.json 的详细信息,请参阅data/README.md 文档。
您可以选择来自 Hugging Face 或 ModelScope 的数据集,也可以从本地磁盘加载数据集。

data/dataset_info.json 文件预览
合并并导出模型
我们可以轻松将微调后的 LoRA 适配器与完整模型合并,并通过点击“Export”标签页将其导出到 Hugging Face Hub。
调整最大分片大小,设置导出目录路径,并指定 Hugging Face Hub 仓库 ID 与导出设备。该过程会在几分钟内完成模型合并,并将所有模型文件上传到 Hugging Face Hub。
注意:Colab 免费版仅提供 12GB 内存,而合并 80 亿参数模型的 LoRA 至少需要 16GB 内存。因此,该操作无法在 Colab 免费版中完成。

将微调模型合并并导出到 Hugging Face Hub
使用 OpenAI 风格 API 与 vLLM 部署
LlaMA-Factory 内置 vLLM 框架用于模型服务与部署。通过输入以下命令,我们可以提供 Llama-3-8B-Instruct 模型的服务,并通过 OpenAI Python API 或 RestAPI 进行访问。
$ API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml
您也可以修改该文件,或创建自己的 .yaml 文件,以在生产环境中服务您的微调模型。只需提供本地或 Hugging Face Hub 上的模型文件夹路径即可。

来源:hiyouga/LLaMA-Factory (github.com)
如果您在寻找类似的低代码方案来微调 LLM,尤其是专有的 GPT-4o 模型,我们也为您准备了详尽指南。请查看这份分步教程:微调 OpenAI 的 GPT-4:一步步指南。
结语
LLaMA-Factory WebUI 让初学者与专家都能更轻松地完成工作。您只需调整少量参数,即可在自定义数据集上微调模型。使用同一界面,您可以测试模型,并将其导出到 Hugging Face 或本地保存。随后可通过 LLaMA-Factory CLI 的 api 命令在生产环境中部署模型。流程就是如此简洁。
无需编写上百行代码、也不用为微调问题四处排错,几次点击即可取得相近效果。
在本教程中,我们学习了 LLaMA-Factory WebUI,并使用该框架在 Wikipedia 问答数据集上微调了 LLaMA-3-8B-Instruct 模型。此外,我们还通过内置聊天机器人菜单测试了微调模型,并探索了 LLaMA-Factory 提供的其他功能。
想学习如何用 Python 微调 LLM?立即免费报名即将举行的网络研讨会微调您自己的 Llama 3 模型。
作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

在本教程中,我们将使用 LlaMA-Factory WebUI 基于 Wikipedia 问答数据集微调 Llama 3 8B 模型。我们会先介绍 LlaMA-Factory WebUI,然后在 Google Colab 环境中进行搭建。配置完成后,我们将演示如何在该数据集上微调 Llama 3 8B 模型,并通过聊天界面评估模型表现。
接下来,您还将学习如何加载自定义数据集、合并模型,并将其导出到 Hugging Face。最后,我们将介绍如何部署微调后的模型,使其可通过 OpenAI API 访问。
您可以通过参加AI Fundamentals 技能路径,系统掌握 ChatGPT、LLM、生成式 AI 等热门主题的实用知识。
图片来源:作者 | Canva
什么是 LlaMA-Factory?
hiyouga/LLaMA-Factory 是一个开源项目,允许您通过 WebUI 界面微调 100 多种大语言模型(LLM)。它提供了用于微调、聊天机器人、服务部署和基准评测的一整套工具与脚本。
LLaMA-Factory 专为初学者和非技术人员设计,帮助他们在无需掌握复杂 AI 概念的情况下,用自定义数据集微调开源 LLM。用户只需选择模型、添加数据集,并调整少量参数即可启动训练。
训练完成后,可使用同一 web 应用测试模型,随后将其导出到 Hugging Face 或保存在本地。这为本地微调 LLM 提供了快速高效的途径。