Skip to content

Commit 047e30b

Browse files
set to static shape
1 parent d260216 commit 047e30b

File tree

4 files changed

+37
-7
lines changed

4 files changed

+37
-7
lines changed

optimum/exporters/openvino/model_configs.py

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -349,13 +349,40 @@ class DummyQwen3VLLMInputGenerator(DummyTextInputGenerator):
349349
"visual_pos_masks",
350350
"deepstack_visual_embeds",
351351
)
352-
352+
353+
def __init__(
354+
self,
355+
task: str,
356+
normalized_config: NormalizedTextConfig,
357+
batch_size: int = DEFAULT_DUMMY_SHAPES["batch_size"],
358+
sequence_length: int = DEFAULT_DUMMY_SHAPES["sequence_length"],
359+
num_choices: int = DEFAULT_DUMMY_SHAPES["num_choices"],
360+
random_batch_size_range: Optional[Tuple[int, int]] = None,
361+
random_sequence_length_range: Optional[Tuple[int, int]] = None,
362+
random_num_choices_range: Optional[Tuple[int, int]] = None,
363+
padding_side: str = "right",
364+
**kwargs,
365+
):
366+
super().__init__(
367+
task=task,
368+
normalized_config=normalized_config,
369+
batch_size=batch_size,
370+
sequence_length=sequence_length,
371+
num_choices=num_choices,
372+
random_batch_size_range=random_batch_size_range,
373+
random_sequence_length_range=random_sequence_length_range,
374+
random_num_choices_range=random_num_choices_range,
375+
padding_side=padding_side,
376+
**kwargs,
377+
)
378+
self.embed_dim = normalized_config.hidden_size
379+
353380
def generate(self, input_name: str, framework: str = "pt", int_dtype: str = "int64", float_dtype: str = "fp32", bool_dtype: str = "bool"):
354381
if input_name == "deepstack_visual_embeds":
355-
return self.random_float_tensor([3, 32, 2560], framework=framework, dtype=float_dtype)
382+
return self.random_float_tensor([3, 2*self.sequence_length, self.embed_dim], framework=framework, dtype=float_dtype)
356383
if input_name == "visual_pos_masks":
357384
return self.constant_tensor(
358-
shape=[self.batch_size, 16],
385+
shape=[self.batch_size, self.sequence_length],
359386
framework=framework,
360387
value=1,
361388
dtype=DTYPE_MAPPER.pt(bool_dtype),
@@ -381,7 +408,7 @@ class Qwen3VLTextOpenVINOConfig(TextDecoderWithPositionIdsOnnxConfig):
381408
def inputs(self) -> Dict[str, Dict[int, str]]:
382409
common_inputs = super().inputs
383410
common_inputs["visual_pos_masks"] = {0: "batch_size", 1: "sequence_length"}
384-
common_inputs["deepstack_visual_embeds"] = {0: "num_layers", 1: "visual_seqlen", 2: "embed_dim"}
411+
common_inputs["deepstack_visual_embeds"] = {0: "num_layers", 1: "visual_seqlen"}
385412
return common_inputs
386413

387414
def patch_model_for_export(
@@ -3962,7 +3989,7 @@ def inputs(self) -> Dict[str, Dict[int, str]]:
39623989
}
39633990
if self._behavior == Qwen3VLConfigBehavior.VISION_EMBEDDINGS_POS:
39643991
return {
3965-
"input": {0: "sequence_length", 1: "sequence_length"},
3992+
"input": {1: "sequence_length"},
39663993
}
39673994

39683995

optimum/exporters/openvino/utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ def get_submodels(model):
228228
"phi3_v",
229229
"qwen2_vl",
230230
"qwen2_5_vl",
231+
"qwen3_vl",
231232
"got_ocr2",
232233
"gemma3",
233234
"idefics3",

optimum/intel/openvino/modeling_visual_language.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,12 @@ def prepare_inputs(
201201
inputs["visual_pos_masks"] = torch.zeros(1, 1, dtype=torch.bool)
202202

203203
if "deepstack_visual_embeds" in self.input_names:
204+
num_layers = len(self.config.vision_config.deepstack_visual_indexes)
205+
emd_dim = self.config.text_config.hidden_size
204206
if isinstance(deepstack_visual_embeds, list):
205207
inputs["deepstack_visual_embeds"] = torch.Tensor(deepstack_visual_embeds)
206208
else:
207-
inputs["deepstack_visual_embeds"] = torch.zeros((3, 1, 1), dtype=torch.float32)
209+
inputs["deepstack_visual_embeds"] = torch.zeros((num_layers, 1, emd_dim), dtype=torch.float32)
208210
if "token_type_ids" in self.input_names:
209211
if token_type_ids is None:
210212
token_type_ids = np.zeros(inputs_embeds.shape[:2], dtype=int)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
INSTALL_REQUIRE = [
3030
"torch>=1.11",
31-
"optimum==",
31+
"optimum",
3232
"transformers>=4.36",
3333
"datasets>=1.4.0",
3434
"setuptools",

0 commit comments

Comments
 (0)