A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 14, 05:30 UTC
[Misc] Cleanup test conftest for deprecated encoder-decoder models (#25231)
Signed-off-by: Isotr0py <mozf@mail2.sysu.edu.cn>
Isotr0py committed
Sep 19, 2025 at 15:44 UTC
f2718d2948e83319d83dbbade1883fef2302357e
1 file changed
-138
tests/conftest.py
-138
@@ -244,39 +244,6 @@ class DecoderPromptType(Enum):
244
EMPTY_STR = 3
245
246
247
-@pytest.fixture
248
-def example_encoder_decoder_prompts(
249
-) -> dict[DecoderPromptType, list[ExplicitEncoderDecoderPrompt]]:
250
- '''
251
- Returns an encoder prompt list and a decoder prompt list, wherein each pair
252
- of same-index entries in both lists corresponds to an (encoder prompt,
253
- decoder prompt) tuple.
254
-
255
- Returns:
256
-
257
- * Encoder prompt list
258
- * Decoder prompt list (reverse of encoder prompt list)
259
- '''
260
-
261
- encoder_prompts = []
262
- for filename in _TEST_PROMPTS:
263
- encoder_prompts += _read_prompts(filename)
264
-
265
- custom_decoder_prompts = encoder_prompts[::-1]
266
- empty_str_decoder_prompts = [""] * len(encoder_prompts)
267
- none_decoder_prompts = [None] * len(encoder_prompts)
268
-
269
- # NONE decoder prompt type
270
- return {
271
- DecoderPromptType.NONE:
272
- zip_enc_dec_prompts(encoder_prompts, none_decoder_prompts),
273
- DecoderPromptType.EMPTY_STR:
274
- zip_enc_dec_prompts(encoder_prompts, empty_str_decoder_prompts),
275
- DecoderPromptType.CUSTOM:
276
- zip_enc_dec_prompts(encoder_prompts, custom_decoder_prompts),
277
- }
278
-
279
-
247
@pytest.fixture
248
def example_long_prompts() -> list[str]:
249
prompts = []
@@ -690,68 +657,6 @@ class HfRunner:
657
return [(output_ids, output_str, output_logprobs)
658
for output_ids, output_str, output_logprobs in outputs]
659
693
- def generate_encoder_decoder_greedy_logprobs_limit(
694
- self,
695
- encoder_decoder_prompts: list[ExplicitEncoderDecoderPrompt[str, str]],
696
- max_tokens: int,
697
- num_logprobs: Optional[int],
698
- images: Optional[PromptImageInput] = None,
699
- **kwargs: Any,
700
- ) -> list[TokensTextLogprobs]:
701
- '''
702
- Greedy logprobs generation for vLLM encoder/decoder models
703
- '''
704
-
705
- all_logprobs: list[list[dict[int, float]]] = []
706
- all_output_ids: list[list[int]] = []
707
- all_output_strs: list[str] = []
708
-
709
- for i, (encoder_prompt, decoder_prompt) in enumerate(
710
- to_enc_dec_tuple_list(encoder_decoder_prompts)):
711
- processor_kwargs: dict[str, Any] = {
712
- "text": encoder_prompt,
713
- "return_tensors": "pt",
714
- }
715
- if images is not None and images[i] is not None:
716
- processor_kwargs["images"] = images[i]
717
-
718
- encoder_inputs = self.processor(**processor_kwargs)
719
- encoder_inputs = self.wrap_device(encoder_inputs)
720
-
721
- if decoder_prompt is None:
722
- decoder_input_ids = None
723
- else:
724
- decoder_inputs = self.tokenizer(decoder_prompt,
725
- return_tensors="pt")
726
- decoder_input_ids = self.wrap_device(decoder_inputs.input_ids)
727
-
728
- output = self.model.generate(
729
- decoder_input_ids=decoder_input_ids,
730
- use_cache=True,
731
- do_sample=False,
732
- max_new_tokens=max_tokens,
733
- output_hidden_states=True,
734
- return_dict_in_generate=True,
735
- **encoder_inputs,
736
- **kwargs,
737
- )
738
-
739
- (
740
- seq_logprobs_lst,
741
- output_len,
742
- ) = self._hidden_states_to_logprobs(output.decoder_hidden_states,
743
- num_logprobs)
744
-
745
- all_logprobs.append(seq_logprobs_lst)
746
- seq_ids = output.sequences[0]
747
- output_ids = seq_ids[-output_len:]
748
- all_output_ids.append(output_ids.tolist())
749
- all_output_strs.append(self.tokenizer.decode(output_ids))
750
-
751
- outputs = zip(all_output_ids, all_output_strs, all_logprobs)
752
- return [(output_ids, output_str, output_logprobs)
753
- for output_ids, output_str, output_logprobs in outputs]
754
-
660
def encode(self, prompts: list[str], *args,
661
**kwargs) -> list[list[torch.Tensor]]:
662
return self.model.encode(prompts, *args, **kwargs)
@@ -940,26 +845,6 @@ class VllmRunner:
845
if sampling_params.prompt_logprobs is None else
846
toks_str_logsprobs_prompt_logprobs)
847
943
- def generate_encoder_decoder_w_logprobs(
944
- self,
945
- encoder_decoder_prompts: list[ExplicitEncoderDecoderPrompt[str, str]],
946
- sampling_params: SamplingParams,
947
- ) -> Union[list[TokensTextLogprobs],
948
- list[TokensTextLogprobsPromptLogprobs]]:
949
- '''
950
- Logprobs generation for vLLM encoder/decoder models
951
- '''
952
-
953
- assert sampling_params.logprobs is not None
954
- req_outputs = self.llm.generate(encoder_decoder_prompts,
955
- sampling_params=sampling_params)
956
- toks_str_logsprobs_prompt_logprobs = (
957
- self._final_steps_generate_w_logprobs(req_outputs))
958
- # Omit prompt logprobs if not required by sampling params
959
- return ([x[0:-1] for x in toks_str_logsprobs_prompt_logprobs]
960
- if sampling_params.prompt_logprobs is None else
961
- toks_str_logsprobs_prompt_logprobs)
962
-
848
def generate_greedy(
849
self,
850
prompts: Union[list[str], list[torch.Tensor]],
@@ -1037,29 +922,6 @@ class VllmRunner:
922
923
return perplexities
924
1040
- def generate_encoder_decoder_greedy_logprobs(
1041
- self,
1042
- encoder_decoder_prompts: list[ExplicitEncoderDecoderPrompt[str, str]],
1043
- max_tokens: int,
1044
- num_logprobs: Optional[int],
1045
- num_prompt_logprobs: Optional[int] = None,
1046
- skip_special_tokens: bool = True,
1047
- ) -> Union[list[TokensTextLogprobs],
1048
- list[TokensTextLogprobsPromptLogprobs]]:
1049
- greedy_logprobs_params = SamplingParams(
1050
- temperature=0.0,
1051
- max_tokens=max_tokens,
1052
- logprobs=num_logprobs,
1053
- prompt_logprobs=(num_prompt_logprobs),
1054
- skip_special_tokens=skip_special_tokens,
1055
- )
1056
- '''
1057
- Greedy logprobs generation for vLLM encoder/decoder models
1058
- '''
1059
-
1060
- return self.generate_encoder_decoder_w_logprobs(
1061
- encoder_decoder_prompts, greedy_logprobs_params)
1062
-
925
def generate_beam_search(
926
self,
927
prompts: list[str],