modelscope / modelscope/ms-swift

Lora微调Qwen3-0.8B后使用swift deploy部署报错

Open
#8,263 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug stale
Dominant language
Python
Stars
15.7k
Forks
1.7k
Avg merge
1d 16h
Merged PRs (30d)
136

Description

Checklist / 检查清单
  • I have searched existing issues, and this is a new bug report. / 我已经搜索过现有的 issues,确认这是一个新的 bug report。
Bug Description / Bug 描述

使用以下命令启动服务,调用lora模型报错:
export CUDA_VISIBLE_DEVICES=0,1

swift deploy --port 8000 --served_model_name Qwen3.5 --adapters smoking=/data/train/models/Qwen/Qwen3.5-0.8B-Lora/smoking/v18-20260310-111827/checkpoint-30 --infer_backend transformers --temperature 0 --max_new_tokens 4096 --stream false --enable_thinking false

报错信息:
Exception in thread Thread-3 (_infer_worker):
Traceback (most recent call last):
File "/data/tools/anaconda3/envs/swift/lib/python3.12/threading.py", line 1075, in _bootstrap_inner
self.run()
File "/data/tools/anaconda3/envs/swift/lib/python3.12/threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/swift/infer_engine/transformers_engine.py", line 154, in _infer_worker
res_list_or_gen = self._infer(**kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/swift/infer_engine/transformers_engine.py", line 546, in _infer
res = infer_func(**kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/swift/infer_engine/transformers_engine.py", line 397, in _infer_full
output = dict(self.template.generate(self.model, **generate_kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/swift/template/base.py", line 666, in generate
return model.generate(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/peft/peft_model.py", line 2048, in generate
outputs = self.base_model.generate(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 124, in decorate_context
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/generation/utils.py", line 2668, in generate
result = decoding_method(
^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/generation/utils.py", line 2863, in _sample
outputs = self._prefill(input_ids, generation_config, model_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/generation/utils.py", line 3857, in _prefill
return self(**model_inputs, return_dict=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1776, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1787, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/accelerate/hooks.py", line 192, in new_forward
output = module._old_forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/utils/generic.py", line 841, in wrapper
output = func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/models/qwen3_5/modeling_qwen3_5.py", line 1938, in forward
outputs = self.model(
^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1776, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1787, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/utils/generic.py", line 841, in wrapper
output = func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/models/qwen3_5/modeling_qwen3_5.py", line 1663, in forward
image_outputs: BaseModelOutputWithPooling = self.get_image_features(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/utils/generic.py", line 841, in wrapper
output = func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/models/qwen3_5/modeling_qwen3_5.py", line 1546, in get_image_features
vision_output: BaseModelOutputWithPooling = self.visual(
^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1776, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1787, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/accelerate/hooks.py", line 192, in new_forward
output = module._old_forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/utils/generic.py", line 915, in wrapper
output = func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/utils/output_capturing.py", line 253, in wrapper
outputs = func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/models/qwen3_5/modeling_qwen3_5.py", line 1268, in forward
merged_hidden_states = self.merger(hidden_states)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1776, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1787, in _call_impl
return forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/accelerate/hooks.py", line 192, in new_forward
output = module._old_forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/transformers/models/qwen3_5/modeling_qwen3_5.py", line 959, in forward
x = self.linear_fc2(self.act_fn(self.linear_fc1(x)))
^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1776, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1882, in _call_impl
return inner()
^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1830, in inner
result = forward_call(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/peft/tuners/lora/layer.py", line 780, in forward
self._check_forward_args(x, *args, **kwargs)
File "/data/tools/anaconda3/envs/swift/lib/python3.12/site-packages/peft/tuners/lora/layer.py", line 526, in _check_forward_args
raise ValueError(msg)
ValueError: Length of adapter_names should be the same as the number of inputs, but got 1 and 368 respectively.

How to Reproduce / 如何复现

export CUDA_VISIBLE_DEVICES=0,1

swift deploy --port 8000 --served_model_name Qwen3.5 --adapters smoking=/data/train/models/Qwen/Qwen3.5-0.8B-Lora/smoking/v18-20260310-111827/checkpoint-30 --infer_backend transformers --temperature 0 --max_new_tokens 4096 --stream false --enable_thinking false

Additional Information / 补充信息

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with swift/infer_engine/transformers_engine.py, especially _infer_worker and _infer_full, then inspect the PEFT adapter_names error in the traceback. Re-run the supplied swift deploy command with the Qwen3.5 LoRA adapter; done means deployment can serve requests without the adapter_names length exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
backend, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.