@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / f2718d2948
Fork 0

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],