LLaMaFactory 使用免费 GPU 环境微调大模型指南
如何使用魔搭社区提供的免费 GPU 环境,配合 LLaMaFactory 工具对大语言模型进行微调。内容包括环境配置、虚拟环境创建、模型选择与加载、数据集准备与转换、微调执行及结果导出,以及将模型转换为 GGUF 格式的完整流程。通过实际操作演示了从基础环境搭建到模型部署的全链路步骤,适合希望低成本体验大模型微调的用户参考。

如何使用魔搭社区提供的免费 GPU 环境,配合 LLaMaFactory 工具对大语言模型进行微调。内容包括环境配置、虚拟环境创建、模型选择与加载、数据集准备与转换、微调执行及结果导出,以及将模型转换为 GGUF 格式的完整流程。通过实际操作演示了从基础环境搭建到模型部署的全链路步骤,适合希望低成本体验大模型微调的用户参考。

注册魔搭社区并绑定个人阿里云账号,可获取免费 GPU 环境(36 小时)。 配置如下:

克隆 llama-factory 项目,执行 pip install -e .。若出现依赖冲突提示,建议使用虚拟环境(venv)以避免权限混乱。
创建虚拟环境:python -m venv llmVenv
激活虚拟环境:source llmVenv/bin/activate
退出虚拟环境:deactivate
在虚拟环境中升级 pip: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
以【蚂蚁金融语义相似度数据集】为例。下载【train.csv】后,数据结构包含 sentence1、sentence2 及 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 小时无操作将触发自动关闭功能,需保持控制台活跃。

完整训练可能需要较长时间,但单次实例连接时间有限。演示中使用 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
--outtype q8_0 表示量化类型,默认输出 f16 格式。
执行过程中可能出现异常:
ValueError: Tokenizer class TokenizersBackend does not exist or is not currently imported.
原因是在合并模型时,无法正确加载模型的 tokenizer 导致的,通常是因为模型文件夹中的 tokenizer_config.json 配置缺少必要的 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