LLaMaFactory 基于魔搭社区免费 GPU 微调大模型实战
利用魔搭社区免费 GPU 环境部署 LLaMA-Factory 进行大模型微调的完整流程。内容包括环境配置、虚拟环境搭建、模型选择与加载、数据集获取与格式转换、模型训练监控及结果导出,以及将模型转换为 GGUF 格式的后续步骤。该方案解决了本地硬件限制问题,实现了从数据处理到模型推理的全流程实践。

利用魔搭社区免费 GPU 环境部署 LLaMA-Factory 进行大模型微调的完整流程。内容包括环境配置、虚拟环境搭建、模型选择与加载、数据集获取与格式转换、模型训练监控及结果导出,以及将模型转换为 GGUF 格式的后续步骤。该方案解决了本地硬件限制问题,实现了从数据处理到模型推理的全流程实践。

在本地部署 LLaMA-Factory 微调平台需要较高硬件配置,可通过魔搭社区免费 GPU 环境进行替代。
首先注册魔搭社区,绑定个人阿里云账号即可,详情见:https://www.modelscope.cn/my/mynotebook;然后可免费获得 36 小时 GPU 环境。
环境配置:

克隆 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
启动 WebUI:
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 格式错误。

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

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

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

在【数据集文件】中下载【train.csv】。数据格式为:

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

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

将生成的 ant_finance_same.json 移动至【LLaMA-Factory】项目中的【data】文件夹中,再修改 dataset_info.json 加入刚才生成的 json,其余保持不动。
dataset_info.json 是 LLaMA-Factory 中用于注册和管理数据集的配置文件,主要作用是配置数据集文件路径。

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

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

训练时间取决于数据量。若单次实例连接时间受限,可将数据集做删减版演示。mini 版数据集仅 1000 条数据,训练需不到 20 分钟。


右侧趋势图表示训练过程中损失值 Loss 随训练步数 Step 变化的曲线:

训练完毕后,在【检查点路径】找到微调后的模型。

导出完成后,路径下对应文件可见。

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

为了能够让 ollama 或 llama.cpp 直接使用,需要将 Hugging Face 格式模型转换成 GGUF 格式的文件。
为避免冲突,建议创建一个独立的 Python 环境:
python -m venv cppVenv
source cppVenv/bin/activate
克隆 llama.cpp,该工具可转换 GGUF:
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 配置缺少必要的 tokenizer 文件。
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