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

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

基于 Llama-Factory 框架在昇腾 NPU 环境下对 Qwen3.5-4B 模型进行监督微调的完整流程。内容涵盖环境搭建、数据集配置、YAML 训练脚本编写及单卡多卡启动方法。通过对比微调前后 API 调用结果验证效果,并提供常见命令报错的排查方案,适合需要高效利用国产算力进行大模型适配的开发者参考。

CloudNative发布于 2026/4/9更新于 2026/5/2217 浏览
基于 Llama-Factory 微调 Qwen3.5-4B 模型实战指南

微调前期准备

下载模型与框架

首先确保已安装 git-lfs,然后克隆 Qwen3.5-4B 模型仓库:

git lfs install
git clone https://modelers.cn/Qwen-AI/Qwen3.5-4B.git

接着拉取 Llama-Factory 源码,这里使用浅克隆以节省时间:

git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git

搭建微调环境

我们推荐使用 Miniconda 来隔离依赖。在终端中执行以下操作:

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

# 安装 miniconda (以 aarch64 为例)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
bash Miniconda3-latest-Linux-aarch64.sh

# 配置 conda
conda config --set auto_activate_base false
source ~/.bashrc

# 接受 main 和 r 通道的条款
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
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

安装 Llama-Factory 依赖

进入项目目录后安装核心依赖。如果你使用的是昇腾 NPU 算力,需要额外安装 torch-npu 和相关库以获得加速效果:

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 环境依赖
pip install torch-npu==2.10.0rc2
pip install decorator

安装完成后,运行 llamafactory-cli version 验证版本信息。

完成环境搭建后,记得加载昇腾的环境启动命令:

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

准备数据集

根据 Llama-Factory 的要求,数据集需放置在 LlamaFactory/data 目录下。我们可以先下载官方测试数据集(或自行制作):

cd LlamaFactory/data git clone https://modelers.cn/chicheng/mllm_robot.git cd mllm_robot mv mllm_robot.zip /home/openmind/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"}
}

模型微调实战

编写训练脚本

由于部分体验空间仅支持终端模式,我们需要直接编写 YAML 配置文件。下面是一个针对 Qwen3.5 和 LoRA 微调的标准配置示例:

# 模型参数
model_name_or_path: /home/openmind/Qwen3.5-4B
template: qwen3_5
trust_remote_code: true

# 训练参数
stage: sft
do_train: true
finetuning_type: lora
lora_target: q_proj,k_proj,v_proj,o_proj
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
bf16: true

# 输出参数
output_dir: /home/openmind/Qwen3.5-4B/lora/train_Qwen3.5-4B
logging_steps: 10
save_steps: 500
overwrite_output_dir: true

# 硬件与分布式相关
fp16: false
ddp_timeout: 180000

关键参数说明:

  • model_name_or_path: 指向本地模型路径,如果是 Hugging Face ID 需确保网络通畅。
  • template: 必须匹配模型系列,Qwen3.5 对应 qwen3_5。
  • finetuning_type: 这里使用 lora,显存友好;若显存充足也可尝试全量微调。
  • bf16: 昇腾 910B 支持 bf16,开启可节省显存并加速训练。
  • gradient_accumulation_steps: 梯度累积步数,用于模拟更大的 batch size,避免单卡显存不足。

启动训练

单卡训练

直接使用命令行启动:

CUDA_VISIBLE_DEVICES=0 llamafactory-cli train train_qwen_robot.yaml

多卡训练

如果有多张 NPU 卡,可以先用 npu-smi info 查看设备编号。假设可用设备为 1 和 4,则命令如下:

WANDB_MODE=disabled FORCE_TORCHRUN=1 CUDA_VISIBLE_DEVICES=1,4 llamafactory-cli train ./train_qwen_robot.yaml

注意逗号必须是英文半角符号,否则会导致设备识别失败。


效果对比与验证

训练完成后,我们可以通过 API 接口对比微调前后的模型表现。

1. 加载原始模型权重

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
}'

2. 加载 LoRA 权重

重新拉起服务,指定 adapter 路径:

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 相关命令时提示找不到命令,通常是因为包路径未加入环境变量。可以在终端中临时设置:

export PATH="/home/openmind/.local/bin:$PATH"
export PATH="/usr/local/bin:$PATH"

此外,如果需要图形化界面,可以直接运行 llamafactory-cli webui 启动 Web UI,通过浏览器访问返回的 URL 进行操作。

目录

  1. 微调前期准备
  2. 下载模型与框架
  3. 搭建微调环境
  4. 清除当前 shell 会话中的 PYTHONPATH 环境变量
  5. 安装 miniconda (以 aarch64 为例)
  6. 配置 conda
  7. 接受 main 和 r 通道的条款
  8. 创建 python3.11 环境并激活
  9. 安装 Llama-Factory 依赖
  10. 可选:安装 flash-linear-attention 获得训练推理加速效果
  11. 昇腾 NPU 环境依赖
  12. 准备数据集
  13. 模型微调实战
  14. 编写训练脚本
  15. 模型参数
  16. 训练参数
  17. 输出参数
  18. 硬件与分布式相关
  19. 启动训练
  20. 单卡训练
  21. 多卡训练
  22. 效果对比与验证
  23. 1. 加载原始模型权重
  24. 2. 加载 LoRA 权重
  25. 常见问题排查
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Spring Boot 远程调试配置方法
  • Django 配置 Swagger 文档的详细步骤与代码示例
  • Linux 初始网络(下):局域网通信与跨网段传输原理
  • Java 面向对象核心:包管理、封装设计与代码块详解
  • Midjourney 推出面向动漫领域的图像生成模型:Niji V7
  • 基于 HTML5+CSS3+JavaScript 的高木同学圣诞主题 GalGame 开发实战
  • Tomcat 集群部署实战:负载均衡与会话共享
  • VSCode Copilot 配置 DeepSeek 模型使用指南
  • C++ 四十年演进:从 C with Classes 到现代标准
  • C++ 迭代器深度解析:从概念到 STL 实践
  • C++ 入门:C 语言没有的基础知识总结
  • AI 写作技术发展趋势与伦理挑战
  • LeetCode 双指针算法核心解析与实战
  • Mac Mini 部署 OpenClaw 本地 AI 智能体指南
  • 机器人动力学分析:牛顿欧拉法推导与详述
  • Flutter 集成 React 风格库在鸿蒙系统的适配实践
  • 前端可访问性开发指南
  • 111 页全面综述:大模型评测体系与未来展望
  • SpringBoot 整合 Langchain4j RAG 技术深度解析
  • AI 工具泛滥时代,为什么“能力”越来越不值钱?

相关免费在线工具

  • 加密/解密文本

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