跳到主要内容 使用 LLaMA-Factory 训练 LLM 大模型并用 Ollama 调用 | 极客日志
Python AI 算法
使用 LLaMA-Factory 训练 LLM 大模型并用 Ollama 调用 本文详细阐述了在 Windows 环境下利用 LLaMA-Factory 框架对 Qwen2.5-7B-Instruct 大模型进行微调的完整流程。内容涵盖从系统环境配置、CUDA 工具包安装、Python 虚拟环境搭建,到数据集准备、参数配置及训练执行。随后介绍了如何将微调后的 LoRA 权重转换为 GGUF 格式,并通过 Ollama 进行本地化部署与推理调用。文中提供了具体的命令行操作示例、配置文件修改指南以及常见问题排查方法,旨在帮助开发者快速掌握私有化大模型训练与部署的关键技术步骤。
本教程基于 Windows 11 系统,硬件配置建议如下:
显卡 :Nvidia 显卡,显存至少 8GB,推荐 24GB 以上。
内存 :物理内存与虚拟内存之和大于 20GB。
存储 :建议将非系统盘(如 E 盘)作为工作目录,方便重装或移植环境。
设置自定义 Path 文件夹 创建 E:\mypath 文件夹,将其添加至用户环境变量 Path 中,便于后续管理全局工具。
CMake 安装
下载 CMake Windows x64 ZIP 版本。
解压至 E:\environment\cmake。
将 E:\environment\cmake\bin 路径添加至用户环境变量 Path 中。
C++ 编译环境 下载 Visual Studio Community 版:
运行安装程序,选择"桌面 C++"板块内容安装。
若中途取消,可在开始菜单的新增项目中找到该安装程序补装。
仅需勾选 C++ 相关组件,其他可选项目可取消,但请保留自动勾选的系统 SDK 等核心组件。
Python 环境配置
Anaconda 安装 下载新版 Anaconda 安装程序,安装过程中务必勾选"添加到环境变量"选项。
使用 uv 管理 pip 包 将 uv 所有文件安装至 E:\uv 目录下。uv 是一个快速的 Python 包管理器,能显著提升依赖安装效率。
安装 Python 3.11 uv python install 3.11
uv python list
Git 环境 安装 Git 客户端,确保命令行支持 git 指令。
Nvidia CUDA 工具包
运行安装程序时,在安装选单界面仅勾选"CUDA 驱动"和"工具包"。
注意 :不要勾选额外的显卡驱动和 Nsignt 组件,避免冲突。
安装完成后重启电脑。
部署训练框架
部署 LLaMA-Factory
拉取源码 在 E:\AI 文件夹下克隆 LLaMA-Factory 仓库。建议使用代理加速 GitHub 访问。
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
uv venv -p 3.11
uv pip install -e ".[torch,metrics]"
安装 flash-attention 训练加速 在当前目录(LLaMA-Factory)下继续操作,安装对应版本的 flash-attn 以加速训练:
uv pip install https://github.com/bdashore3/flash-attention/releases/download/v2.6.3/flash_attn-2.6.3+cu123torch2.3.1cxx11abiFALSE-cp311-cp311-win_amd64.whl
如果下载速度慢,可在 URL 前加 https://ghproxy.cn/ 使用国内节点下载。
安装 hqq 用于量化
提示 :若提示 UTF8 相关报错,请参考下文开启 UTF-8 支持。
开启使用 UTF-8 提供全球语言支持
打开控制面板,进入"更改系统区域设置"。
勾选"Beta 版:使用 Unicode UTF-8 提供全球语言支持 (U)"。
重启电脑。
安装完后可将该项取消勾选,以避免影响其他软件兼容性。
安装与当前 CUDA 适配的 PyTorch uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
没有全局代理加速的情况:
先通过代理下载 .whl 文件,然后本地安装:
uv pip install .\torch-2.3.1+cu121-cp311-cp311-win_amd64.whl
uv pip install torchvision==0.18.1+cu121 torchaudio==2.3.1+cu121 -f https://download.pytorch.org/whl/torch_stable.html
配置之前保存的参数 修改 .\data\dataset_info.json 文件,在开头花括号后加入以下内容:
"alpaca_dataset" : {
"file_name" : "alpaca_dataset.json"
} ,
然后将自定义数据集名称命名为 alpaca_dataset.json 放入 .\data 目录下。
将之前保存的 .yaml 参数配置文件放入 .\ ext_generation_inference 或 .\ rain 对应的配置目录(通常直接放在 .\ ext_generation_inference 下的 config 文件夹中,具体视版本而定,建议直接放入 .\ ext_generation_inference 根目录或根据 WebUI 提示的路径放置)。
添加环境变量快捷启动 在 E:\mypath 文件夹内新建 llamafactory-cli.bat 文件,文本编辑器打开输入以下内容并保存:
@echo off
cd /d E:\AI\LLaMA-Factory
.\.venv\Scripts\llamafactory-cli.exe %*
下载基础模型 使用带 -Chat 或 -Instruct 标签的模型作为基础模型。以 Qwen2.5-7B-Instruct 为例:
到魔搭社区(ModelScope)或其他官方渠道下载模型。
按说明下载模型文件到 E:\AI\models 中。
注意 :其中大文件下载的进度条可能不是实时显示,每隔一段进度才显示一次,并非卡住不动,请耐心等待。
模型微调 在 LLaMA-Factory 的 Web 界面中操作:
语言选择 :选 zh。
配置路径 :滑到最下面找到配置路径,下拉菜单选择之前保存的配置。
载入参数 :点击载入训练参数按钮。
模型设置 :滑到最上面,模型名称填写 Qwen2.5-7B-Instruct,填写本地模型路径:E:\AI\models\Qwen2.5-7B-Instruct。
高级设置 :展开高级设置。
量化等级设置 4。
量化方法选 hqq。
加速方式选 flashattn2。
数据集 :可加载多个,点击预览数据集按钮可查看当前数据集数量。
最大样本数即要训练用的最大样本数量。如果最大样本数小于当前数据集数量,则按最大样本数作为实际训练样本数,多出的样本不用于训练。
计算类型 :选 fp16。
输出目录 :按需选填。
开始训练 :点击开始进行训练。
效果评估 :训练结束后查看损失图判断训练效果,损失值越小且稳定即效果好。
退出服务 :在终端按 Ctrl+C 退出 Web 服务。
微调后的模型使用
部署 Ollama
设置环境变量 OLLAMA_ORIGINS *
OLLAMA_MODELS E:\AI\ollama_models
下载并安装 下载 Ollama 安装包并安装,安装后重启电脑。
拉取基础模型
微调模型格式转换
部署 llama.cpp git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
uv venv -p 3.11
uv pip install -r .\requirements\requirements-convert_lora_to_gguf.txt --index-strategy unsafe-best-match
模型检查点转换为 GGUF .venv\Scripts\activate.ps1
python ./convert_lora_to_gguf.py --base "E:\AI\models\Qwen2.5-7B-Instruct" "E:\AI\LLaMA-Factory\saves\Qwen2.5-7B-Instruct\lora\train_xxx"
转换后的 gguf 文件会导出到 <loratrain> 的路径下。
部署微调模型
从 Ollama 创建新模型 # set the base model
FROM qwen2.5:7b
# set custom parameter values
PARAMETER temperature 1
PARAMETER num_keep 24
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>
PARAMETER stop <|reserved_special_token|
# set the model template
TEMPLATE """
{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>
"""
# set the system message
SYSTEM You are a helpful assistant customized for local deployment.
# set Chinese lora support
ADAPTER .\mymodel.gguf
将转换后的 gguf 文件剪切到 E:\models\mymodel 下,命名为 mymodel.gguf。
在该目录下创建 mymodel.modelfile,输入上述内容并保存。
在 Ollama 创建该模型:
ollama create mymodel -f E:\models\mymodel\mymodel.modelfile
模型验证与调用 ollama run mymodel "你好,请介绍一下你自己。"
curl http://localhost:11434/api/generate -d '{
"model": "mymodel",
"prompt": "请用中文回答:什么是人工智能?",
"stream": false
}'
常见问题排查
显存不足 :如果训练过程中出现 OOM(Out Of Memory),请尝试减小 per_device_train_batch_size 或启用 gradient_accumulation_steps。
CUDA 版本不匹配 :确保安装的 PyTorch 版本与 nvcc -V 显示的 CUDA 版本一致,否则可能导致导入错误。
GGUF 转换失败 :检查 LoRA 权重路径是否正确,以及基础模型路径是否包含完整的 checkpoint 文件。
Ollama 无法启动 :检查防火墙设置,确保端口 11434 未被占用或拦截。
通过以上步骤,即可完成从环境搭建、模型微调到本地部署推理的全流程。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online