[Fix] Fix DeepSeek V3.2 "no attr" error (#5147)

### What this PR does / why we need it?
Extracts repeated `attn_metadata[layer_name].decode` access into a
single variable to improve code readability and reduce redundancy.

Uses `getattr` with a default value to safely access the decode
attribute, making the code more defensive against potential attribute
errors.

### Does this PR introduce _any_ user-facing change?
None.

### How was this patch tested?
None.

- vLLM version: v0.12.0
- vLLM main:
ad32e3e19c

Signed-off-by: Yizhou Liu <liu_yizhou@outlook.com>
This commit is contained in:
Yizhou
2025-12-18 14:46:41 +08:00
committed by GitHub
parent b0376abd4c
commit 543f122101

View File

@@ -780,15 +780,16 @@ class MtpProposer(Proposer):
hidden_states)
for layer_name in self.attn_layer_name:
if self.use_async_scheduling and attn_metadata[
layer_name].decode is not None:
actual_size = len(attn_metadata[layer_name].decode.
actual_seq_lengths_q)
decode_metadata = getattr(attn_metadata[layer_name],
"decode", None)
if self.use_async_scheduling and decode_metadata is not None:
actual_size = len(
decode_metadata.actual_seq_lengths_q)
attn_metadata[layer_name].decode.seq_lens_list = \
attn_metadata[layer_name].decode.seq_lens_list[:actual_size]
attn_metadata[layer_name].decode.block_table = \
attn_metadata[layer_name].decode.block_table[:actual_size]
decode_metadata.seq_lens_list = \
decode_metadata.seq_lens_list[:actual_size]
decode_metadata.block_table = \
decode_metadata.block_table[:actual_size]
hidden_states = self.model(input_ids=input_ids,
positions=positions,