MCPcopy Create free account
hub / github.com/PaddlePaddle/FastDeploy / _pool

Method _pool

fastdeploy/worker/gpu_model_runner.py:2648–2693  ·  view source on GitHub ↗
(self, hidden_states: paddle.Tensor, num_running_requests: int)

Source from the content-addressed store, hash-verified

2646 )
2647
2648 def _pool(self, hidden_states: paddle.Tensor, num_running_requests: int) -> Optional[ModelRunnerOutput]:
2649 num_scheduled_tokens = int(self.share_inputs["seq_lens_this_time"][:num_running_requests].sum())
2650 hidden_states = hidden_states[:num_scheduled_tokens]
2651
2652 prompt_lens = self.share_inputs["prompt_lens"][:num_running_requests]
2653 prompt_token_ids = self.share_inputs["prompt_ids"]
2654
2655 pooling_metadata = PoolingMetadata(
2656 prompt_lens=prompt_lens,
2657 prompt_token_ids=prompt_token_ids,
2658 pooling_params=self.pooling_params,
2659 )
2660
2661 num_scheduled_tokens_list = [
2662 int(self.share_inputs["seq_lens_this_time"][i]) for i in range(num_running_requests)
2663 ]
2664
2665 device_str = "gpu" if hidden_states.place.is_gpu_place() else "cpu"
2666 pooling_metadata.build_pooling_cursor(num_scheduled_tokens_list, device=device_str)
2667
2668 raw_pooler_output = self.model.pooler(hidden_states=hidden_states, pooling_metadata=pooling_metadata)
2669
2670 seq_lens_decoder = self.share_inputs["seq_lens_decoder"][:num_running_requests]
2671 seq_lens_encoder = self.share_inputs["seq_lens_encoder"][:num_running_requests]
2672
2673 pooler_output: list[Optional[paddle.Tensor]] = []
2674 pooler_output_idx = 0
2675
2676 for i, prompt_len in enumerate(pooling_metadata.prompt_lens):
2677 current_seq_len = num_scheduled_tokens_list[i]
2678
2679 if current_seq_len == 0:
2680 pooler_output.append(None)
2681 continue
2682
2683 total_processed = int(seq_lens_decoder[i]) + int(seq_lens_encoder[i])
2684
2685 if total_processed == int(prompt_len):
2686 output = raw_pooler_output[pooler_output_idx]
2687 else:
2688 output = None
2689
2690 pooler_output.append(output)
2691 pooler_output_idx += 1
2692
2693 return PoolerOutput(outputs=pooler_output)
2694
2695 def _execute_empty_input(self, forward_meta) -> None:
2696 """

Callers 1

_postprocessMethod · 0.95

Calls 3

build_pooling_cursorMethod · 0.95
PoolingMetadataClass · 0.90
PoolerOutputClass · 0.90

Tested by

no test coverage detected