vllm-forward
vllm/vllm/v1/worker/gpu_model_runner.py · ef9339e · L4136–4190 · 固定 commit 上游
这是固定版本源码的只读摘录;可在线阅读,也可通过上游链接查看原文件。
4136 with (
4137 set_forward_context(
4138 attn_metadata,
4139 self.vllm_config,
4140 num_tokens=num_tokens_padded,
4141 num_tokens_across_dp=num_tokens_across_dp,
4142 cudagraph_runtime_mode=cudagraph_mode,
4143 batch_descriptor=batch_desc,
4144 ubatch_slices=ubatch_slices_padded,
4145 slot_mapping=slot_mappings,
4146 skip_compiled=has_encoder_input,
4147 is_padding=is_padding,
4148 ),
4149 record_function_or_nullcontext("gpu_model_runner: forward"),
4150 self.maybe_get_kv_connector_output(
4151 scheduler_output,
4152 defer_finalize=defer_kv_connector_finalize,
4153 ) as kv_connector_output,
4154 ):
4155 model_output = self._model_forward(
4156 input_ids=input_ids,
4157 positions=positions,
4158 intermediate_tensors=intermediate_tensors,
4159 inputs_embeds=inputs_embeds,
4160 **model_kwargs,
4161 )
4162
4163 with record_function_or_nullcontext("gpu_model_runner: postprocess"):
4164 if self.use_aux_hidden_state_outputs:
4165 # True when EAGLE 3 is used.
4166 hidden_states, aux_hidden_states = model_output
4167 else:
4168 # Common case.
4169 hidden_states = model_output
4170 aux_hidden_states = None
4171
4172 if not self.broadcast_pp_output:
4173 # Common case.
4174 if not get_pp_group().is_last_rank:
4175 # Return the intermediate tensors.
4176 assert isinstance(hidden_states, IntermediateTensors)
4177 self.kv_connector_output = kv_connector_output
4178 return hidden_states
4179
4180 if self.is_pooling_model:
4181 # Return the pooling output.
4182 return self._pool(
4183 hidden_states,
4184 num_scheduled_tokens,
4185 num_scheduled_tokens_np,
4186 kv_connector_output,
4187 )
4188
4189 sample_hidden_states = hidden_states[logits_indices]
4190 logits = self.model.compute_logits(sample_hidden_states)