From e4d9a6f8ff23da465d8339467beb53b2cf75633e Mon Sep 17 00:00:00 2001 From: Daniel Maddern Date: Wed, 19 Aug 2026 22:12:48 +0700 Subject: [PATCH] Fix position_embeddings unpack (3-tuple of cos/sin/-sin) --- src/h3_blackwell_runtime/qwen3vl_vision.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/h3_blackwell_runtime/qwen3vl_vision.py b/src/h3_blackwell_runtime/qwen3vl_vision.py index 7ed230a..a011059 100644 --- a/src/h3_blackwell_runtime/qwen3vl_vision.py +++ b/src/h3_blackwell_runtime/qwen3vl_vision.py @@ -273,7 +273,11 @@ class _VisionAttention(nn.Module): ) # RoPE in fp32 to avoid bf16 precision loss, then cast back. orig_dtype = query_states.dtype - query_states, key_states = _apply_rope_vision(query_states.float(), key_states.float(), position_embeddings.float()) + cos, sin, neg_sin = position_embeddings + query_states, key_states = _apply_rope_vision( + query_states.float(), key_states.float(), + (cos.float(), sin.float(), neg_sin.float()), + ) query_states, key_states = query_states.to(orig_dtype), key_states.to(orig_dtype) lengths = (cu_seqlens[1:] - cu_seqlens[:-1]).tolist() attn_outputs = []