@@ -243,8 +243,8 @@ def test_pipeline_cpu_device_set(
243243 "hf-internal-testing/tiny-bert-for-token-classification" ,
244244 "token-classification" ,
245245 10 ,
246- 1 ,
247- ), # Neither pad_token nor eos_token defined revert to 1
246+ 10 ,
247+ ),
248248 ],
249249)
250250def test_pipeline_checks_for_eos_and_pad_token (
@@ -265,3 +265,45 @@ def test_pipeline_checks_for_eos_and_pad_token(
265265 m = load_pipeline_from_settings (hf_settings , model_settings )
266266
267267 assert m ._batch_size == expected_batch_size
268+
269+
270+ @pytest .mark .parametrize ("pad_token_id" , [0 , 1 ])
271+ @pytest .mark .parametrize ("eos_token_id" , [None , 2 ])
272+ @patch ("mlserver_huggingface.common._get_pipeline_class" )
273+ def test_pipeline_preserves_configured_padding (
274+ mock_pipeline_factory , pad_token_id : int , eos_token_id : Optional [int ], caplog
275+ ):
276+ hf_settings = HuggingFaceSettings (pretrained_model = "some-model" )
277+ model_settings = ModelSettings (
278+ name = "foo" , implementation = HuggingFaceRuntime , max_batch_size = 8
279+ )
280+ mock_pipeline = mock_pipeline_factory .return_value .return_value
281+ mock_pipeline .tokenizer .pad_token_id = pad_token_id
282+ mock_pipeline .model .config .eos_token_id = eos_token_id
283+ mock_pipeline ._batch_size = model_settings .max_batch_size
284+
285+ pipeline = load_pipeline_from_settings (hf_settings , model_settings )
286+
287+ assert pipeline ._batch_size == model_settings .max_batch_size
288+ assert pipeline .tokenizer .pad_token_id == pad_token_id
289+ assert "setting batch size to 1" not in caplog .text
290+
291+
292+ @patch ("mlserver_huggingface.common._get_pipeline_class" )
293+ def test_pipeline_without_padding_or_eos_uses_single_batch (
294+ mock_pipeline_factory , caplog
295+ ):
296+ hf_settings = HuggingFaceSettings (pretrained_model = "some-model" )
297+ model_settings = ModelSettings (
298+ name = "foo" , implementation = HuggingFaceRuntime , max_batch_size = 8
299+ )
300+ mock_pipeline = mock_pipeline_factory .return_value .return_value
301+ mock_pipeline .tokenizer .pad_token_id = None
302+ mock_pipeline .model .config .eos_token_id = None
303+ mock_pipeline ._batch_size = model_settings .max_batch_size
304+
305+ pipeline = load_pipeline_from_settings (hf_settings , model_settings )
306+
307+ assert pipeline ._batch_size == 1
308+ assert pipeline .tokenizer .pad_token_id is None
309+ assert "setting batch size to 1" in caplog .text
0 commit comments