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

基于 Llama-Factory 微调 Qwen3.5-4B 模型指南

在终端环境下使用 Llama-Factory 框架对 Qwen3.5-4B 模型进行监督微调(SFT)的完整流程。内容包括环境搭建(Miniconda、Llama-Factory、昇腾 NPU 支持)、数据集准备、训练脚本配置(YAML)、单卡及多卡训练执行,以及微调前后模型的对比验证。通过 LoRA 技术实现高效微调,适用于需要特定领域知识增强的场景。

孤勇者发布于 2026/4/6更新于 2026/7/2546 浏览
基于 Llama-Factory 微调 Qwen3.5-4B 模型指南

微调前期准备

下载 Qwen3.5-4B 模型
# 首先保证已安装 git-lfs
git lfs install
git clone https://huggingface.co/Qwen/Qwen3.5-4B.git
下载 Llama-Factory
git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git

训练环境截图

微调环境搭建

使用 Miniconda 构建隔离环境:

# 清除当前 shell 会话中的 PYTHONPATH 环境变量
unset PYTHONPATH

# 安装 miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
bash Miniconda3-latest-Linux-aarch64.sh
conda config --set auto_activate_base false

# 加载 conda 配置
source ~/.bashrc

# 接受 main 通道的条款
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main

# 接受 r 通道的条款
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r

# 创建 python3.11 环境
conda create --name LlamaFactory python=3.11 -y
conda activate LlamaFactory
安装 LlamaFactory 环境依赖
cd LlamaFactory
pip install -e .

# 可以安装 flash-linear-attention 获得训练推理加速效果
pip uninstall fla-core flash-linear-attention -y && pip install -U git+https://github.com/fla-org/flash-linear-attention

# 因为我们使用的昇腾的 npu 的算力,所以我们还需要额外装一个 torch-npu 和 decorator
pip install torch-npu==2.10.0rc2
pip install decorator

可以使用下面的命令验证是否安装成功:

llamafactory-cli version

版本信息截图

显示 llamafactory 的版本,则表示安装成功。

完成环境的搭建之后我们还需要将昇腾的环境启动命令跑一遍,使用以下的命令:

source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/nnal/asdsip/set_env.sh
source /usr/local/Ascend/nnal/atb/set_env.sh
下载数据集

根据 llamafactory 的要求我们需要把数据集放到 LlamaFactory/data 目录:

cd LlamaFactory/data

我们先下载数据集,数据集的制作的过程比较繁琐,这里我们使用准备好的数据集,大家也可以使用自己制作的数据集:

# 下载数据集(请替换为实际可用的数据集地址)
# git clone <dataset_repo_url>

# 移动数据集到 LlamaFactory/data 文件夹
cd mllm_robot
mv mllm_robot.zip /home/openmind/LlamaFactory/data

# 然后我们到 LlamaFactory/data 目录来解压数据集
cd /home/openmind/LlamaFactory/data
python3 -c "import zipfile; zipfile.ZipFile('mllm_robot.zip').extractall()"

数据集结构截图

修改 dataset_info.json 文件,将我们刚刚下载的数据集添加进去:

"mllm_robot": {
    "file_name": "mllm_robot.json",
    "formatting": "sharegpt",
    "columns": {"messages": "messages", "images": "images"},
    "tags": {"role_tag": "role", "content_tag": "content", "user_tag": "user", "assistant_tag": "assistant"}
},
"mllm_robot_en": {
    "file_name": "mllm_robot_en.json",
    "formatting": "sharegpt",
    "columns": {"messages": "messages", "images": "images"},
    "tags": {"role_tag": "role", "content_tag": "content", "user_tag": "user", "assistant_tag": "assistant"}
}

配置文件截图

模型微调

训练脚本准备

本教程基于终端环境操作,暂时无法使用 LlamaFactory 的 Web UI,因此需要写一个训练的 yaml 文件:

# 模型参数
model_name_or_path: /home/openmind/Qwen3.5-4B # 或您的本地模型路径
template: qwen3_5 # 模型模板
trust_remote_code: true # 对于 Qwen 模型通常需要

# 训练参数
stage: sft # 监督微调
do_train: true
finetuning_type: lora # 使用 LoRA
lora_target: q_proj,k_proj,v_proj,o_proj # LoRA 作用模块 (可按需调整)
dataset: mllm_robot,mllm_robot_en # 使用两个数据集 (用逗号分隔)
learning_rate: 1.0e-4
num_train_epochs: 5.0
per_device_train_batch_size: 1 # 根据显存调整 (使用多卡可以自行调整这里)
gradient_accumulation_steps: 16 # 确保总 batch_size 合适
bf16: true # 昇腾 910B 支持 bf16,可开启以节省显存

# 输出参数
output_dir: /home/openmind/Qwen3.5-4B/lora/train_Qwen3.5-4B # 与教程对应的输出目录
logging_steps: 10
save_steps: 500
overwrite_output_dir: true

# 硬件与分布式相关
fp16: false # 已启用 bf16,关闭 fp16 避免冲突
ddp_timeout: 180000 # 分布式超时设置

命令解释:

  • 模型参数:指定模型路径、对话模板及是否信任远程代码。
  • 训练参数:设定微调阶段(sft)、方法(lora)、目标模块、数据集名称、学习率、轮数及 Batch Size 策略。
  • 输出参数:定义检查点保存路径、日志频率及是否覆盖旧目录。
  • 硬件相关:配置混合精度(bf16/fp16)及分布式超时时间。

使用单卡训练命令:

CUDA_VISIBLE_DEVICES=0 llamafactory-cli train train_qwen_robot.yaml

单卡训练截图

多卡训练命令:

我们新建一个终端,在终端上运行:

npu-smi info

NPU 设备信息截图

可以看到 NPU 卡的设备编号分别是 1,4。

WANDB_MODE=disabled FORCE_TORCHRUN=1 CUDA_VISIBLE_DEVICES=1,4 llamafactory-cli train ./train_qwen_robot.yaml
对比训练前后的模型

拉起加载原始模型权重:

CUDA_VISIBLE_DEVICES=1 llamafactory-cli api \
--model_name_or_path /home/openmind/Qwen3.5-4B \
--template qwen3_5 \
--finetuning_type lora

使用下面的命令去提问,查看输出内容:

curl -X POST http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
  "model": "Qwen3.5-4B",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": "data:image/png;base64,'$(base64 -w0 /home/openmind/LlamaFactory/data/images/robotera_1.png)'"
          }
        },
        {
          "type": "text",
          "text": "请识别并描述图片中的机器人及其特征"
        }
      ]
    }
  ],
  "max_tokens": 512,
  "temperature": 0.1
}'

输出内容:

原始模型输出截图

拉起加载 lora 权重的模型:

CUDA_VISIBLE_DEVICES=1 llamafactory-cli api \
--model_name_or_path /home/openmind/Qwen3.5-4B \
--adapter_name_or_path /home/openmind/Qwen3.5-4B/lora/train_Qwen3.5-4B \
--template qwen3_5 \
--finetuning_type lora

依然是使用上面 curl 命令的内容去提问,查看输出:

微调后模型输出截图

可能出现的问题

如果使用 llama-factory 命令的时候出现找不到命令的时候,可以在终端运行下面的命令:

# 若执行 llama-factory 的相关提示找不到命令,需设置一下变量,将包路径添加至环境变量中
export PATH="/home/openmind/.local/bin:$PATH"
export PATH="/usr/local/bin:$PATH"

如需使用 Web UI,可执行以下命令:

llamafactory-cli webui

点击返回的 URL 地址,即可进入 Web UI 页面。

目录

  1. 微调前期准备
  2. 下载 Qwen3.5-4B 模型
  3. 首先保证已安装 git-lfs
  4. 下载 Llama-Factory
  5. 微调环境搭建
  6. 清除当前 shell 会话中的 PYTHONPATH 环境变量
  7. 安装 miniconda
  8. 加载 conda 配置
  9. 接受 main 通道的条款
  10. 接受 r 通道的条款
  11. 创建 python3.11 环境
  12. 安装 LlamaFactory 环境依赖
  13. 可以安装 flash-linear-attention 获得训练推理加速效果
  14. 因为我们使用的昇腾的 npu 的算力,所以我们还需要额外装一个 torch-npu 和 decorator
  15. 下载数据集
  16. 下载数据集(请替换为实际可用的数据集地址)
  17. git clone <datasetrepourl>
  18. 移动数据集到 LlamaFactory/data 文件夹
  19. 然后我们到 LlamaFactory/data 目录来解压数据集
  20. 模型微调
  21. 训练脚本准备
  22. 模型参数
  23. 训练参数
  24. 输出参数
  25. 硬件与分布式相关
  26. 对比训练前后的模型
  27. 可能出现的问题
  28. 若执行 llama-factory 的相关提示找不到命令,需设置一下变量,将包路径添加至环境变量中
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • VSCode Copilot 接入 OpenAI 兼容模型方案
  • llama.cpp 实战指南:如何在普通电脑上运行大模型
  • 前端网页开发学习路径:HTML+CSS+JS
  • Python IDE 优缺点对比与选择指南
  • C++ spdlog 日志库编译与安装详解
  • Java 并发编程实战:单例模式、生产者消费者、定时器与线程池
  • Java Web 会话管理:Cookie 实战详解
  • Android Kotlin 开发内嵌 WebView 应用及按键交互实践
  • 2026 年 AI Agent 开发:10 个实战验证的设计模式
  • 主流免费 AI IDE 工具盘点与使用指南
  • 基于 Web Unlocker 和 n8n 的自动化资讯采集与推送系统
  • C++ 入门:命名空间(namespace)详解
  • 基于 FastAPI 自动构建 SSE MCP 服务器
  • Java SE 常用工具类:String 与日期时间处理
  • 基于 FastAPI 自动构建 SSE MCP 服务器
  • Cloudflare Turnstile 在 Java 后端的人机验证实践
  • 2026 年 10 款降低 AIGC 检测率工具推荐
  • ClawdBot 本地化语音翻译工作流:Whisper 转写与多语言支持
  • 数据结构入门:插入排序与希尔排序详解
  • OpenClaw 多 Agent 对接飞书机器人实战指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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