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

使用 Llama-Factory 微调 Qwen3.5-4B 模型

基于 Llama-Factory 框架在昇腾 NPU 环境下微调 Qwen3.5-4B 模型的完整流程。内容包括环境搭建(Miniconda、LlamaFactory、Ascend Toolkit)、数据集准备与配置、训练脚本编写(YAML 格式)、单卡与多卡训练执行、以及训练前后模型效果对比验证。文中提供了详细的命令行操作指南及关键参数说明,适用于具备基础 Linux 和 Python 知识的开发者进行大语言模型微调实践。

修罗发布于 2026/4/5更新于 2026/10/23108 浏览
使用 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
bash

# 加载 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 --upgrade 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 https://huggingface.co/datasets/chicheng/mllm_robot
# 移动数据集到 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_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 指定模型路径;template 选择对话模板(如 qwen3_5);trust_remote_code 设为 true 以支持自定义结构。
  • 训练参数:stage: sft 表示监督微调;finetuning_type: lora 使用低秩适配;dataset 指定数据集中名称;learning_rate 通常设为 1e-4;bf16 开启混合精度训练。
  • 输出参数:output_dir 保存检查点和权重;logging_steps 控制日志频率。
  • 硬件相关:fp16: false 因已启用 bf16;ddp_timeout 设置分布式超时。

使用单卡训练命令:

CUDA_VISIBLE_DEVICES=0 llamafactory-cli train train_qwen_robot.yaml

多卡训练命令:

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

npu-smi info

可以看到 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 命令的内容去提问,查看输出。

启动 Web UI 命令:

llamafactory-cli webui

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

可能出现的问题

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

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

目录

  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. 移动数据集到 LlamaFactory/data 文件夹
  18. 然后我们到 LlamaFactory/data 目录来解压数据集
  19. 模型微调
  20. 训练脚本准备
  21. 模型参数
  22. 或您的本地模型路径
  23. 对于 Qwen 模型通常需要
  24. 训练参数
  25. 输出参数
  26. 硬件与分布式相关
  27. 对比训练前后的模型
  28. 可能出现的问题
  29. 若执行 llama-factory 的相关提示找不到命令,需设置一下变量,将包路径添加至环境变量中

更多推荐文章

查看全部
  • 机器人重力补偿技术的 MuJoCo 实现解析
  • DeepSeek-R1 大模型基于 MS-Swift 框架部署推理与微调实践
  • ComfyUI Manager 使用指南:插件与模型管理优化
  • llama.cpp 多环境部署指南:CPU 到 CUDA/Metal 高效推理
  • Stable Diffusion 结合 AI 监控:智能安防原型搭建实战
  • GLM-4.6V-Flash 实时推理方案:按秒计费与成本精确控制
  • DeepSeek 高薪招聘 AI 人才,实习生月薪过万引发行业关注
  • 海螺 AI 多模态架构解析与 API 接入指南
  • OpenClaw 对接飞书机器人配置踩坑:消息不回与 Gateway 断开排查
  • Java synchronized 关键字详解:从字节码到对象头与锁升级
  • 错排问题解析:定义、公式推导与编程实战
  • System Verilog 从基础到高级验证实战指南
  • 从记忆化搜索到动态规划:状态表示、转移方程与空间优化
  • 国内如何付费升级 GitHub Copilot 专业版
  • AI 辅助贪吃蛇游戏开发实战
  • 应届生春招避坑指南:识别三无公司与保障劳动权益
  • Open-WebUI 本地部署指南:构建私有化 AI 对话界面
  • Python 项目打包发布指南:从结构创建到 PyPI 上传
  • 璀璨星河 AI 绘画提示词优化技巧
  • Buzz 离线语音转文字工具:Whisper 模型集成与使用指南

相关免费在线工具

  • 加密/解密文本

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