LLaMaFactory 基于魔搭社区免费 GPU 微调大模型实战
利用魔搭社区提供的免费 GPU 环境部署 LLaMaFactory 进行大模型微调的完整流程。内容包括环境配置、虚拟环境创建、模型选择与加载、数据集准备与转换、模型微调训练以及结果导出与 GGUF 格式转换。通过实际操作演示了如何在不消耗本地硬件资源的情况下完成从基座模型到指令微调模型的构建过程,并解决了训练过程中可能遇到的依赖冲突及 Tokenizer 配置问题。

利用魔搭社区提供的免费 GPU 环境部署 LLaMaFactory 进行大模型微调的完整流程。内容包括环境配置、虚拟环境创建、模型选择与加载、数据集准备与转换、模型微调训练以及结果导出与 GGUF 格式转换。通过实际操作演示了如何在不消耗本地硬件资源的情况下完成从基座模型到指令微调模型的构建过程,并解决了训练过程中可能遇到的依赖冲突及 Tokenizer 配置问题。

如果你还在为本地设备问题而烦恼,可以利用魔搭社区提供的免费 GPU 环境。
首先注册魔搭社区,绑定个人阿里云账号即可,详情见:https://www.modelscope.cn/my/mynotebook;然后可获取 36 小时 GPU 环境。
配置如下:

克隆 llama-factory 项目,执行 pip install -e .。若出现依赖冲突提示,建议使用虚拟环境(venv)以避免权限混乱。
python -m venv llmVenv
source llmVenv/bin/activate
退出虚拟环境:deactivate
在虚拟环境中执行升级:pip install --upgrade pip
后续执行 pip install -e . 和 pip install -r requirements/metrics.txt,运行 llamafactory-cli webui 启动服务,并在浏览器访问 http://127.0.0.1:7860。
此处选择一个模型 Qwen3-4B-Base,系统会弹出告警提示。这是因为【Base】表示基座模型,而非经过指令微调的【Instruct】模型。
两者区别在于:

后续选择 Qwen3.5-2B-Base,此时虽带【Base】但无告警。Qwen3.5 是后训练模型,已经历指令微调或强化学习(RL),具备对话能力。

点击【Chat】加载模型,参数说明如下:
例如 {"vllm_enforce_eager": true},vLLM 专用参数。若当前推理引擎是 huggingface,该参数理论上不会生效,建议删除或仅保留 {} 以避免 JSON 格式错误。

点击【加载模型】后,控制台会自动下载对应模型。

也可手动下载魔搭社区模型,默认存储路径一致。访问 https://modelscope.cn/models,以 Qwen3.5-2B 为例:modelscope download --model Qwen/Qwen3.5-2B。
等待模型加载成功后,即可正常聊天。

魔搭社区提供大量数据集供下载使用,详情见:https://www.modelscope.cn/datasets
示例选取【蚂蚁金融语义相似度数据集】,详情见:https://www.modelscope.cn/datasets/modelscope/afqmc

在【数据集文件】中下载 train.csv。该数据集用于评估问题间的语义相似性。 字段包括:sentence1(句子 1)、sentence2(句子 2)、label(0 表示不同、1 表示相同)。

通过脚本将 csv 转换成 LLaMaFactory 需要的 json 格式。

在 py 脚本目录下执行 python csv2Json.py 得到目标 json 文件。

将生成的 ant_finance_same.json 移动至 LLaMA-Factory 项目的 data 文件夹中,再修改 dataset_info.json 加入刚才生成的 json 配置。 dataset_info.json 是 LLaMaFactory 中用于注册和管理数据集的配置文件。

在【数据集】中选中刚才配置的数据,点击【预览数据集】查看示例。

点击【开始】微调模型。GPU 环境超过 1 小时无操作将触发自动关闭功能,需注意保持活动。

此次训练预计需要约 10.5 小时,但单次实例连接时间最长为 8 小时。若遇到环境卡死,可尝试删减数据集。mini 版数据集仅 1000 条数据,训练需不到 20 分钟。



右侧趋势图表示训练过程中损失值 Loss 随训练步数 Step 变化的曲线。
训练完毕后,在【检查点路径】找到微调后的模型。

导出完成后查看路径下对应文件。

尝试加载微调后的模型进行对话测试。

为了能让 ollama 或 llama.cpp 直接使用,需要将 Hugging Face 格式模型转换成 GGUF 格式。
为避免冲突,建议创建独立 Python 环境:
python -m venv cppVenv
source cppVenv/bin/activate
克隆 llama.cpp 工具:
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp
pip install -r requirements.txt
python convert_hf_to_gguf.py /mnt/workspace/models/Qwen3.5-2B-output --outfile /mnt/workspace/gguf/Qwen3.5-2B-output.gguf --outtype q8_0
Qwen3.5-2B-output 为 model.safetensors 文件所在路径。 --outtype q8_0 表示量化类型,默认输出 f16 格式。
执行过程中可能出现异常:
ValueError: Tokenizer class TokenizersBackend does not exist or is not currently imported.
原因是在合并模型时无法正确加载 tokenizer,通常因 tokenizer_config.json 缺少必要配置。
cat /mnt/workspace/models/Qwen3.5-2B-output/tokenizer_config.json | grep tokenizer_class

sed -i 's/"tokenizer_class": "TokenizersBackend"/"tokenizer_class": "Qwen2Tokenizer"/g' /mnt/workspace/models/Qwen3.5-2B-output/tokenizer_config.json
替换后再执行转换命令即可,最后得到 GGUF 文件。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online