在魔乐社区使用llama-factory微调Qwen3.5-4B模型

在魔乐社区使用llama-factory微调Qwen3.5-4B模型

微调前期准备

下载qwen3.5-4B模型

# 首先保证已安装git-lfs(https://git-lfs.com)git lfs installgit clone https://modelers.cn/Qwen-AI/Qwen3.5-4B.git 

下载Llama-factory

git clone --depth1 https://gh.llkk.cc/https://github.com/hiyouga/LlamaFactory.git 
在这里插入图片描述

微调环境搭建

我们依然是搭建一个miniconda

#清除当前shell会话中的PYTHONPATH环境变量unset PYTHONPATH # 安装minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh bash Miniconda3-latest-Linux-aarch64.sh conda config --set auto_activate_base falsebash#加载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 https://modelers.cn/chicheng/mllm_robot.git # 移动数据集到LlamaFactory/data文件夹cd mllm_robot mv mllm_robot.zip /home/openmind/LlamaFactory/data #然后我们到LlamaFactory/data目录来解压数据集cd 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:truefinetuning_type: lora # 使用LoRAlora_target: q_proj,k_proj,v_proj,o_proj # LoRA作用模块 (可按需调整)dataset: mllm_robot,mllm_robot_en # 使用两个数据集 (用逗号分隔)learning_rate:1.0e-4num_train_epochs:5.0per_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:10save_steps:500overwrite_output_dir:true# 硬件与分布式相关 fp16:false# 已启用bf16,关闭fp16避免冲突ddp_timeout:180000# 分布式超时设置

命令解释的内容:

# ==================== 模型参数 ==================== model_name_or_path: /home/openmind/Qwen3.5-4B # 模型路径:可以是本地路径(如本例),也可以是 Hugging Face 模型 ID(例如 "Qwen/Qwen2.5-7B")# 如果从 Hugging Face 下载,确保网络通畅且有权访问。 template: qwen3_5 # 对话模板:根据模型系列选择,常见值:# - qwen3_5: 通义千问 Qwen3.5 系列# - qwen: 通用 Qwen 系列(包括 Qwen1.5/2/2.5)# - llama3: Llama-3 系列# - default: 基础模板(若不确定可先用此)# 模板影响输入格式(如角色标签、系统消息等),选错可能导致训练异常。 trust_remote_code: true# 是否信任远程代码:对于 Qwen、ChatGLM 等使用自定义模型结构的模型,必须设为 true。# ==================== 训练参数 ==================== stage: sft # 训练阶段:sft 表示监督微调(Supervised Fine-Tuning)# 其他可选值:# - pt: 预训练(Pretraining)# - rm: 奖励建模(Reward Modeling)# - dpo/kto/orpo: 偏好优化# - ppo: 强化学习微调(需额外配置) do_train: true# 是否执行训练:设为 true 时进行训练;false 时仅评估或推理。 finetuning_type: lora # 微调方法:# - lora: 低秩适配(参数高效,显存友好)# - full: 全参数微调(需更多显存)# - freeze: 冻结部分层,仅训练最后几层# - oft: 正交微调(另一种参数高效方法) lora_target: q_proj,k_proj,v_proj,o_proj # LoRA 作用的目标模块(以逗号分隔)。# 不同模型模块名不同,常用选项:# - q_proj, k_proj, v_proj, o_proj: 注意力层的线性层(适用于 Qwen/Llama)# - gate_proj, up_proj, down_proj: MLP 层(若需增加参数量)# - all: 所有线性层(参数量大,需注意显存)# 可根据需要增删模块,例如仅微调注意力层:q_proj,v_proj dataset: mllm_robot,mllm_robot_en # 训练数据集名称(多个用逗号分隔)。# 这些名称必须在 data/dataset_info.json 中预先定义。# 定义示例(在 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"}# }# 数据集文件需放在 data/ 目录下,格式参考官方文档。 learning_rate: 1.0e-4 # 初始学习率。LoRA 通常用 1e-4 左右,全量微调用 1e-5。# 可根据收敛情况调整,过大可能导致不收敛,过小则训练缓慢。 num_train_epochs: 5.0# 训练轮数(epoch)。一轮表示完整遍历一次训练集。# 根据数据集大小和任务复杂度调整,过小可能欠拟合,过大可能过拟合。 per_device_train_batch_size: 1# 每张 NPU/GPU 卡的 batch size。# 根据显存大小调整:显存充足可增大(如 2,4),显存不足则保持 1。# 多卡时,总 batch size = per_device_batch_size × 卡数 × gradient_accumulation_steps。 gradient_accumulation_steps: 16# 梯度累积步数。用于模拟更大的 batch size,不增加显存占用。# 总 batch size = per_device_batch_size × 卡数 × gradient_accumulation_steps。# 例如:单卡 batch=1,累积 16 步 → 实际 batch size = 16;# 双卡 batch=1,累积 16 步 → 实际 batch size = 32。# 根据训练稳定性和收敛速度调整,通常保持总 batch size 在 16~64 之间。 bf16: true# 使用 bfloat16 混合精度训练(节省显存,加速)。# 昇腾 910B 支持 bf16,可开启。若硬件不支持,需改为 false 并使用 fp16 或 fp32。# ==================== 输出参数 ==================== output_dir: /home/openmind/Qwen3.5-4B/lora/train_Qwen3.5-4B # 训练输出目录,用于保存:# - 模型检查点(checkpoint-xxx)# - 训练日志(trainer_log.jsonl)# - 最终 LoRA 权重(adapter_model.safetensors)# 确保路径可写,且无重要文件(若 overwrite_output_dir 设为 true 则会清空)。 logging_steps: 10# 每隔多少步打印一次训练日志(显示 loss、学习率等)。方便监控训练状态。 save_steps: 500# 每隔多少步保存一次检查点。保存的文件可用于恢复训练或后续推理。# 若设为 0 则禁用保存。 overwrite_output_dir: true# 若输出目录已存在,是否覆盖。设为 true 可自动清空旧文件,避免手动删除。# 若为 false 且目录存在,程序会报错退出。# ==================== 硬件与分布式相关 ==================== fp16: false# 是否使用 float16 混合精度。此处已启用 bf16,故设为 false,避免冲突。# 若硬件不支持 bf16,可改用 fp16,并确保同时关闭 bf16。 ddp_timeout: 180000# 分布式训练时进程间通信的超时时间(秒)。用于防止通信卡死。# 180000 秒约 50 小时,足够长时间训练。若网络不稳定可适当增大。# 仅在多卡训练时生效,单卡可忽略。

使用单卡训练命令:

CUDA_VISIBLE_DEVICES=0 llamafactory-cli train train_qwen_robot.yaml 
在这里插入图片描述

多卡训练命令:

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

npu-smi info 
在这里插入图片描述

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

WANDB_MODE=disabled FORCE_TORCHRUN=1CUDA_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 YAML 参数大全:
https://modelers.cn/blogs/chicheng/208/issues?blogId=208

启动 Web UI命令:

llamafactory-cli webui 

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

可能出现的问题

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

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

Read more

Pytorch和Tensorflow两大架构如何安装?想在自己的电脑上跑神经网络?如何找到部署自己电脑版本的神经网络工具?人工智能专业的学生集合!!

人工智能研究方向的科研小白,天崩开局?手把手教搭建神经网络训练工具准备 第一章 前言 1.1 研究背景 在当今科技迅猛发展的时代浪潮中,人工智能无疑已成为推动各领域变革与创新的核心驱动力。而神经网络,作为人工智能领域的基石与先锋,正以其独特的魅力与强大的效能,重塑着我们对世界的认知与交互方式。 近年来,生成式 AI 的爆发式增长成为科技领域最耀眼的现象之一。以Deep Seek为代表的大型语言模型,凭借其强大的自然语言处理能力,实现了与人类流畅、智能的对话交互,从文本创作、智能客服到知识问答,广泛应用于各个行业,为人们的工作与生活带来了前所未有的便利。图像生成领域,StableDiffusion 等模型能够根据简单的文本描述,创作出令人惊叹的高质量图像,激发了艺术创作的无限可能。这些生成式 AI 的卓越表现,背后离不开神经网络的有力支撑。神经网络通过对海量数据的深度挖掘与学习,掌握了语言、图像等信息的内在模式与规律,从而实现了精准的生成与创造。 1.2 研究意义 在当下,全国各大高校对计算机专业展现出了极高的热情,招生规模不断扩张,新的专业方向与课程设置也如雨后春笋般

ZeroClaw Reflex UI完整搭建流程——ZeroClaw Gateway + LM Studio + Reflex 本地 AI 管理面板

ZeroClaw Reflex UI完整搭建流程——ZeroClaw Gateway + LM Studio + Reflex 本地 AI 管理面板

🦀 ZeroClaw Reflex UI 完整搭建流程 ZeroClaw Gateway + LM Studio + Reflex 本地 AI 管理面板 2026 年 2 月 相似项目部署参考: 【OpenClaw 本地实战 Ep.1】抛弃 Ollama?转向 LM Studio!Windows 下用 NVIDIA 显卡搭建 OpenClaw 本地极速推理服务 【OpenClaw 本地实战 Ep.2】零代码对接:使用交互式向导快速连接本地 LM Studio 用 CUDA GPU 推理 【OpenClaw 本地实战 Ep.3】突破瓶颈:强制修改

OpenClaw 实操指南 07:飞书 CLI 开源:让 AI 真正接管你的飞书全流程

OpenClaw 实操指南 07:飞书 CLI 开源:让 AI 真正接管你的飞书全流程

2026年3月28日,飞书官方开源larksuite/cli(v1.0.0),以200+命令、19个AI Agent Skills,将飞书2500+开放API封装为命令行接口,面向人类开发者与AI Agent双用户,重构办公协作的操作范式。这不仅是工具升级,更是飞书从“GUI服务人”到“GUI+CLI双态并行”的战略跃迁——GUI给人交互,CLI给AI执行,让AI真正成为办公的“执行者”而非“旁观者”。 一、飞书CLI是什么:从API到命令行的能力跃迁 1. 核心定位与架构 飞书CLI是官方开源、MIT协议、免费商用的命令行工具,核心定位是让AI Agent直接操控飞书全量数据与业务,而非仅做信息查询。其三层架构清晰划分能力边界: * Shortcuts层:高频快捷命令(如lark-cli calendar +agenda查今日日程),降低人类使用门槛。 * API Commands层:200+

AI赋能专利翻译,八月瓜科技“妙算翻译大模型”亮相国际论坛

AI赋能专利翻译,八月瓜科技“妙算翻译大模型”亮相国际论坛

当前,国家高度重视人工智能与知识产权融合发展,《新一代人工智能发展规划》明确提出“推动人工智能在知识产权检索、分析、翻译等领域的深度应用,提升知识产权服务效率与质量”,《“十四五”国家知识产权保护和运用规划》也强调“加强知识产权信息化、智能化基础设施建设,推动专利信息跨语言互通”。 顺应这一政策导向,专利领域对专业化翻译的需求愈发迫切。八月瓜科技“妙算翻译大模型”立足需求,凭借深厚的技术积累与精准的场景适配,成为破解行业痛点、助力跨境创新的核心力量。 国际论坛亮相获认可,产品实力彰显初心 日前,妙算翻译大模型凭借在专利翻译领域的突出实力与创新成果,亮相东盟+中日韩(10+3)人工智能产业发展论坛,成为论坛上聚焦知识产权服务智能化的亮点成果,获得了行业专家、参会企业及相关机构的高度关注与广泛认可。此次论坛亮相,不仅是对妙算翻译大模型技术实力与应用价值的权威肯定,更彰显了其在推动专利翻译智能化、打破跨国创新语言壁垒方面的重要作用,为其进一步拓展市场、服务更多科技创新主体奠定了坚实基础。 能获得行业广泛认可,核心源于产品本身的专业定位与硬核实力。妙算翻译大模型在语言