model: support Qwen3.5 (#18489)

Co-authored-by: 瑀澈 <yuche.lz@alibaba-inc.com>
This commit is contained in:
Zheng Li
2026-02-10 00:27:59 +08:00
committed by GitHub
parent 0b4d4f2838
commit 27c447653d
17 changed files with 1923 additions and 9 deletions

View File

@@ -104,6 +104,8 @@ class LogitsProcessorOutput:
## Part 5: Customized Info
customized_info: Optional[Dict[str, List[Any]]] = None
mm_input_embeds: Optional[torch.Tensor] = None
@dataclasses.dataclass
class LogitsMetadata:
@@ -146,6 +148,8 @@ class LogitsMetadata:
# Whether this batch is prefill-only (no token generation needed)
is_prefill_only: bool = False
mm_input_embeds: Optional[torch.Tensor] = None
@classmethod
def from_forward_batch(cls, forward_batch: ForwardBatch):
if (
@@ -196,6 +200,7 @@ class LogitsMetadata:
global_num_tokens_for_logprob_cpu=forward_batch.global_num_tokens_for_logprob_cpu,
global_num_tokens_for_logprob_gpu=forward_batch.global_num_tokens_for_logprob_gpu,
dp_padding_mode=DpPaddingMode.SUM_LEN,
mm_input_embeds=forward_batch.mm_input_embeds,
)
def compute_dp_attention_metadata(self):
@@ -341,6 +346,7 @@ class LogitsProcessor(nn.Module):
return LogitsProcessorOutput(
next_token_logits=sampled_logits,
hidden_states=hidden_states_to_store,
mm_input_embeds=logits_metadata.mm_input_embeds,
)
# Start to process input logprobs
@@ -386,6 +392,7 @@ class LogitsProcessor(nn.Module):
input_top_logprobs_idx=logprobs_result.input_top_logprobs_idx,
input_token_ids_logprobs_val=logprobs_result.input_token_ids_logprobs_val,
input_token_ids_logprobs_idx=logprobs_result.input_token_ids_logprobs_idx,
mm_input_embeds=logits_metadata.mm_input_embeds,
)
def _get_pruned_states(
@@ -1067,6 +1074,10 @@ class LogitsProcessor(nn.Module):
input_top_logprobs_idx=input_top_logprobs_idx,
input_token_ids_logprobs_val=input_token_ids_logprobs_val,
input_token_ids_logprobs_idx=input_token_ids_logprobs_idx,
# FIXME: These fields are not logits-related but are passed through here as a
# workaround since ForwardBatch is local to forward_batch_generation().
# They should be moved to GenerationBatchResult to keep this class clean.
mm_input_embeds=logits_metadata.mm_input_embeds,
)