一、环境
本文介绍在魔搭社区免费 GPU 环境下使用 LLaMaFactory 微调大模型的方法。
注册魔搭社区并绑定阿里云账号,可获得 36 小时免费 GPU 环境。
环境配置包括:
- CPU:8 核心,负责数据调度和预处理
- 内存:32GB
- 显存:24G
- 操作系统:Ubuntu 22.04
- CUDA:12.x(支持最新显卡)
- Python:3.11
- PyTorch:2.x
- ModelScope:1.35.0
安装 LLaMaFactory
克隆 llama-factory 项目,执行 pip install -e .。若出现依赖冲突提示,推荐使用虚拟环境(venv)解决。
python -m venv llmVenv
source llmVenv/bin/activate
pip install --upgrade pip
pip install -e .
pip install -r requirements/metrics.txt
llamafactory-cli webui
启动后访问 http://127.0.0.1:7860 完成浏览器访问。
二、模型选择
2.1. 模型分类和区别
Base 模型仅完成预训练,擅长续写文本,不擅长直接理解指令;Instruct 模型经过指令微调,能够正确理解并遵循人类指令。Qwen3.5 系列通常具备对话能力。
2.2. 加载模型对话
2.2.1. 推理引擎
- Hugging Face:transformers 库,通用原生框架,适合调试开发。
- vLLM:高性能服务框架,专为高吞吐低延迟设计,适合生产环境。
- SGLang:专注于结构化生成和复杂推理任务。
2.2.2. 推理数据类型
- auto:自动选择最优精度。
- float32:最精确,显存占用最大。
- float16:显存减半,速度更快。
- bfloat16:动态范围更大,稳定性好。
2.2.3. 额外参数
注意调整推理引擎相关参数,避免 JSON 格式错误。例如 vLLM 专用参数需根据实际引擎配置。
加载模型后等待控制台输出,支持手动下载魔搭社区模型。
三、数据集
魔搭社区提供大量数据集供下载使用。
3.1. 获取源数据
下载 CSV 格式数据,例如语义相似度数据集。字段包含 sentence1、sentence2 和 label。
3.2. 编写转换脚本
将 CSV 转换为 LLaMaFactory 所需的 JSON 格式。
3.3. 生成数据集
执行脚本生成目标文件,移动至 LLaMA-Factory 项目的 data 文件夹中。修改 dataset_info.json 配置文件以注册新数据集。
四、训练
4.1. 加载并预览数据集
选中配置的数据集,点击预览查看示例。
4.2. 执行微调
点击开始微调,监控控制台日志。注意 GPU 环境超过 1 小时无操作可能触发自动关闭。
若训练时间较长,建议减少数据量以缩短演示周期。损失值 Loss 曲线用于监控模型学习情况,包含原始曲线和平滑曲线。
4.3. 导出微调结果
训练完毕后,在检查点路径找到微调后的模型文件。尝试加载微调后的模型进行对话测试。
五、转换 GGUF
为了在 ollama 或 llama.cpp 中使用,需将 Hugging Face 格式转换为 GGUF 格式。
5.1. 创建环境
创建独立 Python 环境并克隆 llama.cpp 仓库。
python -m venv cppVenv
source cppVenv/bin/activate
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
pip install -r requirements.txt
5.2. 执行转换
运行转换命令指定输入输出路径及量化类型。
python convert_hf_to_gguf.py /path/to/model --outfile /path/to/output.gguf --outtype q8_0
若遇到 Tokenizer 加载异常,检查 tokenizer_config.json 中的 tokenizer_class 配置,必要时替换为正确的类名(如 Qwen2Tokenizer)。
六、总结
本文完成了从环境搭建到模型微调及格式转换的完整流程。


