华为910 train_full 微调 qwen2vl,解冻freeze_vision_tower,就报错OPS function error: Conv3DBackpropFilter【移动】
收藏回复举报
华为910 train_full 微调 qwen2vl,解冻freeze_vision_tower,就报错OPS function error: Conv3DBackpropFilter【移动】
t('forum.solved') 已解决
新人帖
发表于2025-03-18 08:55:32
0 查看

华为910 train_full 微调 qwen2vl,解冻freeze_vision_tower,就报错OPS function error: Conv3DBackpropFilter
llamafactory env 环境如下:

  • llamafactory版本: 0.9.2
  • 平台:Linux-4.19.90-24.4.v2101.ky10.aarch64-aarch64-with-glibc2.35
  • Python 版本:3.11.10
  • PyTorch 版本:2.4.0 (NPU)
  • 变形金刚版本:4.49.0
  • 数据集版本:3.3.2
  • 加速版本:1.4.0
  • PEFT 版本:0.12.0
  • TRL 版本:0.9.6
  • NPU 类型:Ascend910
  • CANN 版本:8.0.RC2
  • DeepSpeed 版本:0.16.4

torch 和 torch-npu 尝试过 2.1.0和2.3.0版本,但都是报一样的错误。

具体的错误代码:
[rank0]: 回溯(最近调用最后):
[rank0]: 文件 “/home/LLaMA-Factory/src/llamafactory/launcher.py”, 第 23 行, 在
[rank0]: launch()
[rank0]: 文件 “/home/LLaMA-Factory/src/llamafactory/launcher.py”, 第 19 行, 在 launch
[rank0]: run_exp()
[rank0]: 文件 “/home/LLaMA-Factory/src/llamafactory/train/tuner.py”, 第 103 行,run_exp
[rank0]: _training_function(config={“args”: args, “callbacks”:callbacks})
[rank0]: 文件 “/home/LLaMA-Factory/src/llamafactory/train/tuner.py”, 第 68 行, _training_function
[rank0]: run_sft(model_args, data_args, training_args, finetuning_args, generating_args, callbacks)
[rank0]: 文件 “/home/LLaMA-Factory/src/llamafactory/train/sft/workflow.py”, 第 102 行, run_sft
[rank0]: train_result = trainer.train(resume_from_checkpoint=training_args.resume_from_checkpoint)
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: 文件 “/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/transformers/trainer.py”,第 2241 行,在训练
中 [rank0]: 返回 inner_training_loop(
[rank0]: ^^^^^^^^^^^^^^^^^^^^
[rank0]: 文件 “/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/transformers/trainer.py”,第 2548 行,_inner_training_loop
[排名 0]:tr_loss_step = self.training_step(模型、输入、num_items_in_batch)
[排名 0]:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[排名 0]:文件“/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/transformers/trainer.py”,第 3740 行,training_step
[排名 0]:self.accelerator.backward(loss, **kwargs)
[rank0]:文件“/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/accelerate/accelerator.py”,第 2321 行,向后
[rank0]:self.deepspeed_engine_wrapped.backward(loss, **kwargs)
[rank0]:文件“/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/accelerate/utils/deepspeed.py”,第 266 行,向后
[rank0]:self.engine.backward(loss, **kwargs)
[rank0]:文件“/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/deepspeed/utils/nvtx.py”,第 18 行,wrapped_fn
[rank0]:ret_val = func(*args, **kwargs)
[rank0]:^^^^^^^^^^^^^^^^^^^^^
[rank0]:文件“/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/deepspeed/runtime/engine.py”,第 2139 行,向后
[rank0]:self.optimizer.backward(loss)
[rank0]: 文件 “/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/deepspeed/runtime/bf16_optimizer.py”, 第 326 行, 向后
[rank0]: loss.backward(**bwd_kwargs)
[rank0]: 文件 “/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/torch/_tensor.py”,第 521 行,向后
[rank0]: torch.autograd.backward(
[rank0]: 文件 “/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/torch/autograd/init.py“, 第 289 行, 向后
[rank0]: _engine_run_backward(
[rank0]: 文件 ”/root/anaconda3/envs/llamafactory/lib/python3.11/site-packages/torch/autograd/graph.py“, 第 768 行, _engine_run_backward
[rank0]: return Variable._execution_engine.run_backward( # 调用 C++ 引擎以运行向后传递
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: RuntimeError: InnerRun:build/CMakeFiles/torch_npu.dir/compiler_depend.ts:218 OPS函数错误: Conv3DBackpropFilter,错误码500002
[rank0]: [错误] 2025-03-18-00:28:22 (PID:128198, Device:0, RankID:0) ERR01100 OPS调用acl api失败
[rank0]: [错误]:系统出现GE错误。
[rank0]:根据升序日志中的错误信息进行修复。
[rank0]: E69999: 内部错误!
[排名 0]: E69999: 2025-03-18-00:28:22.085.820 op[Conv3DBackpropFilter6], 非法格式[FUNC:Conv3DBackpropFilterInfer][FILE:nn_calculation_ops.cc][LINE:9780]
[rank0]: 回溯(最近调用最后):
[排名0]: Sessin_id 0 不存在,graph_id 5[FUNC:GetJsonObject][FILE:analyzer.cc][LINE:162]
[rank0]: 参数:graph_info 为 nullptr,检查无效[FUNC:DoAnalyze][FILE:analyzer.cc][LINE:260]
[rank0]:参数:graph_info 为 nullptr,检查无效[FUNC:SaveAnalyzerDataToFile][FILE:analyzer.cc][LINE:217]
[rank0]:调用 node:Conv3DBackpropFilter6(Conv3DBackpropFilter) 的 InferShapeAndType 失败[FUNC:Infer][FILE:infershape_pass.cc][LINE:120]
[rank0]:在 node:Conv3DBackpropFilter6 上传递 InferShapePass 失败,ret:4294967295[FUNC:RunPassesOnNode][FILE:base_pass.cc][LINE:570]
[rank0]:构建图失败,图 id:5,ret:1343242270[FUNC:BuildModelWithGraphId][FILE:ge_generator.cc][LINE:1615]
[rank0]:[Build][SingleOpModel]调用 ge 接口生成器。BuildSingleOpModel 失败。ge result = 1343242270[FUNC:ReportCallError][FILE:log_inner.cpp][LINE:161]
[rank0]: [构建][作]构建作模型失败[FUNC:ReportInnerError][FILE:log_inner.cpp][LINE:145]
[rank0]: 构建作模型失败,结果 = 500002[FUNC:ReportInnerError][FILE:log_inner.cpp][LINE:145]

这是我启动训练的命令:

#!/bin/bash
export ASCEND_LAUNCH_BLOCKING=1
export HCCL_CONNECT_TIMEOUT=3600 # 将超时间隔设置为300秒
FORCE_TORCHRUN=1 ASCEND_RT_VISIBLE_DEVICES=0 FORCE_TORCHRUN=1 NPROC_PER_NODE=1 NNODES=1 llamafactory-cli train examples/train_full/qwen2vl_full_sft.yaml

这是我qwen2vl_full_sft.yaml的配置:

model_name_or_path:/home/weights/Qwen2-VL-7B-Instruct
image_max_pixels:262144
video_max_pixels:16384
trust_remote_code:true

方法

stage: sft
do_train: true
finetuning_type: full
freeze_vision_tower: false # choices: [true, false]
freeze_multi_modal_projector: true # choices: [true, false]
freeze_language_model: true # 选择: [true, false]
deepspeed: examples/deepspeed/ds_z0_config.json # choices: [ds_z0_config.json, ds_z2_config.json, ds_z3_config.json]

数据

数据集:mllm_med
模板:qwen2_vl
cutoff_len:2048
max_samples:40000
overwrite_cache:真
preprocessing_num_workers:16
dataloader_num_workers:8

输出

output_dir:保存/qwen2_vl-7b/full/sft
logging_steps:10
save_steps:100
plot_loss:真
overwrite_output_dir:真
save_only_model:假

火车

per_device_train_batch_size:2
gradient_accumulation_steps:16
learning_rate:1.0e-5
num_train_epochs:1.0
lr_scheduler_type:余弦
warmup_ratio:0.1
BF16:真
ddp_timeout:180000000
resume_from_checkpoint:null

评估

#val_size: 0.1
#per_device_eval_batch_size: 2
#eval_strategy: 步骤
#eval_steps: 200

感谢大佬!

基本可以确定是deepspeed的适配问题,只需要把配置文件的deepspeed: examples/deepspeed/ds_z0_config.json # choices: [ds_z0_config.json, ds_z2_config.json, ds_z3_config.json] 注释了,就可以启动了

因此,还需要帮忙协调下,有没有配合版本的华为的deepspeed的库

本帖最后由 匿名用户2025/03/18 14:23:34 编辑

我要发帖子