Skip to content

Commit fb9c5a2

Browse files
committed
revert sdpa_mask_without_vmap changes
1 parent 1f714fe commit fb9c5a2

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

optimum/exporters/openvino/patching_utils.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -186,21 +186,23 @@ def _orig_sdpa_mask_without_vmap(
186186
# Compatibility wrapper for sdpa_mask_without_vmap from optimum.
187187
# The installed optimum version expects (batch_size, cache_position: Tensor, kv_length, ...),
188188
# but transformers >= 5.5 passes (batch_size, q_length: int, kv_length: int, q_offset: int, ...).
189-
def sdpa_mask_without_vmap(**kwargs):
190-
kwargs.pop("use_vmap", None)
191-
if is_transformers_version("<", "5"):
192-
return _orig_sdpa_mask_without_vmap(**kwargs)
193-
elif (
194-
is_transformers_version(">=", "5.4")
195-
and is_transformers_version("<", "5.9")
196-
and isinstance(kwargs.get("q_length", None), torch.Tensor)
197-
):
198-
q_length = kwargs.pop("q_length", None)
199-
q_offset = kwargs.pop("q_offset", 0)
200-
cache_position = torch.arange(q_offset, q_offset + q_length, device=q_length.device)
201-
return sdpa_mask(q_length=cache_position, use_vmap=False, **kwargs)
189+
def sdpa_mask_without_vmap(batch_size, q_length=None, kv_length=None, q_offset=0, kv_offset=0, **kwargs):
190+
import inspect
191+
192+
sig = inspect.signature(_orig_sdpa_mask_without_vmap)
193+
if is_transformers_version(">=", "5.5") and "cache_position" in sig.parameters and q_length is not None:
194+
# Old optimum signature: (batch_size, cache_position, kv_length, kv_offset, ...)
195+
cache_position = torch.arange(q_length, dtype=torch.long) + q_offset
196+
kwargs.pop("q_offset", None)
197+
kwargs.pop("allow_is_bidirectional_skip", None)
198+
kwargs.pop("allow_torch_fix", None)
199+
kwargs.pop("use_vmap", None)
200+
kwargs.pop("device", None)
201+
return _orig_sdpa_mask_without_vmap(batch_size, cache_position, kv_length, kv_offset=kv_offset, **kwargs)
202202
else:
203-
return sdpa_mask(use_vmap=False, **kwargs)
203+
return _orig_sdpa_mask_without_vmap(
204+
batch_size, q_length=q_length, kv_length=kv_length, q_offset=q_offset, kv_offset=kv_offset, **kwargs
205+
)
204206

205207

206208
# Adapted from https://github.com/huggingface/transformers/blob/v4.53.0/src/transformers/masking_utils.py#L433

0 commit comments

Comments
 (0)