跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

LLaMaFactory 云端环境微调大模型实战

在魔搭社区免费 GPU 环境下使用 LLaMaFactory 微调大模型的完整流程。内容包括环境配置(Ubuntu, CUDA, Python),安装 LLaMaFactory 及虚拟环境处理,选择基座与指令模型的区别,数据集获取与格式转换,执行微调训练并监控 Loss 曲线,导出模型权重,以及将 Hugging Face 格式转换为 GGUF 格式以便本地部署。解决了依赖冲突、Tokenizer 加载异常等常见问题。

技术博主发布于 2026/4/6更新于 2026/10/1792 浏览
LLaMaFactory 云端环境微调大模型实战

一、环境

如果你还在为本地设备问题而烦恼,可以尝试使用云端免费 GPU 环境。

首先注册魔搭社区,绑定个人阿里云账号即可,详情见:https://www.modelscope.cn/my/mynotebook;然后就可免费获得 36 小时 GPU 环境。

配置信息如下:

  • CPU:8 核,主要负责数据的调度和预处理
  • 内存:32GB,数据从硬盘加载后会暂时存放这里
  • 显存:24G
  • 操作系统:Ubuntu 22.04
  • CUDA:12.8.1,英伟达的并行计算平台。12.8 版本意味着它支持最新的 RTX 40 系列或 H 系列显卡
  • Python:3.11
  • PyTorch:2.9.1,目前最主流的深度学习框架
  • ModelScope:1.35.0

文章配图

安装 LLaMaFactory

具体步骤如下,不再赘述。git 克隆 llama_factory 项目,执行 pip install -e .,结果出现提示:

文章配图

错误信息表示 pip 在安装新包时检测到依赖冲突,为避免 pip 导致权限混乱,这里推荐使用虚拟环境(venv)。

创建虚拟环境

创建虚拟环境:python -m venv llmVenv(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/ 可完成浏览器访问。

二、模型选择

2.1. 模型分类和区别

此处选中一个模型【Qwen3-4B-Base】,跳出了告警提示。这是因为【Base】表示基座模型,而不是经过指令微调【Instruct】的模型。

两者区别在于:

  • Base:基座模型,只完成了预训练,擅长续写文本,不擅长直接理解并回答人类的问题或指令。
  • Instruct:指令模型,在基座模型的基础上,使用大量【用户指令和期望回答】的数据进行微调,能够正确理解并遵循人类指令。

文章配图

后续选择【Qwen3.5-2B-Base】,此时模型名称同样带【Base】,却没有弹出告警提示。

Qwen3.5 是后训练模型,已经经历了至少一轮指令微调或强化学习(RL),具备对话能力。RL 训练的模型其指令遵循能力通常优于单纯的监督微调(SFT)模型。

文章配图

2.2. 加载模型对话

我们可以点击【Chat】进行加载模型对话,可以看到其中的如下参数:

2.2.1. 【推理引擎】:
  • Hugging Face:transformers 库,是 LLM 领域最通用的原生推理框架。开箱即用,配置灵活,适合调试、开发、原型验证。默认使用 PyTorch 动态图,速度相对较慢,显存占用较高。
  • vLLM:高性能和服务框架,专为高吞吐、低延迟设计。支持连续批处理,自动合并请求,提高吞吐。适合生产环境部署、高并发 API 服务、需要最大化吞吐量的离线推理。
  • SGLang:较新的推理框架,专注于结构化生成和复杂推理任务。吞吐量接近 vLLM,适合需要复杂生成逻辑,对推理过程有精细控制要求的场景。
2.2.2. 【推理数据类型】:控制模型加载和推理时使用的数值精度。
  • auto:自动选择,框架会根据模型配置和硬件能力自动决定最优精度。如果支持 bfloat16,通常会优先使用,否则回退到 float16 或 32。
  • float32:最精确,显存占用最大,速度最慢,通常不推荐用于推理。
  • float16:显存较 fp32 减半,速度更快,精度损失小。大多数 GPU 支持。
  • bfloat16:与 fp16 同显存占用,但动态范围更大,训练和推理更稳定。
2.2.3. 【额外参数】:

{"vllm_enforce_eager": true},vLLM 专用参数,在 vLLM 中会强制使用 eager 模式(不使用 CUDA 图优化),通常用于调试或避免某些显存问题;此处当前推理引擎是 huggingface,理论上这个参数不会生效,但是我这里默认自带,还是手动删除(即仅保留 {},否则会出现 Json 格式错误);

文章配图

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

文章配图

当然也可以手动下载魔搭社区的模型,默认存储路径也是一样的,访问:https://modelscope.cn/models ,此处以 Qwen3.5-2B 举例:modelscope download --model Qwen/Qwen3.5-2B

等待模型加载成功后,就可以正常聊天了。

文章配图

三、数据集

魔搭社区中提供大量数据集,我们学习过程中可以下载使用,详情见:https://www.modelscope.cn/datasets

3.1. 获取源数据

此处随便举个例子,随手拿了个【蚂蚁金融语义相似度数据集】,详情见:https://www.modelscope.cn/datasets/modelscope/afqmc

文章配图

在【数据集文件】中下载【train.csv】,下载完成后,我可能可以得到如下数据,可以看出此数据集是用于评估问题间的语义相似性。

sentence1 = 句子 1, sentence2 = 句子 2, label = 0 表示两者语义不同、1 表示语义相同

文章配图

3.2. 编写转换脚本

我们通过脚本将 csv 转换成 LLaMaFactory 需要的 json 格式,脚本如下,不熟练的小伙伴可借助 AI 工具。

文章配图

3.3. 生成数据集

在 py 脚本目录下执行 python csv2Json.py 可以得到目标文件 json 如下:

文章配图

将生成的【ant_finance_same.json】移动至【LLaMA-Factory】项目中的【data】文件夹中,再修改【dataset_info.json】加入刚才生成的 json,其余保持不动;

dataset_info.json 是 LLaMaFactory 中用于注册和管理数据集的配置文件。主要作用是配置数据集文件路径。

文章配图

四、训练

4.1. 加载并预览数据集

现在,我们就可以在【数据集】中选中刚才配置的数据,点击【预览数据集】后可以看到示例;

文章配图

4.2. 执行微调

点击【开始】微调模型,大约一两分钟后可以看到下方控制台输出日志,然后就是耐心的等待(GPU 环境超过 1 小时无操作将触发自动关闭功能,要记得点下控制台);

文章配图

原计划训练需 10.5 小时,但单次实例连接限时 8 小时。实际运行 1 小时后环境卡死。

为了演示完整性,此处使用精简版数据集,仅包含 1000 条数据,训练耗时约 20 分钟;

文章配图

文章配图

文章配图

上图中右边的趋势图表示训练过程中损失值 Loss 随训练步数 Step 变化的曲线,用于监控模型的学习情况。

  • original 原始曲线:每个记录点实际计算出的损失值,由于单批次数据存在随机性,曲线往往会有很多噪声毛刺;
  • smoothed 平滑曲线:对原始损失进行移动平均或指数平滑后的曲线,能更加清晰地反映损失的整体变化趋势,滤除短期波动;

4.3. 导出微调结果

等到【训练完毕】,我们可以在【检查点路径】找到刚才微调后的模型;

文章配图

导出完成后,我们可以看到路径下对应的文件;

文章配图

我们尝试加载微调后的模型,进行对话。

文章配图

五、转换 GGUF

为了能够让 ollama 或 llama.cpp 直接使用,需要将 Hugging Face 格式模型转换成 GGUF 格式的文件。

5.1. 创建环境

为避免冲突,建议创建一个独立的 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

5.2. 执行转换

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 文件。

  1. 检查当前 tokenizer_config.json 内容:
cat /mnt/workspace/models/Qwen3.5-2B-output/tokenizer_config.json | grep tokenizer_class

文章配图

  1. Qwen3.5-2B 模型对应的 tokenizer 类是 Qwen2Tokenizer,使用 sed 直接替换:
sed -i 's/"tokenizer_class": "TokenizersBackend"/"tokenizer_class": "Qwen2Tokenizer"/g' /mnt/workspace/models/Qwen3.5-2B-output/tokenizer_config.json

替换后再执行转换命令即可,最后可以得到 GGUF 文件。

文章配图

目录

  1. 一、环境
  2. 安装 LLaMaFactory
  3. 创建虚拟环境
  4. 二、模型选择
  5. 2.1. 模型分类和区别
  6. 2.2. 加载模型对话
  7. 2.2.1. 【推理引擎】:
  8. 2.2.2. 【推理数据类型】:控制模型加载和推理时使用的数值精度。
  9. 2.2.3. 【额外参数】:
  10. 三、数据集
  11. 3.1. 获取源数据
  12. 3.2. 编写转换脚本
  13. 3.3. 生成数据集
  14. 四、训练
  15. 4.1. 加载并预览数据集
  16. 4.2. 执行微调
  17. 4.3. 导出微调结果
  18. 五、转换 GGUF
  19. 5.1. 创建环境
  20. 5.2. 执行转换

更多推荐文章

查看全部
  • 理清 GCC、glibc 与 libstdc++ 的关系
  • Qwen3-VL 模型架构与训练流程
  • WebRTC 在 Android 中的应用实战
  • 字节跳动豆包系列深度拆解:国民级全模态 AI 的普惠化路径
  • AI 产品经理与 AIGC 产品经理的区别及职业选择建议
  • Java RESTful 接口开发:Spring Boot 实战指南
  • Git 版本管理工具基础使用指南
  • Prometheus 监控盲区解决方案:使用 Pushgateway 可视化临时任务
  • Qt WebChannel 多方法调用导致 execCallbacks 错误的解决方案
  • Kingbase 数据库 KSQL 常用命令指南
  • 机器学习:聚类分析算法原理与应用
  • Claude Code 在 Ubuntu 系统上的安装与配置指南
  • 基于 FPGA 的铝片表面缺陷检测系统设计与实现
  • Webots 2025a + ROS 2 Jazzy e-puck 机器人集成与导航研究教程
  • 2026 年 3 月大模型全景解析:国产登顶、百万上下文与 Agent 工业化
  • Claude Code 工程化实践:Hooks、Commands 与 Agents 协同提升技能激活率
  • LangChain 大模型组件使用指南
  • Spring Boot Web 后端开发核心注解详解
  • Python YOLOv8 进阶教程
  • PlatformIO 基础配置文件 platformio.ini 详解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online