@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 96860af655
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 10, 16:30 UTC

[Model] rename use_pad_token to use_sep_token (#31784)

Signed-off-by: wang.yuqi <yuqi.wang@daocloud.io>

wang.yuqi committed Jan 6, 2026 at 22:16 UTC 96860af655688163d0228e128a06dd6c462be271
5 files changed +33 -25
examples/pooling/score/convert_model_to_seq_cls.py
+7 -7
@@ -108,7 +108,7 @@ method_map = {
108
109
110 def converting(
111 - model_name, classifier_from_tokens, path, method, use_pad_token=False, device="cpu"
111 + model_name, classifier_from_tokens, path, method, use_sep_token=False, device="cpu"
112 ):
113 """
114 Main conversion function to transform a CausalLM model to SequenceClassification.
@@ -118,7 +118,7 @@ def converting(
118 classifier_from_tokens: List of tokens used for classification
119 path: Output path to save the converted model
120 method: Conversion method ('from_2_way_softmax' or 'no_post_processing')
121 - use_pad_token: Whether to use padding token in the sequence classification model
121 + use_sep_token: Whether to use separating token in the sequence classification model
122 device: Device to load the model on ('cpu' or 'cuda')
123 """
124 assert method in method_map, f"Unknown method: {method}"
@@ -149,10 +149,10 @@ def converting(
149 causal_lm, seq_cls_model, tokenizer, classifier_from_tokens, device
150 )
151
152 - # Configure padding token settings
153 - # Note: Reranker models typically don't use padding tokens by default
154 - seq_cls_model.config.use_pad_token = use_pad_token
155 - seq_cls_model.config.pad_token_id = tokenizer.pad_token_id
152 + # Configure separating token settings
153 + # Note: `llm as reranker` defaults to not using separating token.
154 + seq_cls_model.config.use_sep_token = use_sep_token
155 + seq_cls_model.config.sep_token_id = tokenizer.sep_token_id
156
157 # Save the converted model and tokenizer
158 seq_cls_model.save_pretrained(path)
@@ -203,6 +203,6 @@ if __name__ == "__main__":
203 model_name=args.model_name,
204 classifier_from_tokens=json.loads(args.classifier_from_tokens),
205 method=args.method,
206 - use_pad_token=args.use_pad_token,
206 + use_sep_token=args.use_sep_token,
207 path=args.path,
208 )
tests/entrypoints/pooling/score/test_utils.py
+8 -8
@@ -51,9 +51,9 @@ def llm_reranker_model_config():
51 CROSS_ENCODER_MODEL_ID,
52 runner="pooling",
53 )
54 - # use_pad_token is a property that reads from hf_config,
54 + # use_sep_token is a property that reads from hf_config,
55 # so we set it there to override the default (True)
56 - config.hf_config.use_pad_token = False
56 + config.hf_config.use_sep_token = False
57 return config
58
59
@@ -230,7 +230,7 @@ class TestGetScorePrompt:
230 cross_encoder_tokenizer, full_prompt, engine_prompt
231 )
232
233 - def test_fallback_with_pad_token(
233 + def test_fallback_with_sep_token(
234 self,
235 cross_encoder_model_config,
236 cross_encoder_tokenizer,
@@ -238,7 +238,7 @@ class TestGetScorePrompt:
238 mock_model_no_score_template,
239 ):
240 """Test fallback path when ChatTemplateResolutionError
241 - and use_pad_token=True."""
241 + and use_sep_token=True."""
242 with (
243 patch(
244 "vllm.model_executor.model_loader.get_model_cls",
@@ -250,7 +250,7 @@ class TestGetScorePrompt:
250 ),
251 ):
252 full_prompt, engine_prompt = get_score_prompt(
253 - cross_encoder_model_config, # use_pad_token=True
253 + cross_encoder_model_config, # use_sep_token=True
254 cross_encoder_tokenizer,
255 tokenization_kwargs,
256 "query",
@@ -281,7 +281,7 @@ class TestGetScorePrompt:
281 add_special_tokens=False,
282 )
283
284 - def test_fallback_without_pad_token(
284 + def test_fallback_without_sep_token(
285 self,
286 llm_reranker_model_config,
287 cross_encoder_tokenizer,
@@ -289,7 +289,7 @@ class TestGetScorePrompt:
289 mock_model_no_score_template,
290 ):
291 """Test fallback path when ChatTemplateResolutionError
292 - and use_pad_token=False."""
292 + and use_sep_token=False."""
293 with (
294 patch(
295 "vllm.model_executor.model_loader.get_model_cls",
@@ -301,7 +301,7 @@ class TestGetScorePrompt:
301 ),
302 ):
303 full_prompt, engine_prompt = get_score_prompt(
304 - llm_reranker_model_config, # use_pad_token=False
304 + llm_reranker_model_config, # use_sep_token=False
305 cross_encoder_tokenizer,
306 tokenization_kwargs,
307 "query",
vllm/config/model.py
+12 -4
@@ -1434,10 +1434,18 @@ class ModelConfig:
1434 return getattr(self.hf_config, "matryoshka_dimensions", None)
1435
1436 @property
1437 - def use_pad_token(self) -> bool:
1438 - # cross_encoder models defaults to using pad_token.
1439 - # `llm as reranker` models defaults to not using pad_token.
1440 - return getattr(self.hf_config, "use_pad_token", True)
1437 + def use_sep_token(self) -> bool:
1438 + # cross_encoder models defaults to using separating token.
1439 + # `llm as reranker` defaults to not using separating token.
1440 +
1441 + use_pad_token = getattr(self.hf_config, "use_pad_token", None)
1442 + if use_pad_token is not None:
1443 + logger.warning_once(
1444 + "use_pad_token has been deprecated; please use use_sep_token instead."
1445 + )
1446 + return use_pad_token
1447 +
1448 + return getattr(self.hf_config, "use_sep_token", True)
1449
1450 @property
1451 def head_dtype(self) -> torch.dtype:
vllm/entrypoints/score_utils.py
+3 -3
@@ -199,14 +199,14 @@ def get_score_prompt(
199 full_prompt = _apply_model_score_template(model_config, prompt_1, prompt_2)
200 prompt_inputs = tokenizer(full_prompt, **tokenization_kwargs)
201 else:
202 - if model_config.use_pad_token:
203 - # cross_encoder models defaults to using pad_token.
202 + if model_config.use_sep_token:
203 + # cross_encoder models defaults to using separating token.
204 prompt_inputs = tokenizer(
205 text=prompt_1, text_pair=prompt_2, **tokenization_kwargs
206 )
207 full_prompt = tokenizer.decode(prompt_inputs["input_ids"])
208 else:
209 - # `llm as reranker` models defaults to not using pad_token.
209 + # `llm as reranker` defaults to not using separating token.
210 full_prompt = prompt_1 + prompt_2
211 prompt_inputs = tokenizer(text=full_prompt, **tokenization_kwargs)
212 return full_prompt, prompt_inputs
vllm/model_executor/models/adapters.py
+3 -3
@@ -382,9 +382,9 @@ class SequenceClassificationConfig(VerifyAndUpdateConfig):
382 else:
383 text_config.num_labels = len(tokens)
384
385 - # `llm as reranker` defaults to not using pad_token
386 - use_pad_token = getattr(text_config, "use_pad_token", False)
387 - text_config.use_pad_token = use_pad_token
385 + # `llm as reranker` defaults to not using separating token.
386 + use_sep_token = getattr(text_config, "use_sep_token", False)
387 + text_config.use_sep_token = use_sep_token
388
389
390 def load_weights_using_from_2_way_softmax(