二、LLaMA Factory 介绍和基本使用
LLaMA Factory 是一个简单易用且高效的大型语言模型训练与微调平台。通过它,用户可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调。https://github.com/hiyouga/LLaMA-Factory
2.1 全场景模型微调能力
- 多模型支持:高效适配超 100 个主流模型,涵盖 Qwen、DeepSeek、LLaMA、Gemma、LLaVA、Mistral、Mixtral-MoE、Yi、Baichuan、ChatGLM、Phi 等,满足 NLP、多模态等多领域需求。
- 多样化算法与精度:集成 LoRA、GaLore、DoRA 等微调技术,支持(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO/DPO/KTO/ORPO 等强化学习方法;提供 16 比特全参数微调、冻结微调、LoRA 微调,以及基于 AQLM/AWQ/GPTQ 等技术的 2/3/4/5/6/8 比特 QLoRA 低比特量化微调,灵活适配不同算力场景。
- 数据集灵活配置:支持用户自带数据集或自定义生成数据集,兼容 ModelScope、HuggingFace 等社区资源,自动下载缓存模型与数据集,适配多卡训练硬件环境。
- 多种加速技巧:支持 FlashAttention-2、Unsloth 等加速算子。
2.2 极简操作与高效工具链
- 零代码交互界面:通过友好 Web UI 完成模型配置、数据集加载、参数调优全流程,实时监控训练进度、显存占用及日志输出,无需编程即可轻松定制与微调 LLM,大幅降低使用门槛。
- 实时监控与评估:无缝集成 Wandb、MLflow、SwanLab、TensorBoard 等工具,实现训练过程可视化与模型性能动态评估,为优化提供数据支撑。
2.3 工程化部署与资源利用
- 模型部署:支持将 LoRA 适配器与基座模型一键合并为独立完整模型,便于本地化部署;
- 推理引擎:集成 Transformers 、提供基于 vLLM 的 OpenAI 风格 API;
- 资源利用:支持单机多卡训练与不同硬件环境适配,实现资源高效利用与流程无缝衔接。
2.4 LLaMA Factory 安装
我们在官网可以看到 LLaMa Factory 的安装方法:https://llamafactory.readthedocs.io/zh-cn/latest/getting_started/installation.html#llama-factory
我们不建议 Clone 仓库后直接安装依赖,因为 Python 本身的依赖管理做的比较混乱,你可能会遇到各种 Python 依赖冲突的问题,建议使用虚拟环境,这里我们使用 Conda:
Conda 是一个开源的跨平台、语言无关的软件包管理系统与环境管理系统。它能方便地安装、运行和更新软件包及其依赖项,还可创建、切换和删除隔离的软件环境,广泛应用于数据科学、机器学习等领域 。
你可以根据自己的需求选择合适的发行版,从官方网站(Anaconda 或 Miniconda)下载对应操作系统的安装程序,然后按照安装向导进行安装。

我已经安装好wsl,我在wsl安装了anaconda

安装完成后,打开终端(Windows 用户可以使用 Anaconda Prompt 或 PowerShell),输入以下命令验证 conda 是否安装成功:
conda --version
如果安装成功,会显示 conda 的版本号。
bash
(base) gpu3090@DESKTOP-8IU6393:~$ conda --version
conda 25.5.1
(base) gpu3090@DESKTOP-8IU6393:~$
然后使用 conda create 命令创建一个新的虚拟环境。例如,创建一个名为 lf (LLaMA Factory 简称)的虚拟环境,并指定 Python 版本为 3.10:
conda create -n lf1 python=3.10
其中,-n 或 --name 用于指定虚拟环境的名称,python=3.10 表示使用 Python 3.10 版本。
bash
(base) gpu3090@DESKTOP-8IU6393:~$ conda create -n lf1 python=3.10
2 channel Terms of Service accepted
Retrieving notices: done
Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 25.5.1
latest version: 25.9.1
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /home/gpu3090/anaconda3/envs/lf1
added / updated specs:
- python=3.10
The following packages will be downloaded:
package | build
---------------------------|-----------------
ca-certificates-2025.11.4 | h06a4308_0 128 KB
expat-2.7.3 | h3385a95_0 167 KB
libgcc-15.2.0 | h69a1729_7 806 KB
libgcc-ng-15.2.0 | h166f726_7 28 KB
libgomp-15.2.0 | h4751f2c_7 436 KB
libstdcxx-15.2.0 | h39759b7_7 3.7 MB
libstdcxx-ng-15.2.0 | hc03a8fd_7 28 KB
pip-25.3 | pyhc872135_0 1.1 MB
sqlite-3.51.0 | h2a70700_0 1.2 MB
------------------------------------------------------------
Total: 7.6 MB
The following NEW packages will be INSTALLED:
_libgcc_mutex pkgs/main/linux-64::_libgcc_mutex-0.1-main
_openmp_mutex pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu
bzip2 pkgs/main/linux-64::bzip2-1.0.8-h5eee18b_6
ca-certificates pkgs/main/linux-64::ca-certificates-2025.11.4-h06a4308_0
expat pkgs/main/linux-64::expat-2.7.3-h3385a95_0
ld_impl_linux-64 pkgs/main/linux-64::ld_impl_linux-64-2.44-h153f514_2
libffi pkgs/main/linux-64::libffi-3.4.4-h6a678d5_1
libgcc pkgs/main/linux-64::libgcc-15.2.0-h69a1729_7
libgcc-ng pkgs/main/linux-64::libgcc-ng-15.2.0-h166f726_7
libgomp pkgs/main/linux-64::libgomp-15.2.0-h4751f2c_7
libnsl pkgs/main/linux-64::libnsl-2.0.0-h5eee18b_0
libstdcxx pkgs/main/linux-64::libstdcxx-15.2.0-h39759b7_7
libstdcxx-ng pkgs/main/linux-64::libstdcxx-ng-15.2.0-hc03a8fd_7
libuuid pkgs/main/linux-64::libuuid-1.41.5-h5eee18b_0
libxcb pkgs/main/linux-64::libxcb-1.17.0-h9b100fa_0
libzlib pkgs/main/linux-64::libzlib-1.3.1-hb25bd0a_0
ncurses pkgs/main/linux-64::ncurses-6.5-h7934f7d_0
openssl pkgs/main/linux-64::openssl-3.0.18-hd6dcaed_0
pip pkgs/main/noarch::pip-25.3-pyhc872135_0
pthread-stubs pkgs/main/linux-64::pthread-stubs-0.3-h0ce48e5_1
python pkgs/main/linux-64::python-3.10.19-h6fa692b_0
readline pkgs/main/linux-64::readline-8.3-hc2a1206_0
setuptools pkgs/main/linux-64::setuptools-80.9.0-py310h06a4308_0
sqlite pkgs/main/linux-64::sqlite-3.51.0-h2a70700_0
tk pkgs/main/linux-64::tk-8.6.15-h54e0aa7_0
tzdata pkgs/main/noarch::tzdata-2025b-h04d1e81_0
wheel pkgs/main/linux-64::wheel-0.45.1-py310h06a4308_0
xorg-libx11 pkgs/main/linux-64::xorg-libx11-1.8.12-h9b100fa_1
xorg-libxau pkgs/main/linux-64::xorg-libxau-1.0.12-h9b100fa_0
xorg-libxdmcp pkgs/main/linux-64::xorg-libxdmcp-1.1.5-h9b100fa_0
xorg-xorgproto pkgs/main/linux-64::xorg-xorgproto-2024.1-h5eee18b_1
xz pkgs/main/linux-64::xz-5.6.4-h5eee18b_1
zlib pkgs/main/linux-64::zlib-1.3.1-hb25bd0a_0
Proceed ([y]/n)?
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate lf1
#
# To deactivate an active environment, use
#
# $ conda deactivate
(base) gpu3090@DESKTOP-8IU6393:~$
创建好虚拟环境后,需要激活它才能使用,
我们运行 在终端中运行以下命令激活 lf1 环境:
bash
conda activate lf1
激活后,终端的命令提示符会显示当前所处的虚拟环境名称,然后我们可以使用 conda env list 命令查看所有已创建的虚拟环境:
bash
conda env list
该命令会列出所有虚拟环境的名称和对应的路径(前面带 * 的为当前已激活的虚拟环境):
然后我们进入 LLaMA Factory 的代码目录,然后在此虚拟环境中执行:
bash
(base) gpu3090@DESKTOP-8IU6393:~$ conda activate lf1
(lf1) gpu3090@DESKTOP-8IU6393:~$ ls
LLaMA-Factory downloads models submission.csv
M5-应用集成 food11.zip outputs summaries
Q1 libriphone pred.csv test
Q1.zip libriphone.zip prediction.csv tmpg00x95ve.mp3
WA_Fn-UseC_-Telco-Customer-Churn.csv llama.cpp runs train
anaconda3 llamaboard_cache sample_best.ckpt unsloth_compiled_cache
cookies.txt llamaboard_config sample_log.txt valid
covid_test.csv merge saves "算命大师模型_ipynb"的副本.ipynb
covid_train.csv model.ckpt snap
(lf1) gpu3090@DESKTOP-8IU6393:~$ cd LLaMA-Factory/
(lf1) gpu3090@DESKTOP-8IU6393:~/LLaMA-Factory$ ls
CITATION.cff Makefile assets examples requirements.txt src
LICENSE README.md data llamaboard_cache scripts tests
MANIFEST.in README_zh.md docker pyproject.toml setup.py tests_v1
(lf1) gpu3090@DESKTOP-8IU6393:~/LLaMA-Factory$ pip install -e ".[torch,metrics]"
依赖安装完成后,我们执行 llamafactory-cli version 验证安装情况:
bash
(lf1) gpu3090@DESKTOP-8IU6393:~/LLaMA-Factory$ llamafactory-cli version
----------------------------------------------------------
| Welcome to LLaMA Factory, version 0.9.4.dev0 |
| |
| Project page: https://github.com/hiyouga/LLaMA-Factory |
----------------------------------------------------------
(lf1) gpu3090@DESKTOP-8IU6393:~/LLaMA-Factory$
然后我们测试执行 which llamafactory-cli 可以发现,llamafactory 被安装在了 conda 创建的虚拟环境目录下:
bash
(lf1) gpu3090@DESKTOP-8IU6393:~/LLaMA-Factory$ which llamafactory-cli
/home/gpu3090/anaconda3/envs/lf1/bin/llamafactory-cli
2.5 LLaMA Factory WebUI
依赖安装完成后,我们执行:llamafactory-cli webui,可以启动 LLaMa Factory 的 webui:
bash
(lf1) gpu3090@DESKTOP-8IU6393:~/LLaMA-Factory$ llamafactory-cli webui
/home/gpu3090/anaconda3/envs/lf1/lib/python3.10/site-packages/jieba/_compat.py:18: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
Visit http://ip:port for Web UI, e.g., http://127.0.0.1:7860
* Running on local URL: http://0.0.0.0:7860
* To create a public link, set `share=True` in `launch()`.
然后我们打开 http://127.0.0.1:7860 ,可以看到如下界面:

看起来配置非常多,但我们梳理一下可以分成通用设置、微调训练、模型评估、在线推理、模型导出五个部分,这里我们先做简单了解,后续我们会对关键配置进行具体讲解:
- 通用设置:可以设置 WebUI 展示的语言、需要微调的模型、微调的方法、是否量化、微调的加速方式等配置:

将相应大模型的文件下载到本地目录

- 微调训练:包括以下几部分配置:
- 微调训练的阶段:预训练、指令微调、强化学习等等;
- 微调使用的数据集:数据集的格式、路径、验证集的比例等等;
- 关键微调参数:在我们之前教程中重点学习的:学习率、训练轮数、批量 大小等等;
- LoRA 参数:当使用 Lora 微调时需要配置的一些特殊参数;
- RLHF 参数:当训练阶段为强化学习时需要配置的一些特殊参数;
- 特殊优化参数:当选择使用 GaLore、APOLLO 和 BAdam 优化器时需要配置的一些参数;
- SwanLab 参数:一款开源的模型训练跟踪与可视化工具;

- 模型评估:在完成模型训练后,可以通过此模块来评估模型效果,这里可配置模型评估所需的数据集等:

- 在线推理:可以选择使用 huggingface、vllm 等推理引擎和模型在线聊天,主要用来测试加载模型:

- 模型导出:可以指定模型、适配器、分块大小、导出量化等级及校准数据集、导出设备、导出目录等。
