@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 9d1c474704
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 13, 10:45 UTC

[LoRA][1/N]Remove LoRA extra vocab (#28382)

Signed-off-by: Jee Jee Li <pandaleefree@gmail.com>

Jee Jee Li committed Nov 12, 2025 at 03:06 UTC 9d1c47470430ba31c02946aa1fd01aadf6e18b91
65 files changed +197 -754
vllm/model_executor/models/apertus.py
+5 -25
@@ -49,7 +49,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
49 from vllm.model_executor.layers.quantization import QuantizationConfig
50 from vllm.model_executor.layers.rotary_embedding import get_rope
51 from vllm.model_executor.layers.vocab_parallel_embedding import (
52 - DEFAULT_VOCAB_PADDING_SIZE,
52 ParallelLMHead,
53 VocabParallelEmbedding,
54 )
@@ -346,24 +345,18 @@ class ApertusModel(nn.Module):
345 config = vllm_config.model_config.hf_config
346 cache_config = vllm_config.cache_config
347 quant_config = vllm_config.quant_config
349 - lora_config = vllm_config.lora_config
348
349 self.config = config
350 self.quant_config = quant_config
353 - lora_vocab = (
354 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
355 - if lora_config
356 - else 0
357 - )
358 - self.vocab_size = config.vocab_size + lora_vocab
359 - self.org_vocab_size = config.vocab_size
351 +
352 + self.vocab_size = config.vocab_size
353 +
354 if get_pp_group().is_first_rank or (
355 config.tie_word_embeddings and get_pp_group().is_last_rank
356 ):
357 self.embed_tokens = VocabParallelEmbedding(
358 self.vocab_size,
359 config.hidden_size,
366 - org_num_embeddings=config.vocab_size,
360 quant_config=quant_config,
361 )
362 else:
@@ -518,9 +511,7 @@ class ApertusForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
511 super().__init__()
512 config = vllm_config.model_config.hf_config
513 quant_config = vllm_config.quant_config
521 - lora_config = vllm_config.lora_config
514 self.config = config
523 - self.lora_config = lora_config
515
516 self.model = self._init_model(
517 vllm_config=vllm_config,
@@ -529,20 +520,9 @@ class ApertusForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
520 )
521
522 if get_pp_group().is_last_rank:
532 - self.unpadded_vocab_size = config.vocab_size
533 - if lora_config:
534 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
523 self.lm_head = ParallelLMHead(
536 - self.unpadded_vocab_size,
524 + config.vocab_size,
525 config.hidden_size,
538 - org_num_embeddings=config.vocab_size,
539 - padding_size=(
540 - DEFAULT_VOCAB_PADDING_SIZE
541 - # We need bigger padding if using lora for kernel
542 - # compatibility
543 - if not lora_config
544 - else lora_config.lora_vocab_padding_size
545 - ),
526 quant_config=quant_config,
527 prefix=maybe_prefix(prefix, "lm_head"),
528 )
@@ -551,7 +531,7 @@ class ApertusForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
531
532 logit_scale = getattr(config, "logit_scale", 1.0)
533 self.logits_processor = LogitsProcessor(
554 - self.unpadded_vocab_size, config.vocab_size, logit_scale
534 + config.vocab_size, scale=logit_scale
535 )
536 else:
537 self.lm_head = PPMissingLayer()
vllm/model_executor/models/arcee.py
+2 -8
@@ -23,7 +23,6 @@ from vllm.model_executor.layers.layernorm import RMSNorm
23 from vllm.model_executor.layers.linear import ColumnParallelLinear, RowParallelLinear
24 from vllm.model_executor.layers.logits_processor import LogitsProcessor
25 from vllm.model_executor.layers.vocab_parallel_embedding import (
26 - DEFAULT_VOCAB_PADDING_SIZE,
26 ParallelLMHead,
27 VocabParallelEmbedding,
28 )
@@ -200,7 +199,6 @@ class ArceeModel(nn.Module):
199 self.quant_config = quant_config
200 self.config = config
201 self.vocab_size = config.vocab_size
203 - self.org_vocab_size = config.vocab_size
202
203 # Word embeddings (parallelized if using pipeline parallel)
204 if get_pp_group().is_first_rank or (
@@ -209,7 +207,6 @@ class ArceeModel(nn.Module):
207 self.embed_tokens = VocabParallelEmbedding(
208 self.vocab_size,
209 config.hidden_size,
212 - org_num_embeddings=config.vocab_size,
210 quant_config=quant_config,
211 )
212 else:
@@ -383,13 +380,10 @@ class ArceeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
380 if get_pp_group().is_last_rank:
381 # Determine vocabulary size (including any LoRA extra tokens
382 # for padded LM head)
386 - self.unpadded_vocab_size = config.vocab_size
383
384 self.lm_head = ParallelLMHead(
389 - self.unpadded_vocab_size,
385 + config.vocab_size,
386 config.hidden_size,
391 - org_num_embeddings=config.vocab_size,
392 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
387 quant_config=vllm_config.quant_config,
388 bias=getattr(config, "lm_head_bias", False),
389 prefix=f"{prefix}.lm_head",
@@ -399,7 +393,7 @@ class ArceeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
393 self.lm_head = self.lm_head.tie_weights(self.model.embed_tokens)
394 logit_scale = getattr(config, "logit_scale", 1.0)
395 self.logits_processor = LogitsProcessor(
402 - self.unpadded_vocab_size, config.vocab_size, logit_scale
396 + config.vocab_size, scale=logit_scale
397 )
398 else:
399 # Placeholder for lm_head on non-last ranks
vllm/model_executor/models/arctic.py
+2 -4
@@ -490,10 +490,8 @@ class ArcticForCausalLM(nn.Module, SupportsPP, SupportsQuant):
490 self.lm_head.weight = self.model.embed_tokens.weight
491 self.num_experts = config.num_local_experts
492 self.num_experts_per_tok = config.num_experts_per_tok
493 - self.unpadded_vocab_size = config.vocab_size
494 - self.logits_processor = LogitsProcessor(
495 - self.unpadded_vocab_size, config.vocab_size
496 - )
493 +
494 + self.logits_processor = LogitsProcessor(config.vocab_size)
495 self.make_empty_intermediate_tensors = (
496 self.model.make_empty_intermediate_tensors
497 )
vllm/model_executor/models/aria.py
+2 -6
@@ -547,18 +547,14 @@ class AriaForConditionalGeneration(nn.Module, SupportsMultiModal):
547 self.pad_token_id = (
548 self.config.pad_token_id if self.config.pad_token_id is not None else -1
549 )
550 - self.unpadded_vocab_size = config.text_config.vocab_size
550 self.lm_head = ParallelLMHead(
552 - self.unpadded_vocab_size,
551 + self.vocab_size,
552 config.text_config.hidden_size,
554 - org_num_embeddings=self.language_model.org_vocab_size,
553 quant_config=quant_config,
554 prefix=maybe_prefix(prefix, "lm_head"),
555 )
556 logit_scale = getattr(config, "logit_scale", 1.0)
559 - self.logits_processor = LogitsProcessor(
560 - self.unpadded_vocab_size, self.vocab_size, logit_scale
561 - )
557 + self.logits_processor = LogitsProcessor(self.vocab_size, scale=logit_scale)
558
559 def _parse_and_validate_image_input(
560 self, **kwargs: object
vllm/model_executor/models/baichuan.py
+2 -2
@@ -402,9 +402,9 @@ class BaiChuanBaseForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsQuant
402 super().__init__()
403 config = vllm_config.model_config.hf_config
404 quant_config = vllm_config.quant_config
405 - lora_config = vllm_config.lora_config
405 +
406 self.config = config
407 - self.lora_config = lora_config
407 +
408 self.tp_size = get_tensor_model_parallel_world_size()
409 self.quant_config = quant_config
410 self.model = BaiChuanModel(
vllm/model_executor/models/bailing_moe.py
-2
@@ -581,10 +581,8 @@ class BailingMoeForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
581 config = vllm_config.model_config.hf_config.get_text_config()
582 vllm_config.model_config.hf_config = config
583 quant_config = vllm_config.quant_config
584 - lora_config = vllm_config.lora_config
584
585 self.config = config
587 - self.lora_config = lora_config
586 self.quant_config = quant_config
587 self.max_position_embeddings = config.max_position_embeddings
588 self.model = BailingMoeModel(
vllm/model_executor/models/bamba.py
+6 -24
@@ -30,7 +30,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
30 from vllm.model_executor.layers.quantization import QuantizationConfig
31 from vllm.model_executor.layers.rotary_embedding import get_rope
32 from vllm.model_executor.layers.vocab_parallel_embedding import (
33 - DEFAULT_VOCAB_PADDING_SIZE,
33 ParallelLMHead,
34 VocabParallelEmbedding,
35 )
@@ -284,21 +283,14 @@ class BambaModel(nn.Module):
283 model_config = vllm_config.model_config
284 cache_config = vllm_config.cache_config
285 quant_config = vllm_config.quant_config
287 - lora_config = vllm_config.lora_config
286
287 self.config = config
290 - lora_vocab = (
291 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
292 - if lora_config
293 - else 0
294 - )
295 - self.vocab_size = config.vocab_size + lora_vocab
296 - self.org_vocab_size = config.vocab_size
288 +
289 + self.vocab_size = config.vocab_size
290
291 self.embed_tokens = VocabParallelEmbedding(
292 self.vocab_size,
293 config.hidden_size,
301 - org_num_embeddings=config.vocab_size,
294 )
295
296 def get_layer(prefix: str):
@@ -478,7 +470,7 @@ class BambaForCausalLM(
470 config = vllm_config.model_config.hf_config
471 self.vllm_config = vllm_config
472 self.model_config = vllm_config.model_config
481 - lora_config = vllm_config.lora_config
473 +
474 scheduler_config = vllm_config.scheduler_config
475 self.quant_config = vllm_config.quant_config
476
@@ -488,24 +480,14 @@ class BambaForCausalLM(
480 self.model = BambaModel(
481 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
482 )
491 - self.unpadded_vocab_size = config.vocab_size
492 - if lora_config:
493 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
483 +
484 self.lm_head = ParallelLMHead(
495 - self.unpadded_vocab_size,
485 + config.vocab_size,
486 config.hidden_size,
497 - org_num_embeddings=config.vocab_size,
498 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
499 - # We need bigger padding if using lora for kernel
500 - # compatibility
501 - if not lora_config
502 - else lora_config.lora_vocab_padding_size,
487 prefix=maybe_prefix(prefix, "lm_head"),
488 )
489
506 - self.logits_processor = LogitsProcessor(
507 - self.unpadded_vocab_size, config.vocab_size
508 - )
490 + self.logits_processor = LogitsProcessor(config.vocab_size)
491
492 self.make_empty_intermediate_tensors = (
493 self.model.make_empty_intermediate_tensors
vllm/model_executor/models/chameleon.py
+3 -5
@@ -963,9 +963,9 @@ class ChameleonForConditionalGeneration(
963 self.model = ChameleonModel(
964 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
965 )
966 - self.unpadded_vocab_size = config.vocab_size
966 +
967 self.lm_head = ParallelLMHead(
968 - self.unpadded_vocab_size,
968 + config.vocab_size,
969 config.hidden_size,
970 prefix=maybe_prefix(prefix, "lm_head"),
971 )
@@ -973,9 +973,7 @@ class ChameleonForConditionalGeneration(
973 self.lm_head.weight = self.model.embed_tokens.weight
974
975 logit_scale = getattr(config, "logit_scale", 1.0)
976 - self.logits_processor = LogitsProcessor(
977 - self.unpadded_vocab_size, config.vocab_size, logit_scale
978 - )
976 + self.logits_processor = LogitsProcessor(config.vocab_size, scale=logit_scale)
977 self.make_empty_intermediate_tensors = (
978 self.model.make_empty_intermediate_tensors
979 )
vllm/model_executor/models/chatglm.py
+1 -2
@@ -433,10 +433,9 @@ class ChatGLMBaseModel(nn.Module):
433 super().__init__()
434 config = vllm_config.model_config.hf_config
435 quant_config = vllm_config.quant_config
436 - lora_config = vllm_config.lora_config
436 +
437 multimodal_config = vllm_config.model_config.multimodal_config
438 self.config = config
439 - self.lora_config = lora_config
439 self.multimodal_config = multimodal_config
440
441 self.quant_config = quant_config
vllm/model_executor/models/commandr.py
+6 -13
@@ -288,17 +288,12 @@ class CohereModel(nn.Module):
288 config = vllm_config.model_config.hf_config
289 cache_config = vllm_config.cache_config
290 quant_config = vllm_config.quant_config
291 - lora_config = vllm_config.lora_config
291 self.quant_config = quant_config
292
293 self.config = config
295 - lora_vocab = (
296 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
297 - if lora_config
298 - else 0
299 - )
300 - self.vocab_size = config.vocab_size + lora_vocab
301 - self.org_vocab_size = config.vocab_size
294 +
295 + self.vocab_size = config.vocab_size
296 +
297 self.embed_tokens = VocabParallelEmbedding(
298 config.vocab_size, config.hidden_size
299 )
@@ -424,17 +419,15 @@ class CohereForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsQuant):
419 super().__init__()
420 config = vllm_config.model_config.hf_config
421 quant_config = vllm_config.quant_config
427 - lora_config = vllm_config.lora_config
422 +
423 self.config = config
424 # currently all existing command R models have `tie_word_embeddings`
425 # enabled
426 assert config.tie_word_embeddings
432 - self.unpadded_vocab_size = config.vocab_size
433 - if lora_config:
434 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
427 +
428 self.quant_config = quant_config
429 self.logits_processor = LogitsProcessor(
437 - self.unpadded_vocab_size, config.vocab_size, scale=config.logit_scale
430 + config.vocab_size, scale=config.logit_scale
431 )
432 self.model = CohereModel(
433 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
vllm/model_executor/models/dbrx.py
+2 -7
@@ -25,7 +25,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
25 from vllm.model_executor.layers.quantization import QuantizationConfig
26 from vllm.model_executor.layers.rotary_embedding import get_rope
27 from vllm.model_executor.layers.vocab_parallel_embedding import (
28 - DEFAULT_VOCAB_PADDING_SIZE,
28 ParallelLMHead,
29 VocabParallelEmbedding,
30 )
@@ -441,21 +440,17 @@ class DbrxForCausalLM(nn.Module, SupportsPP):
440 if config.tie_word_embeddings:
441 raise ValueError("tie_word_embeddings is not supported for Dbrx models.")
442 self.quant_config = quant_config
444 - self.unpadded_vocab_size = config.vocab_size
443 +
444 self.transformer = DbrxModel(
445 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "transformer")
446 )
447 self.lm_head = ParallelLMHead(
448 config.vocab_size,
449 config.d_model,
451 - org_num_embeddings=config.vocab_size,
452 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
450 quant_config=quant_config,
451 prefix=maybe_prefix(prefix, "lm_head"),
452 )
456 - self.logits_processor = LogitsProcessor(
457 - self.unpadded_vocab_size, config.vocab_size
458 - )
453 + self.logits_processor = LogitsProcessor(config.vocab_size)
454 self.make_empty_intermediate_tensors = (
455 self.transformer.make_empty_intermediate_tensors
456 )
vllm/model_executor/models/exaone.py
+5 -22
@@ -48,7 +48,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
48 from vllm.model_executor.layers.quantization import QuantizationConfig
49 from vllm.model_executor.layers.rotary_embedding import get_rope
50 from vllm.model_executor.layers.vocab_parallel_embedding import (
51 - DEFAULT_VOCAB_PADDING_SIZE,
51 ParallelLMHead,
52 VocabParallelEmbedding,
53 )
@@ -323,16 +322,11 @@ class ExaoneModel(nn.Module):
322 config = vllm_config.model_config.hf_config
323 cache_config = vllm_config.cache_config
324 quant_config = vllm_config.quant_config
326 - lora_config = vllm_config.lora_config
325
326 self.config = config
327 self.quant_config = quant_config
330 - lora_vocab = (
331 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
332 - if lora_config
333 - else 0
334 - )
335 - self.vocab_size = config.vocab_size + lora_vocab
328 +
329 + self.vocab_size = config.vocab_size
330 self.wte = config.vocab_size
331 if get_pp_group().is_first_rank or (
332 config.tie_word_embeddings and get_pp_group().is_last_rank
@@ -340,7 +334,6 @@ class ExaoneModel(nn.Module):
334 self.wte = VocabParallelEmbedding(
335 self.vocab_size,
336 config.hidden_size,
343 - org_num_embeddings=config.vocab_size,
337 quant_config=quant_config,
338 )
339 else:
@@ -489,10 +482,9 @@ class ExaoneForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
482 super().__init__()
483 config = vllm_config.model_config.hf_config
484 quant_config = vllm_config.quant_config
492 - lora_config = vllm_config.lora_config
485
486 self.config = config
495 - self.lora_config = lora_config
487 +
488 self.quant_config = quant_config
489
490 self.transformer = ExaoneModel(
@@ -500,18 +492,9 @@ class ExaoneForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
492 prefix=maybe_prefix(prefix, "model"),
493 )
494 if get_pp_group().is_last_rank:
503 - self.unpadded_vocab_size = config.vocab_size
504 - if lora_config:
505 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
495 self.lm_head = ParallelLMHead(
507 - self.unpadded_vocab_size,
496 + config.vocab_size,
497 config.hidden_size,
509 - org_num_embeddings=config.vocab_size,
510 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
511 - # We need bigger padding if using lora for kernel
512 - # compatibility
513 - if not lora_config
514 - else lora_config.lora_vocab_padding_size,
498 quant_config=quant_config,
499 prefix=maybe_prefix(prefix, "lm_head"),
500 )
@@ -520,7 +503,7 @@ class ExaoneForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
503
504 logit_scale = getattr(config, "logit_scale", 1.0)
505 self.logits_processor = LogitsProcessor(
523 - self.unpadded_vocab_size, config.vocab_size, logit_scale
506 + config.vocab_size, scale=logit_scale
507 )
508 else:
509 self.lm_head = PPMissingLayer()
vllm/model_executor/models/exaone4.py
+4 -22
@@ -44,7 +44,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
44 from vllm.model_executor.layers.quantization import QuantizationConfig
45 from vllm.model_executor.layers.rotary_embedding import get_rope
46 from vllm.model_executor.layers.vocab_parallel_embedding import (
47 - DEFAULT_VOCAB_PADDING_SIZE,
47 ParallelLMHead,
48 VocabParallelEmbedding,
49 )
@@ -311,23 +310,17 @@ class Exaone4Model(nn.Module):
310 config = vllm_config.model_config.hf_config
311 cache_config = vllm_config.cache_config
312 quant_config = vllm_config.quant_config
314 - lora_config = vllm_config.lora_config
313
314 self.config = config
315 self.quant_config = quant_config
318 - lora_vocab = (
319 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
320 - if lora_config
321 - else 0
322 - )
323 - self.vocab_size = config.vocab_size + lora_vocab
316 +
317 + self.vocab_size = config.vocab_size
318 if get_pp_group().is_first_rank or (
319 config.tie_word_embeddings and get_pp_group().is_last_rank
320 ):
321 self.embed_tokens = VocabParallelEmbedding(
322 self.vocab_size,
323 config.hidden_size,
330 - org_num_embeddings=config.vocab_size,
324 quant_config=quant_config,
325 )
326 else:
@@ -476,10 +469,8 @@ class Exaone4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
469 super().__init__()
470 config = vllm_config.model_config.hf_config
471 quant_config = vllm_config.quant_config
479 - lora_config = vllm_config.lora_config
472
473 self.config = config
482 - self.lora_config = lora_config
474 self.quant_config = quant_config
475
476 self.model = Exaone4Model(
@@ -487,18 +478,9 @@ class Exaone4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
478 prefix=maybe_prefix(prefix, "model"),
479 )
480 if get_pp_group().is_last_rank:
490 - self.unpadded_vocab_size = config.vocab_size
491 - if lora_config:
492 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
481 self.lm_head = ParallelLMHead(
494 - self.unpadded_vocab_size,
482 + config.vocab_size,
483 config.hidden_size,
496 - org_num_embeddings=config.vocab_size,
497 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
498 - # We need bigger padding if using lora for kernel
499 - # compatibility
500 - if not lora_config
501 - else lora_config.lora_vocab_padding_size,
484 quant_config=quant_config,
485 prefix=maybe_prefix(prefix, "lm_head"),
486 )
@@ -507,7 +489,7 @@ class Exaone4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
489
490 logit_scale = getattr(config, "logit_scale", 1.0)
491 self.logits_processor = LogitsProcessor(
510 - self.unpadded_vocab_size, config.vocab_size, logit_scale
492 + config.vocab_size, scale=logit_scale
493 )
494 else:
495 self.lm_head = PPMissingLayer()
vllm/model_executor/models/falcon_h1.py
+7 -24
@@ -30,7 +30,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
30 from vllm.model_executor.layers.quantization import QuantizationConfig
31 from vllm.model_executor.layers.rotary_embedding import get_rope
32 from vllm.model_executor.layers.vocab_parallel_embedding import (
33 - DEFAULT_VOCAB_PADDING_SIZE,
33 ParallelLMHead,
34 VocabParallelEmbedding,
35 )
@@ -424,21 +423,15 @@ class FalconH1Model(nn.Module):
423 model_config = vllm_config.model_config
424 cache_config = vllm_config.cache_config
425 quant_config = vllm_config.quant_config
427 - lora_config = vllm_config.lora_config
426
427 self.config = config
430 - lora_vocab = (
431 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
432 - if lora_config
433 - else 0
434 - )
435 - self.vocab_size = config.vocab_size + lora_vocab
436 - self.org_vocab_size = config.vocab_size
428 +
429 + self.vocab_size = config.vocab_size
430 +
431 if get_pp_group().is_first_rank:
432 self.embed_tokens = VocabParallelEmbedding(
433 self.vocab_size,
434 config.hidden_size,
441 - org_num_embeddings=config.vocab_size,
435 )
436 self.embedding_multiplier = config.embedding_multiplier
437 else:
@@ -572,7 +565,7 @@ class FalconH1ForCausalLM(
565 config = vllm_config.model_config.hf_config
566 self.vllm_config = vllm_config
567 self.model_config = vllm_config.model_config
575 - lora_config = vllm_config.lora_config
568 +
569 scheduler_config = vllm_config.scheduler_config
570
571 self.quant_config = vllm_config.quant_config
@@ -584,21 +577,11 @@ class FalconH1ForCausalLM(
577 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
578 )
579 self.tie_word_embeddings = config.tie_word_embeddings
587 - self.unpadded_vocab_size = config.vocab_size
588 - if lora_config:
589 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
580 +
581 if get_pp_group().is_last_rank:
582 self.lm_head = ParallelLMHead(
592 - self.unpadded_vocab_size,
583 + config.vocab_size,
584 config.hidden_size,
594 - org_num_embeddings=config.vocab_size,
595 - padding_size=(
596 - DEFAULT_VOCAB_PADDING_SIZE
597 - # We need bigger padding if using lora for kernel
598 - # compatibility
599 - if not lora_config
600 - else lora_config.lora_vocab_padding_size
601 - ),
585 prefix=maybe_prefix(prefix, "lm_head"),
586 )
587 self.lm_head_multiplier = config.lm_head_multiplier
@@ -607,7 +590,7 @@ class FalconH1ForCausalLM(
590 # Used to track and store by the Mamba cache between steps.
591
592 self.logits_processor = LogitsProcessor(
610 - self.unpadded_vocab_size,
593 + config.vocab_size,
594 config.vocab_size,
595 scale=config.lm_head_multiplier,
596 )
vllm/model_executor/models/gemma.py
-2
@@ -382,12 +382,10 @@ class GemmaForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
382 super().__init__()
383 config = vllm_config.model_config.hf_config
384 quant_config = vllm_config.quant_config
385 - lora_config = vllm_config.lora_config
385
386 self.config = config
387 # currently all existing Gemma models have `tie_word_embeddings` enabled
388 assert config.tie_word_embeddings
390 - self.lora_config = lora_config
389
390 self.quant_config = quant_config
391 self.model = GemmaModel(
vllm/model_executor/models/gemma2.py
+1 -2
@@ -393,8 +393,7 @@ class Gemma2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
393 def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
394 config = vllm_config.model_config.hf_config
395 quant_config = vllm_config.quant_config
396 - lora_config = vllm_config.lora_config
397 - del lora_config # Unused.
396 +
397 super().__init__()
398 self.config = config
399 # currently all existing Gemma models have `tie_word_embeddings` enabled
vllm/model_executor/models/gemma3.py
+1 -2
@@ -524,8 +524,7 @@ class Gemma3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
524 def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
525 config = vllm_config.model_config.hf_config
526 quant_config = vllm_config.quant_config
527 - lora_config = vllm_config.lora_config
528 - del lora_config # Unused.
527 +
528 super().__init__()
529 self.config = config
530 # currently all existing Gemma models have `tie_word_embeddings` enabled
vllm/model_executor/models/gemma3n.py
+1 -2
@@ -1114,8 +1114,7 @@ class Gemma3nForCausalLM(nn.Module):
1114
1115 def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
1116 config = vllm_config.model_config.hf_config
1117 - lora_config = vllm_config.lora_config
1118 - del lora_config # Unused.
1117 +
1118 super().__init__()
1119 self.config = config
1120 self.cache_config = vllm_config.cache_config
vllm/model_executor/models/glm4.py
-2
@@ -248,10 +248,8 @@ class Glm4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
248 super().__init__()
249 config = vllm_config.model_config.hf_config
250 quant_config = vllm_config.quant_config
251 - lora_config = vllm_config.lora_config
251
252 self.config = config
254 - self.lora_config = lora_config
253
254 self.quant_config = quant_config
255 self.model = Glm4Model(
vllm/model_executor/models/gpt_bigcode.py
+4 -16
@@ -207,18 +207,13 @@ class GPTBigCodeModel(nn.Module):
207 config = vllm_config.model_config.hf_config
208 cache_config = vllm_config.cache_config
209 quant_config = vllm_config.quant_config
210 - lora_config = vllm_config.lora_config
210
211 self.config = config
212 assert not config.add_cross_attention
213
214 self.embed_dim = config.hidden_size
216 - lora_vocab = (
217 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
218 - if lora_config
219 - else 0
220 - )
221 - self.vocab_size = config.vocab_size + lora_vocab
215 +
216 + self.vocab_size = config.vocab_size
217 self.wte = VocabParallelEmbedding(
218 self.vocab_size, self.embed_dim, org_num_embeddings=config.vocab_size
219 )
@@ -290,10 +285,8 @@ class GPTBigCodeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
285 super().__init__()
286 config = vllm_config.model_config.hf_config
287 quant_config = vllm_config.quant_config
293 - lora_config = vllm_config.lora_config
288
289 self.config = config
296 - self.lora_config = lora_config
290
291 self.quant_config = quant_config
292 self.transformer = GPTBigCodeModel(
@@ -305,15 +298,10 @@ class GPTBigCodeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
298 self.lm_head = ParallelLMHead(
299 self.transformer.vocab_size,
300 self.transformer.embed_dim,
308 - org_num_embeddings=self.config.vocab_size,
301 prefix=maybe_prefix(prefix, "lm_head"),
302 )
311 - self.unpadded_vocab_size = config.vocab_size
312 - if lora_config:
313 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
314 - self.logits_processor = LogitsProcessor(
315 - self.unpadded_vocab_size, config.vocab_size
316 - )
303 +
304 + self.logits_processor = LogitsProcessor(config.vocab_size)
305 self.make_empty_intermediate_tensors = (
306 self.transformer.make_empty_intermediate_tensors
307 )
vllm/model_executor/models/granitemoe.py
+4 -23
@@ -50,7 +50,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
50 from vllm.model_executor.layers.quantization import QuantizationConfig
51 from vllm.model_executor.layers.rotary_embedding import get_rope
52 from vllm.model_executor.layers.vocab_parallel_embedding import (
53 - DEFAULT_VOCAB_PADDING_SIZE,
53 ParallelLMHead,
54 VocabParallelEmbedding,
55 )
@@ -296,22 +295,15 @@ class GraniteMoeModel(nn.Module):
295
296 config = vllm_config.model_config.hf_config
297 quant_config = vllm_config.quant_config
299 - lora_config = vllm_config.lora_config
298
299 self.config = config
300 self.quant_config = quant_config # Required by MixtralModel
303 - lora_vocab = (
304 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
305 - if lora_config
306 - else 0
307 - )
308 - self.vocab_size = config.vocab_size + lora_vocab
309 - self.org_vocab_size = config.vocab_size
301 +
302 + self.vocab_size = config.vocab_size
303
304 self.embed_tokens = VocabParallelEmbedding(
305 self.vocab_size,
306 config.hidden_size,
314 - org_num_embeddings=config.vocab_size,
307 )
308 self.embedding_multiplier = config.embedding_multiplier
309
@@ -518,26 +510,16 @@ class GraniteMoeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
510 super().__init__()
511 config = vllm_config.model_config.hf_config
512 quant_config = vllm_config.quant_config
521 - lora_config = vllm_config.lora_config
513
514 self.config = config
524 - self.lora_config = lora_config
515
516 self.model = GraniteMoeModel(
517 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
518 )
529 - self.unpadded_vocab_size = config.vocab_size
530 - if lora_config:
531 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
519 +
520 self.lm_head = ParallelLMHead(
533 - self.unpadded_vocab_size,
521 + config.vocab_size,
522 config.hidden_size,
535 - org_num_embeddings=config.vocab_size,
536 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
537 - # We need bigger padding if using lora for kernel
538 - # compatibility
539 - if not lora_config
540 - else lora_config.lora_vocab_padding_size,
523 quant_config=quant_config,
524 prefix=maybe_prefix(prefix, "lm_head"),
525 )
@@ -545,7 +527,6 @@ class GraniteMoeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
527 self.lm_head.weight = self.model.embed_tokens.weight
528
529 self.logits_processor = LogitsProcessor(
548 - self.unpadded_vocab_size,
530 config.vocab_size,
531 scale=1 / self.config.logits_scaling,
532 )
vllm/model_executor/models/granitemoehybrid.py
+5 -22
@@ -25,7 +25,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
25 from vllm.model_executor.layers.quantization import QuantizationConfig
26 from vllm.model_executor.layers.rotary_embedding import get_rope
27 from vllm.model_executor.layers.vocab_parallel_embedding import (
28 - DEFAULT_VOCAB_PADDING_SIZE,
28 ParallelLMHead,
29 VocabParallelEmbedding,
30 )
@@ -334,22 +333,15 @@ class GraniteMoeHybridModel(nn.Module):
333 model_config = vllm_config.model_config
334 cache_config = vllm_config.cache_config
335 quant_config = vllm_config.quant_config
337 - lora_config = vllm_config.lora_config
336
337 self.config = config
338 self.quant_config = quant_config
341 - lora_vocab = (
342 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
343 - if lora_config
344 - else 0
345 - )
346 - self.vocab_size = config.vocab_size + lora_vocab
347 - self.org_vocab_size = config.vocab_size
339 +
340 + self.vocab_size = config.vocab_size
341
342 self.embed_tokens = VocabParallelEmbedding(
343 self.vocab_size,
344 config.hidden_size,
352 - org_num_embeddings=config.vocab_size,
345 )
346 self.embedding_multiplier = config.embedding_multiplier
347
@@ -658,7 +650,7 @@ class GraniteMoeHybridForCausalLM(
650 config = vllm_config.model_config.hf_config
651 self.vllm_config = vllm_config
652 self.model_config = vllm_config.model_config
661 - lora_config = vllm_config.lora_config
653 +
654 scheduler_config = vllm_config.scheduler_config
655 self.quant_config = vllm_config.quant_config
656 self.config = config
@@ -666,26 +658,17 @@ class GraniteMoeHybridForCausalLM(
658 self.model = GraniteMoeHybridModel(
659 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
660 )
669 - self.unpadded_vocab_size = config.vocab_size
670 - if lora_config:
671 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
661
662 self.lm_head = ParallelLMHead(
674 - self.unpadded_vocab_size,
663 + config.vocab_size,
664 config.hidden_size,
676 - org_num_embeddings=config.vocab_size,
677 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
678 - # We need bigger padding if using lora for kernel
679 - # compatibility
680 - if not lora_config
681 - else lora_config.lora_vocab_padding_size,
665 quant_config=self.quant_config,
666 prefix=maybe_prefix(prefix, "lm_head"),
667 )
668 if config.tie_word_embeddings:
669 self.lm_head.weight = self.model.embed_tokens.weight
670 self.logits_processor = LogitsProcessor(
688 - self.unpadded_vocab_size,
671 + config.vocab_size,
672 config.vocab_size,
673 scale=1 / self.config.logits_scaling,
674 )
vllm/model_executor/models/granitemoeshared.py
+5 -23
@@ -25,7 +25,6 @@ from vllm.model_executor.layers.linear import (
25 from vllm.model_executor.layers.logits_processor import LogitsProcessor
26 from vllm.model_executor.layers.quantization import QuantizationConfig
27 from vllm.model_executor.layers.vocab_parallel_embedding import (
28 - DEFAULT_VOCAB_PADDING_SIZE,
28 ParallelLMHead,
29 VocabParallelEmbedding,
30 )
@@ -159,23 +158,16 @@ class GraniteMoeSharedModel(nn.Module):
158 config = vllm_config.model_config.hf_config
159 cache_config = vllm_config.cache_config
160 quant_config = vllm_config.quant_config
162 - lora_config = vllm_config.lora_config
161
162 self.config = config
163 self.quant_config = quant_config # Required by MixtralModel
164 self.padding_idx = config.pad_token_id
167 - lora_vocab = (
168 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
169 - if lora_config
170 - else 0
171 - )
172 - self.vocab_size = config.vocab_size + lora_vocab
173 - self.org_vocab_size = config.vocab_size
165 +
166 + self.vocab_size = config.vocab_size
167
168 self.embed_tokens = VocabParallelEmbedding(
169 self.vocab_size,
170 config.hidden_size,
178 - org_num_embeddings=config.vocab_size,
171 quant_config=quant_config,
172 )
173 self.embedding_multiplier = config.embedding_multiplier
@@ -281,26 +273,16 @@ class GraniteMoeSharedForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
273 super().__init__()
274 config = vllm_config.model_config.hf_config
275 quant_config = vllm_config.quant_config
284 - lora_config = vllm_config.lora_config
276
277 self.config = config
287 - self.lora_config = lora_config
278
279 self.model = GraniteMoeSharedModel(
280 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
281 )
292 - self.unpadded_vocab_size = config.vocab_size
293 - if lora_config:
294 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
282 +
283 self.lm_head = ParallelLMHead(
296 - self.unpadded_vocab_size,
284 + config.vocab_size,
285 config.hidden_size,
298 - org_num_embeddings=config.vocab_size,
299 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
300 - # We need bigger padding if using lora for kernel
301 - # compatibility
302 - if not lora_config
303 - else lora_config.lora_vocab_padding_size,
286 quant_config=quant_config,
287 prefix=maybe_prefix(prefix, "lm_head"),
288 )
@@ -308,7 +290,7 @@ class GraniteMoeSharedForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
290 self.lm_head.weight = self.model.embed_tokens.weight
291
292 self.logits_processor = LogitsProcessor(
311 - self.unpadded_vocab_size,
293 + config.vocab_size,
294 config.vocab_size,
295 scale=1 / self.config.logits_scaling,
296 )
vllm/model_executor/models/grok1.py
+6 -20
@@ -45,7 +45,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
45 from vllm.model_executor.layers.quantization import QuantizationConfig
46 from vllm.model_executor.layers.rotary_embedding import get_rope
47 from vllm.model_executor.layers.vocab_parallel_embedding import (
48 - DEFAULT_VOCAB_PADDING_SIZE,
48 ParallelLMHead,
49 VocabParallelEmbedding,
50 )
@@ -305,18 +304,13 @@ class Grok1Model(nn.Module):
304 config = vllm_config.model_config.hf_config
305 cache_config = vllm_config.cache_config
306 quant_config = vllm_config.quant_config
308 - lora_config = vllm_config.lora_config
307
308 self.config = config
309 self.quant_config = quant_config
310 self.padding_idx = config.pad_token_id
313 - lora_vocab = (
314 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
315 - if lora_config
316 - else 0
317 - )
318 - self.vocab_size = config.vocab_size + lora_vocab
319 - self.org_vocab_size = config.vocab_size
311 +
312 + self.vocab_size = config.vocab_size
313 +
314 self.embedding_multiplier_scale = getattr(
315 config, "embedding_multiplier_scale", DEFAULT_EMBEDDING_MULTIPLIER_SCALE
316 )
@@ -324,7 +318,6 @@ class Grok1Model(nn.Module):
318 self.embed_tokens = VocabParallelEmbedding(
319 self.vocab_size,
320 config.hidden_size,
327 - org_num_embeddings=config.vocab_size,
321 quant_config=quant_config,
322 )
323
@@ -499,25 +492,18 @@ class Grok1ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
492
493 config = vllm_config.model_config.hf_config
494 quant_config = vllm_config.quant_config
502 - lora_config = vllm_config.lora_config
495
496 self.config = config
505 - self.lora_config = lora_config
497 +
498 self.quant_config = quant_config
499
500 self.model = Grok1Model(
501 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
502 )
503
512 - self.unpadded_vocab_size = config.vocab_size
513 - if lora_config:
514 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
515 -
504 self.lm_head = ParallelLMHead(
517 - self.unpadded_vocab_size,
505 + config.vocab_size,
506 config.hidden_size,
519 - org_num_embeddings=config.vocab_size,
520 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
507 quant_config=quant_config,
508 prefix=maybe_prefix(prefix, "lm_head"),
509 )
@@ -529,7 +515,7 @@ class Grok1ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
515 config, "output_multiplier_scale", DEFAULT_OUTPUT_MULTIPLIER_SCALE
516 )
517 self.logits_processor = LogitsProcessor(
532 - self.unpadded_vocab_size, config.vocab_size, self.output_multiplier_scale
518 + config.vocab_size, scale=self.output_multiplier_scale
519 )
520
521 self.make_empty_intermediate_tensors = (
vllm/model_executor/models/hunyuan_v1.py
+6 -15
@@ -57,7 +57,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
57 from vllm.model_executor.layers.quantization import QuantizationConfig
58 from vllm.model_executor.layers.rotary_embedding import get_rope
59 from vllm.model_executor.layers.vocab_parallel_embedding import (
60 - DEFAULT_VOCAB_PADDING_SIZE,
60 ParallelLMHead,
61 VocabParallelEmbedding,
62 )
@@ -606,7 +605,7 @@ class HunYuanModel(nn.Module):
605 config = vllm_config.model_config.hf_config
606 cache_config = vllm_config.cache_config
607 quant_config = vllm_config.quant_config
609 - lora_config = vllm_config.lora_config
608 +
609 eplb_config = vllm_config.parallel_config.eplb_config
610 enable_eplb = vllm_config.parallel_config.enable_eplb
611 self.num_redundant_experts = eplb_config.num_redundant_experts
@@ -614,20 +613,15 @@ class HunYuanModel(nn.Module):
613 self.config = config
614 self.quant_config = quant_config
615 self.padding_idx = config.pad_token_id
617 - lora_vocab = (
618 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
619 - if lora_config
620 - else 0
621 - )
622 - self.vocab_size = config.vocab_size + lora_vocab
623 - self.org_vocab_size = config.vocab_size
616 +
617 + self.vocab_size = config.vocab_size
618 +
619 if get_pp_group().is_first_rank or (
620 config.tie_word_embeddings and get_pp_group().is_last_rank
621 ):
622 self.embed_tokens = VocabParallelEmbedding(
623 self.vocab_size,
624 config.hidden_size,
630 - org_num_embeddings=config.vocab_size,
625 quant_config=quant_config,
626 )
627 else:
@@ -937,12 +931,9 @@ class HunyuanV1ModelBase(nn.Module, SupportsLoRA, SupportsPP):
931
932 self.model = HunYuanModel(vllm_config=vllm_config, prefix="model")
933 if get_pp_group().is_last_rank:
940 - self.unpadded_vocab_size = config.vocab_size
934 self.lm_head = ParallelLMHead(
942 - self.unpadded_vocab_size,
935 + config.vocab_size,
936 config.hidden_size,
944 - org_num_embeddings=config.vocab_size,
945 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
937 quant_config=quant_config,
938 prefix=maybe_prefix(prefix, "lm_head"),
939 )
@@ -951,7 +942,7 @@ class HunyuanV1ModelBase(nn.Module, SupportsLoRA, SupportsPP):
942
943 logit_scale = getattr(config, "logit_scale", 1.0)
944 self.logits_processor = LogitsProcessor(
954 - self.unpadded_vocab_size, config.vocab_size, logit_scale
945 + config.vocab_size, scale=logit_scale
946 )
947 else:
948 self.lm_head = PPMissingLayer()
vllm/model_executor/models/internlm2.py
-2
@@ -330,11 +330,9 @@ class InternLM2ForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
330 super().__init__()
331 config = vllm_config.model_config.hf_config
332 quant_config = vllm_config.quant_config
333 - lora_config = vllm_config.lora_config
333
334 self.config = config
335 self.quant_config = quant_config
337 - self.lora_config = lora_config
336
337 self.model = model_type(
338 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
vllm/model_executor/models/jamba.py
+6 -24
@@ -30,7 +30,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
30 from vllm.model_executor.layers.pooler import DispatchPooler, Pooler
31 from vllm.model_executor.layers.quantization import QuantizationConfig
32 from vllm.model_executor.layers.vocab_parallel_embedding import (
33 - DEFAULT_VOCAB_PADDING_SIZE,
33 ParallelLMHead,
34 VocabParallelEmbedding,
35 )
@@ -307,21 +306,14 @@ class JambaModel(nn.Module):
306 model_config = vllm_config.model_config
307 cache_config = vllm_config.cache_config
308 quant_config = vllm_config.quant_config
310 - lora_config = vllm_config.lora_config
309
310 self.config = config
313 - lora_vocab = (
314 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
315 - if lora_config
316 - else 0
317 - )
318 - self.vocab_size = config.vocab_size + lora_vocab
319 - self.org_vocab_size = config.vocab_size
311 +
312 + self.vocab_size = config.vocab_size
313
314 self.embed_tokens = VocabParallelEmbedding(
315 self.vocab_size,
316 config.hidden_size,
324 - org_num_embeddings=config.vocab_size,
317 )
318
319 extra_kwargs = {"is_lora_enabled": bool(vllm_config.lora_config)}
@@ -492,7 +484,7 @@ class JambaForCausalLM(
484
485 def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
486 config = vllm_config.model_config.hf_config
495 - lora_config = vllm_config.lora_config
487 +
488 scheduler_config = vllm_config.scheduler_config
489
490 super().__init__()
@@ -503,24 +495,14 @@ class JambaForCausalLM(
495 self.model = JambaModel(
496 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
497 )
506 - self.unpadded_vocab_size = config.vocab_size
507 - if lora_config:
508 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
498 +
499 self.lm_head = ParallelLMHead(
510 - self.unpadded_vocab_size,
500 + config.vocab_size,
501 config.hidden_size,
512 - org_num_embeddings=config.vocab_size,
513 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
514 - # We need bigger padding if using lora for kernel
515 - # compatibility
516 - if not lora_config
517 - else lora_config.lora_vocab_padding_size,
502 prefix=maybe_prefix(prefix, "lm_head"),
503 )
504
521 - self.logits_processor = LogitsProcessor(
522 - self.unpadded_vocab_size, config.vocab_size
523 - )
505 + self.logits_processor = LogitsProcessor(config.vocab_size)
506
507 self.make_empty_intermediate_tensors = (
508 self.model.make_empty_intermediate_tensors
vllm/model_executor/models/kimi_vl.py
+2 -8
@@ -60,7 +60,6 @@ from vllm.model_executor.layers.fused_moe import FusedMoE
60 from vllm.model_executor.layers.linear import ReplicatedLinear
61 from vllm.model_executor.layers.logits_processor import LogitsProcessor
62 from vllm.model_executor.layers.vocab_parallel_embedding import (
63 - DEFAULT_VOCAB_PADDING_SIZE,
63 ParallelLMHead,
64 )
65 from vllm.model_executor.model_loader.weight_utils import (
@@ -347,13 +346,10 @@ class KimiVLForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP):
346 vllm_config=sub_vllm_config,
347 prefix=maybe_prefix(prefix, "language_model"),
348 )
350 - self.unpadded_vocab_size = config.text_config.vocab_size
349 if get_pp_group().is_last_rank:
350 self.lm_head = ParallelLMHead(
353 - self.unpadded_vocab_size,
351 + config.vocab_size,
352 config.text_config.hidden_size,
355 - org_num_embeddings=self.config.text_config.vocab_size,
356 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
353 prefix=maybe_prefix(prefix, "lm_head"),
354 )
355 else:
@@ -362,9 +358,7 @@ class KimiVLForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP):
358 self.language_model.make_empty_intermediate_tensors
359 )
360 logit_scale = getattr(config, "logit_scale", 1.0)
365 - self.logits_processor = LogitsProcessor(
366 - self.unpadded_vocab_size, config.vocab_size, logit_scale
367 - )
361 + self.logits_processor = LogitsProcessor(config.vocab_size, scale=logit_scale)
362 self.media_placeholder: int = self.config.media_placeholder_token_id
363
364 def _parse_and_validate_image_input(
vllm/model_executor/models/lfm2.py
+5 -26
@@ -28,7 +28,6 @@ from vllm.model_executor.layers.mamba.short_conv import ShortConv
28 from vllm.model_executor.layers.quantization import QuantizationConfig
29 from vllm.model_executor.layers.rotary_embedding import get_rope
30 from vllm.model_executor.layers.vocab_parallel_embedding import (
31 - DEFAULT_VOCAB_PADDING_SIZE,
31 ParallelLMHead,
32 VocabParallelEmbedding,
33 )
@@ -316,16 +315,10 @@ class Lfm2Model(nn.Module):
315 model_config = vllm_config.model_config
316 cache_config = vllm_config.cache_config
317 quant_config = vllm_config.quant_config
319 - lora_config = vllm_config.lora_config
318
319 self.config = config
322 - lora_vocab = (
323 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
324 - if lora_config
325 - else 0
326 - )
327 - self.vocab_size = config.vocab_size + lora_vocab
328 - self.org_vocab_size = config.vocab_size
320 +
321 + self.vocab_size = config.vocab_size
322
323 self.embed_tokens = VocabParallelEmbedding(
324 self.vocab_size, config.hidden_size, org_num_embeddings=config.vocab_size
@@ -483,7 +476,7 @@ class Lfm2ForCausalLM(
476 config = vllm_config.model_config.hf_config
477 quant_config = vllm_config.quant_config
478 cache_config = vllm_config.cache_config
486 - lora_config = vllm_config.lora_config
479 +
480 assert not cache_config.enable_prefix_caching, (
481 "Lfm2 currently does not support prefix caching"
482 )
@@ -495,21 +488,9 @@ class Lfm2ForCausalLM(
488 )
489
490 if get_pp_group().is_last_rank:
498 - self.unpadded_vocab_size = self.config.vocab_size
499 - if lora_config:
500 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
501 -
491 self.lm_head = ParallelLMHead(
503 - self.unpadded_vocab_size,
492 + config.vocab_size,
493 config.hidden_size,
505 - org_num_embeddings=config.vocab_size,
506 - padding_size=(
507 - DEFAULT_VOCAB_PADDING_SIZE
508 - # We need bigger padding if using lora for kernel
509 - # compatibility
510 - if not lora_config
511 - else lora_config.lora_vocab_padding_size
512 - ),
494 quant_config=quant_config,
495 prefix=maybe_prefix(prefix, "lm_head"),
496 )
@@ -517,9 +498,7 @@ class Lfm2ForCausalLM(
498 else:
499 self.lm_head = PPMissingLayer()
500
520 - self.logits_processor = LogitsProcessor(
521 - self.unpadded_vocab_size, config.vocab_size
522 - )
501 + self.logits_processor = LogitsProcessor(config.vocab_size)
502
503 self.make_empty_intermediate_tensors = (
504 self.model.make_empty_intermediate_tensors
vllm/model_executor/models/lfm2_moe.py
+6 -26
@@ -33,7 +33,6 @@ from vllm.model_executor.layers.mamba.short_conv import ShortConv
33 from vllm.model_executor.layers.quantization import QuantizationConfig
34 from vllm.model_executor.layers.rotary_embedding import get_rope
35 from vllm.model_executor.layers.vocab_parallel_embedding import (
36 - DEFAULT_VOCAB_PADDING_SIZE,
36 ParallelLMHead,
37 VocabParallelEmbedding,
38 )
@@ -423,20 +422,15 @@ class Lfm2MoeModel(nn.Module):
422 model_config = vllm_config.model_config
423 cache_config = vllm_config.cache_config
424 quant_config = vllm_config.quant_config
426 - lora_config = vllm_config.lora_config
425 +
426 parallel_config = vllm_config.parallel_config
427 enable_eplb = parallel_config.enable_eplb
428 eplb_config = parallel_config.eplb_config
429 self.num_redundant_experts = eplb_config.num_redundant_experts
430
431 self.config = config
433 - lora_vocab = (
434 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
435 - if lora_config
436 - else 0
437 - )
438 - self.vocab_size = config.vocab_size + lora_vocab
439 - self.org_vocab_size = config.vocab_size
432 +
433 + self.vocab_size = config.vocab_size
434
435 self.embed_tokens = VocabParallelEmbedding(
436 self.vocab_size, config.hidden_size, org_num_embeddings=config.vocab_size
@@ -662,7 +656,7 @@ class Lfm2MoeForCausalLM(
656 config = vllm_config.model_config.hf_config
657 quant_config = vllm_config.quant_config
658 cache_config = vllm_config.cache_config
665 - lora_config = vllm_config.lora_config
659 +
660 assert not cache_config.enable_prefix_caching, (
661 "Lfm2Moe currently does not support prefix caching"
662 )
@@ -674,21 +668,9 @@ class Lfm2MoeForCausalLM(
668 )
669
670 if get_pp_group().is_last_rank:
677 - self.unpadded_vocab_size = self.config.vocab_size
678 - if lora_config:
679 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
680 -
671 self.lm_head = ParallelLMHead(
682 - self.unpadded_vocab_size,
672 + config.vocab_size,
673 config.hidden_size,
684 - org_num_embeddings=config.vocab_size,
685 - padding_size=(
686 - DEFAULT_VOCAB_PADDING_SIZE
687 - # We need bigger padding if using lora for kernel
688 - # compatibility
689 - if not lora_config
690 - else lora_config.lora_vocab_padding_size
691 - ),
674 quant_config=quant_config,
675 prefix=maybe_prefix(prefix, "lm_head"),
676 )
@@ -696,9 +678,7 @@ class Lfm2MoeForCausalLM(
678 else:
679 self.lm_head = PPMissingLayer()
680
699 - self.logits_processor = LogitsProcessor(
700 - self.unpadded_vocab_size, config.vocab_size
701 - )
681 + self.logits_processor = LogitsProcessor(config.vocab_size)
682
683 self.make_empty_intermediate_tensors = (
684 self.model.make_empty_intermediate_tensors
vllm/model_executor/models/llama_eagle3.py
-3
@@ -15,7 +15,6 @@ from vllm.model_executor.layers.linear import QKVParallelLinear
15 from vllm.model_executor.layers.logits_processor import LogitsProcessor
16 from vllm.model_executor.layers.quantization.base_config import QuantizationConfig
17 from vllm.model_executor.layers.vocab_parallel_embedding import (
18 - DEFAULT_VOCAB_PADDING_SIZE,
18 ParallelLMHead,
19 VocabParallelEmbedding,
20 )
@@ -252,8 +251,6 @@ class Eagle3LlamaForCausalLM(LlamaForCausalLM):
251 self.lm_head = ParallelLMHead(
252 self.config.draft_vocab_size,
253 self.config.hidden_size,
255 - org_num_embeddings=self.config.draft_vocab_size,
256 - padding_size=(DEFAULT_VOCAB_PADDING_SIZE),
254 prefix=maybe_prefix(prefix, "lm_head"),
255 )
256 self.logits_processor = LogitsProcessor(
vllm/model_executor/models/longcat_flash.py
+1 -2
@@ -554,7 +554,6 @@ class LongcatFlashForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
554 super().__init__()
555 config = FlashConfig(**vllm_config.model_config.hf_config.__dict__)
556 quant_config = vllm_config.quant_config
557 - lora_config = vllm_config.lora_config
557
558 self.config = config
559 config.intermediate_size = (
@@ -562,7 +561,7 @@ class LongcatFlashForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
561 if hasattr(config, "ffn_hidden_size")
562 else config.intermediate_size
563 )
565 - self.lora_config = lora_config
564 +
565 self.quant_config = quant_config
566
567 self.model = FlashModel(
vllm/model_executor/models/mamba.py
+6 -23
@@ -21,7 +21,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
21 )
22 from vllm.model_executor.layers.quantization import QuantizationConfig
23 from vllm.model_executor.layers.vocab_parallel_embedding import (
24 - DEFAULT_VOCAB_PADDING_SIZE,
24 ParallelLMHead,
25 VocabParallelEmbedding,
26 )
@@ -110,18 +109,12 @@ class MambaModel(nn.Module):
109 is_lora_enabled = bool(lora_config)
110
111 self.config = config
113 - lora_vocab = (
114 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
115 - if lora_config
116 - else 0
117 - )
118 - self.vocab_size = config.vocab_size + lora_vocab
119 - self.org_vocab_size = config.vocab_size
112 +
113 + self.vocab_size = config.vocab_size
114
115 self.embeddings = VocabParallelEmbedding(
116 self.vocab_size,
117 config.hidden_size,
124 - org_num_embeddings=config.vocab_size,
118 )
119
120 self.start_layer, self.end_layer, self.layers = make_layers(
@@ -199,7 +192,7 @@ class MambaForCausalLM(
192 ):
193 def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
194 config = vllm_config.model_config.hf_config
202 - lora_config = vllm_config.lora_config
195 +
196 self.scheduler_config = vllm_config.scheduler_config
197
198 super().__init__()
@@ -209,27 +202,17 @@ class MambaForCausalLM(
202 self.backbone = MambaModel(
203 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "backbone")
204 )
212 - self.unpadded_vocab_size = config.vocab_size
213 - if lora_config:
214 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
205 +
206 if config.tie_word_embeddings:
207 self.lm_head = self.backbone.embeddings
208 else:
209 self.lm_head = ParallelLMHead(
219 - self.unpadded_vocab_size,
210 + config.vocab_size,
211 config.hidden_size,
221 - org_num_embeddings=config.vocab_size,
222 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
223 - # We need bigger padding if using lora for kernel
224 - # compatibility
225 - if not lora_config
226 - else lora_config.lora_vocab_padding_size,
212 prefix=maybe_prefix(prefix, "lm_head"),
213 )
214
230 - self.logits_processor = LogitsProcessor(
231 - self.unpadded_vocab_size, config.vocab_size
232 - )
215 + self.logits_processor = LogitsProcessor(config.vocab_size)
216
217 self.make_empty_intermediate_tensors = (
218 self.backbone.make_empty_intermediate_tensors
vllm/model_executor/models/mamba2.py
+5 -23
@@ -20,7 +20,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
20 )
21 from vllm.model_executor.layers.quantization import QuantizationConfig
22 from vllm.model_executor.layers.vocab_parallel_embedding import (
23 - DEFAULT_VOCAB_PADDING_SIZE,
23 ParallelLMHead,
24 VocabParallelEmbedding,
25 )
@@ -107,18 +106,12 @@ class Mamba2Model(nn.Module):
106 assert not is_lora_enabled
107
108 self.config = config
110 - lora_vocab = (
111 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
112 - if lora_config
113 - else 0
114 - )
115 - self.vocab_size = config.vocab_size + lora_vocab
116 - self.org_vocab_size = config.vocab_size
109 +
110 + self.vocab_size = config.vocab_size
111
112 self.embeddings = VocabParallelEmbedding(
113 self.vocab_size,
114 config.hidden_size,
121 - org_num_embeddings=config.vocab_size,
115 )
116
117 self.start_layer, self.end_layer, self.layers = make_layers(
@@ -238,7 +231,7 @@ class Mamba2ForCausalLM(
231
232 def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
233 config = vllm_config.model_config.hf_config
241 - lora_config = vllm_config.lora_config
234 +
235 scheduler_config = vllm_config.scheduler_config
236
237 super().__init__()
@@ -249,27 +242,16 @@ class Mamba2ForCausalLM(
242 self.backbone = Mamba2Model(
243 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "backbone")
244 )
252 - self.unpadded_vocab_size = config.vocab_size
253 - if lora_config:
254 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
245
246 self.lm_head = ParallelLMHead(
257 - self.unpadded_vocab_size,
247 + config.vocab_size,
248 config.hidden_size,
259 - org_num_embeddings=config.vocab_size,
260 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
261 - # We need bigger padding if using lora for kernel
262 - # compatibility
263 - if not lora_config
264 - else lora_config.lora_vocab_padding_size,
249 prefix=maybe_prefix(prefix, "lm_head"),
250 )
251 if config.tie_word_embeddings:
252 self.lm_head = self.lm_head.tie_weights(self.backbone.embeddings)
253
270 - self.logits_processor = LogitsProcessor(
271 - self.unpadded_vocab_size, config.vocab_size
272 - )
254 + self.logits_processor = LogitsProcessor(config.vocab_size)
255
256 self.make_empty_intermediate_tensors = (
257 self.backbone.make_empty_intermediate_tensors
vllm/model_executor/models/medusa.py
+3 -9
@@ -9,7 +9,6 @@ import torch.nn as nn
9 from vllm.config import VllmConfig
10 from vllm.model_executor.layers.logits_processor import LogitsProcessor
11 from vllm.model_executor.layers.vocab_parallel_embedding import (
12 - DEFAULT_VOCAB_PADDING_SIZE,
12 ParallelLMHead,
13 )
14 from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -70,14 +69,11 @@ class Medusa(nn.Module):
69 )
70 self.orig_vocab_size = config.vocab_size
71 self.truncated_vocab_size = config.truncated_vocab_size
73 - self.unpadded_vocab_size = self.truncated_vocab_size
72
73 if getattr(config, "original_lm_head", False):
74 self.lm_head = ParallelLMHead(
77 - self.unpadded_vocab_size,
75 + self.truncated_vocab_size,
76 config.hidden_size,
79 - org_num_embeddings=self.truncated_vocab_size,
80 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
77 prefix=maybe_prefix(prefix, "lm_head"),
78 )
79 self.lm_heads = [self.lm_head for _ in range(self.config.num_heads)]
@@ -85,10 +81,8 @@ class Medusa(nn.Module):
81 self.lm_heads = nn.ModuleList(
82 [
83 ParallelLMHead(
88 - self.unpadded_vocab_size,
84 + config.vocab_size,
85 config.hidden_size,
90 - org_num_embeddings=self.truncated_vocab_size,
91 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
86 prefix=maybe_prefix(prefix, f"lm_heads.{i}"),
87 )
88 for i in range(self.config.num_heads)
@@ -97,7 +91,7 @@ class Medusa(nn.Module):
91
92 logit_scale = getattr(config, "logit_scale", 1.0)
93 self.logits_processor = LogitsProcessor(
100 - self.unpadded_vocab_size, self.truncated_vocab_size, logit_scale
94 + config.vocab_size, self.truncated_vocab_size, logit_scale
95 )
96
97 # Token map is a idx to token mapping to reduce the vocab size for
vllm/model_executor/models/mimo.py
-2
@@ -151,10 +151,8 @@ class MiMoForCausalLM(Qwen2ForCausalLM, nn.Module):
151 nn.Module.__init__(self)
152 config = vllm_config.model_config.hf_config
153 quant_config = vllm_config.quant_config
154 - lora_config = vllm_config.lora_config
154
155 self.config = config
157 - self.lora_config = lora_config
156
157 self.quant_config = quant_config
158
vllm/model_executor/models/minicpm.py
+7 -23
@@ -55,7 +55,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
55 from vllm.model_executor.layers.quantization import QuantizationConfig
56 from vllm.model_executor.layers.rotary_embedding import get_rope
57 from vllm.model_executor.layers.vocab_parallel_embedding import (
58 - DEFAULT_VOCAB_PADDING_SIZE,
58 ParallelLMHead,
59 VocabParallelEmbedding,
60 )
@@ -405,22 +404,16 @@ class MiniCPMModel(nn.Module):
404 config = vllm_config.model_config.hf_config
405 cache_config = vllm_config.cache_config
406 quant_config = vllm_config.quant_config
408 - lora_config = vllm_config.lora_config
407
408 self.config = config
409 self.cache_config = cache_config
410 self.quant_config = quant_config
413 - lora_vocab = (
414 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
415 - if lora_config
416 - else 0
417 - )
418 - self.vocab_size = config.vocab_size + lora_vocab
419 - self.org_vocab_size = config.vocab_size
411 +
412 + self.vocab_size = config.vocab_size
413 +
414 self.embed_tokens = VocabParallelEmbedding(
415 self.vocab_size,
416 config.hidden_size,
423 - org_num_embeddings=config.vocab_size,
417 )
418 self.num_experts = getattr(self.config, "num_experts", 0)
419 self._init_layers(prefix, config, cache_config, quant_config)
@@ -588,13 +581,13 @@ class MiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
581 config = vllm_config.model_config.hf_config
582 cache_config = vllm_config.cache_config
583 quant_config = vllm_config.quant_config
591 - lora_config = vllm_config.lora_config
584 +
585 parallel_config = vllm_config.parallel_config
586
587 self.prefix = prefix
588 self.vllm_config = vllm_config
589 self.config = config
597 - self.lora_config = lora_config
590 +
591 self.cache_config = cache_config
592 self.quant_config = quant_config
593
@@ -602,18 +595,9 @@ class MiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
595 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
596 )
597
605 - unpadded_vocab_size = config.vocab_size
606 - if lora_config:
607 - unpadded_vocab_size += lora_config.lora_extra_vocab_size
598 self.lm_head = ParallelLMHead(
609 - unpadded_vocab_size,
599 + config.vocab_size,
600 config.hidden_size,
611 - org_num_embeddings=config.vocab_size,
612 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
613 - # We need bigger padding if using lora for kernel
614 - # compatibility
615 - if not lora_config
616 - else lora_config.lora_vocab_padding_size,
601 quant_config=quant_config,
602 prefix=maybe_prefix(prefix, "lm_head"),
603 )
@@ -621,7 +605,7 @@ class MiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
605 self.lm_head = self.lm_head.tie_weights(self.model.embed_tokens)
606 self.scale_width = self.config.hidden_size / self.config.dim_model_base
607
624 - self.logits_processor = LogitsProcessor(unpadded_vocab_size, config.vocab_size)
608 + self.logits_processor = LogitsProcessor(config.vocab_size)
609 self.make_empty_intermediate_tensors = (
610 self.model.make_empty_intermediate_tensors
611 )
vllm/model_executor/models/minicpm_eagle.py
+6 -23
@@ -37,7 +37,6 @@ from vllm.model_executor.layers.layernorm import RMSNorm
37 from vllm.model_executor.layers.logits_processor import LogitsProcessor
38 from vllm.model_executor.layers.quantization import QuantizationConfig
39 from vllm.model_executor.layers.vocab_parallel_embedding import (
40 - DEFAULT_VOCAB_PADDING_SIZE,
40 ParallelLMHead,
41 VocabParallelEmbedding,
42 )
@@ -151,18 +150,13 @@ class EagleMiniCPMModel(nn.Module):
150 config = vllm_config.speculative_config.draft_model_config.hf_config
151 cache_config = vllm_config.cache_config
152 quant_config = vllm_config.quant_config
154 - lora_config = vllm_config.lora_config
153
154 self.config = config
155 self.cache_config = cache_config
156 self.quant_config = quant_config
159 - lora_vocab = (
160 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
161 - if lora_config
162 - else 0
163 - )
164 - self.vocab_size = config.vocab_size + lora_vocab
165 - self.org_vocab_size = config.vocab_size
157 +
158 + self.vocab_size = config.vocab_size
159 +
160 self.fc = torch.nn.Linear(
161 self.config.hidden_size * 2, self.config.hidden_size, bias=False
162 )
@@ -171,7 +165,6 @@ class EagleMiniCPMModel(nn.Module):
165 self.embed_tokens = VocabParallelEmbedding(
166 self.vocab_size,
167 config.hidden_size,
174 - org_num_embeddings=config.vocab_size,
168 )
169 self.num_experts = getattr(self.config, "num_experts", 0)
170 self._init_layers(prefix, config, cache_config, quant_config, start_layer)
@@ -321,12 +314,11 @@ class EagleMiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
314 config = vllm_config.speculative_config.draft_model_config.hf_config
315 cache_config = vllm_config.cache_config
316 quant_config = vllm_config.quant_config
324 - lora_config = vllm_config.lora_config
317
318 self.prefix = prefix
319 self.vllm_config = vllm_config
320 self.config = config
329 - self.lora_config = lora_config
321 +
322 self.cache_config = cache_config
323 self.quant_config = quant_config
324
@@ -340,18 +332,9 @@ class EagleMiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
332 start_layer=target_layer_num,
333 )
334
343 - unpadded_vocab_size = config.vocab_size
344 - if lora_config:
345 - unpadded_vocab_size += lora_config.lora_extra_vocab_size
335 self.lm_head = ParallelLMHead(
347 - unpadded_vocab_size,
336 + config.vocab_size,
337 config.hidden_size,
349 - org_num_embeddings=config.vocab_size,
350 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
351 - # We need bigger padding if using lora for kernel
352 - # compatibility
353 - if not lora_config
354 - else lora_config.lora_vocab_padding_size,
338 quant_config=quant_config,
339 prefix=maybe_prefix(prefix, "lm_head"),
340 )
@@ -359,7 +342,7 @@ class EagleMiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
342 self.lm_head = self.lm_head.tie_weights(self.model.embed_tokens)
343 self.scale_width = self.config.hidden_size / self.config.dim_model_base
344
362 - self.logits_processor = LogitsProcessor(unpadded_vocab_size, config.vocab_size)
345 + self.logits_processor = LogitsProcessor(config.vocab_size)
346 self.make_empty_intermediate_tensors = (
347 self.model.make_empty_intermediate_tensors
348 )
vllm/model_executor/models/minimax_text_01.py
+3 -8
@@ -41,7 +41,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
41 from vllm.model_executor.layers.quantization import QuantizationConfig
42 from vllm.model_executor.layers.rotary_embedding import get_rope
43 from vllm.model_executor.layers.vocab_parallel_embedding import (
44 - DEFAULT_VOCAB_PADDING_SIZE,
44 ParallelLMHead,
45 VocabParallelEmbedding,
46 )
@@ -669,16 +668,14 @@ class MiniMaxText01ForCausalLM(nn.Module, HasInnerState, IsHybrid):
668 def __init__(self, *, vllm_config: VllmConfig, prefix: str = "") -> None:
669 super().__init__()
670 config = vllm_config.model_config.hf_config
672 - lora_config = vllm_config.lora_config
671 +
672 self.config = config
674 - self.lora_config = lora_config
673
674 if not hasattr(config, "sliding_window"):
675 config.sliding_window = None
676
677 self.CONCAT_FFN = True
678
681 - self.unpadded_vocab_size = self.config.vocab_size
679 if hasattr(vllm_config.model_config, "max_model_len"):
680 self.config.max_model_len = vllm_config.model_config.max_model_len
681 self.model = MiniMaxText01Model(
@@ -686,15 +683,13 @@ class MiniMaxText01ForCausalLM(nn.Module, HasInnerState, IsHybrid):
683 )
684 if get_pp_group().is_last_rank:
685 self.lm_head = ParallelLMHead(
689 - self.unpadded_vocab_size,
686 + config.vocab_size,
687 self.config.hidden_size,
691 - org_num_embeddings=self.config.vocab_size,
692 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
688 prefix=maybe_prefix(prefix, "lm_head"),
689 )
690
691 self.logits_processor = LogitsProcessor(
697 - self.unpadded_vocab_size, self.config.vocab_size
692 + config.vocab_size, self.config.vocab_size
693 )
694
695 else:
vllm/model_executor/models/mlp_speculator.py
-1
@@ -123,7 +123,6 @@ class MLPSpeculator(nn.Module):
123 VocabParallelEmbedding(
124 config.vocab_size,
125 self.inner_dim,
126 - org_num_embeddings=config.vocab_size,
126 )
127 for _ in range(self.max_speculative_tokens)
128 ]
vllm/model_executor/models/molmo.py
+1 -2
@@ -1404,10 +1404,9 @@ class MolmoForCausalLM(
1404 config = vllm_config.model_config.hf_config
1405 quant_config = vllm_config.quant_config
1406 multimodal_config = vllm_config.model_config.multimodal_config
1407 - lora_config = vllm_config.lora_config
1407 +
1408 self.config = config
1409 self.multimodal_config = multimodal_config
1410 - self.lora_config = lora_config
1410
1411 vision_config = VisionBackboneConfig()
1412 self.vision_backbone = MolmoVisionBackbone(config, vision_config, quant_config)
vllm/model_executor/models/nemotron.py
+7 -23
@@ -45,7 +45,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
45 from vllm.model_executor.layers.quantization import QuantizationConfig
46 from vllm.model_executor.layers.rotary_embedding import get_rope
47 from vllm.model_executor.layers.vocab_parallel_embedding import (
48 - DEFAULT_VOCAB_PADDING_SIZE,
48 ParallelLMHead,
49 VocabParallelEmbedding,
50 )
@@ -319,24 +318,18 @@ class NemotronModel(nn.Module):
318 config = vllm_config.model_config.hf_config
319 cache_config = vllm_config.cache_config
320 quant_config = vllm_config.quant_config
322 - lora_config = vllm_config.lora_config
321
322 self.config = config
323 self.quant_config = quant_config
326 - lora_vocab = (
327 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
328 - if lora_config
329 - else 0
330 - )
331 - self.vocab_size = config.vocab_size + lora_vocab
332 - self.org_vocab_size = config.vocab_size
324 +
325 + self.vocab_size = config.vocab_size
326 +
327 if get_pp_group().is_first_rank or (
328 config.tie_word_embeddings and get_pp_group().is_last_rank
329 ):
330 self.embed_tokens = VocabParallelEmbedding(
331 self.vocab_size,
332 config.hidden_size,
339 - org_num_embeddings=config.vocab_size,
333 )
334 else:
335 self.embed_tokens = PPMissingLayer()
@@ -467,29 +460,20 @@ class NemotronForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
460 super().__init__()
461 config = vllm_config.model_config.hf_config
462 quant_config = vllm_config.quant_config
470 - lora_config = vllm_config.lora_config
463 +
464 assert isinstance(config, NemotronConfig)
465
466 self.config = config
474 - self.lora_config = lora_config
467 +
468 self.quant_config = quant_config
469
470 self.model = NemotronModel(
471 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
472 )
473 if get_pp_group().is_last_rank:
481 - self.unpadded_vocab_size = config.vocab_size
482 - if lora_config:
483 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
474 self.lm_head = ParallelLMHead(
485 - self.unpadded_vocab_size,
475 + config.vocab_size,
476 config.hidden_size,
487 - org_num_embeddings=config.vocab_size,
488 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
489 - # We need bigger padding if using lora for kernel
490 - # compatibility
491 - if not lora_config
492 - else lora_config.lora_vocab_padding_size,
477 quant_config=quant_config,
478 prefix=maybe_prefix(prefix, "lm_head"),
479 )
@@ -498,7 +482,7 @@ class NemotronForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
482
483 logit_scale = getattr(config, "logit_scale", 1.0)
484 self.logits_processor = LogitsProcessor(
501 - self.unpadded_vocab_size, config.vocab_size, logit_scale
485 + config.vocab_size, scale=logit_scale
486 )
487 else:
488 self.lm_head = PPMissingLayer()
vllm/model_executor/models/nemotron_h.py
+6 -24
@@ -50,7 +50,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
50 )
51 from vllm.model_executor.layers.quantization import QuantizationConfig
52 from vllm.model_executor.layers.vocab_parallel_embedding import (
53 - DEFAULT_VOCAB_PADDING_SIZE,
53 ParallelLMHead,
54 VocabParallelEmbedding,
55 )
@@ -513,21 +512,14 @@ class NemotronHModel(nn.Module):
512 cache_config = vllm_config.cache_config
513 quant_config = vllm_config.quant_config
514 parallel_config = vllm_config.parallel_config
516 - lora_config = vllm_config.lora_config
515
516 self.config = config
519 - lora_vocab = (
520 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
521 - if lora_config
522 - else 0
523 - )
524 - self.vocab_size = config.vocab_size + lora_vocab
525 - self.org_vocab_size = config.vocab_size
517 +
518 + self.vocab_size = config.vocab_size
519
520 self.embed_tokens = VocabParallelEmbedding(
521 self.vocab_size,
522 config.hidden_size,
530 - org_num_embeddings=config.vocab_size,
523 )
524
525 self.has_moe = "E" in config.hybrid_override_pattern
@@ -768,7 +760,7 @@ class NemotronHForCausalLM(
760 config = vllm_config.model_config.hf_config
761 self.vllm_config = vllm_config
762 self.model_config = vllm_config.model_config
771 - lora_config = vllm_config.lora_config
763 +
764 scheduler_config = vllm_config.scheduler_config
765
766 self.quant_config = vllm_config.quant_config
@@ -779,24 +771,14 @@ class NemotronHForCausalLM(
771 self.model = NemotronHModel(
772 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
773 )
782 - self.unpadded_vocab_size = config.vocab_size
783 - if lora_config:
784 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
774 +
775 self.lm_head = ParallelLMHead(
786 - self.unpadded_vocab_size,
776 + config.vocab_size,
777 config.hidden_size,
788 - org_num_embeddings=config.vocab_size,
789 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
790 - # We need bigger padding if using lora for kernel
791 - # compatibility
792 - if not lora_config
793 - else lora_config.lora_vocab_padding_size,
778 prefix=maybe_prefix(prefix, "lm_head"),
779 )
780
797 - self.logits_processor = LogitsProcessor(
798 - self.unpadded_vocab_size, config.vocab_size
799 - )
781 + self.logits_processor = LogitsProcessor(config.vocab_size)
782
783 self.make_empty_intermediate_tensors = (
784 self.model.make_empty_intermediate_tensors
vllm/model_executor/models/nemotron_nas.py
+6 -25
@@ -41,7 +41,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
41 from vllm.model_executor.layers.quantization import QuantizationConfig
42 from vllm.model_executor.layers.rotary_embedding import get_rope
43 from vllm.model_executor.layers.vocab_parallel_embedding import (
44 - DEFAULT_VOCAB_PADDING_SIZE,
44 ParallelLMHead,
45 VocabParallelEmbedding,
46 )
@@ -250,25 +249,19 @@ class DeciModel(nn.Module):
249 config = vllm_config.model_config.hf_config
250 cache_config = vllm_config.cache_config
251 quant_config = vllm_config.quant_config
253 - lora_config = vllm_config.lora_config
252
253 self.config = config
254 self.quant_config = quant_config
255 self.padding_idx = config.pad_token_id
258 - lora_vocab = (
259 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
260 - if lora_config
261 - else 0
262 - )
263 - self.vocab_size = config.vocab_size + lora_vocab
264 - self.org_vocab_size = config.vocab_size
256 +
257 + self.vocab_size = config.vocab_size
258 +
259 if get_pp_group().is_first_rank or (
260 config.tie_word_embeddings and get_pp_group().is_last_rank
261 ):
262 self.embed_tokens = VocabParallelEmbedding(
263 self.vocab_size,
264 config.hidden_size,
271 - org_num_embeddings=config.vocab_size,
265 quant_config=quant_config,
266 )
267 else:
@@ -437,29 +430,17 @@ class DeciLMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, HasNoOps):
430 super().__init__()
431 config = vllm_config.model_config.hf_config
432 quant_config = vllm_config.quant_config
440 - lora_config = vllm_config.lora_config
433 +
434 self.config = config
442 - self.lora_config = lora_config
435
436 self.model = self._init_model(
437 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
438 )
439
440 if get_pp_group().is_last_rank:
449 - self.unpadded_vocab_size = config.vocab_size
450 - if lora_config:
451 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
441 self.lm_head = ParallelLMHead(
453 - self.unpadded_vocab_size,
442 + config.vocab_size,
443 config.hidden_size,
455 - org_num_embeddings=config.vocab_size,
456 - padding_size=(
457 - DEFAULT_VOCAB_PADDING_SIZE
458 - # We need bigger padding if using lora for kernel
459 - # compatibility
460 - if not lora_config
461 - else lora_config.lora_vocab_padding_size
462 - ),
444 quant_config=quant_config,
445 prefix=maybe_prefix(prefix, "lm_head"),
446 )
@@ -468,7 +449,7 @@ class DeciLMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, HasNoOps):
449
450 logit_scale = getattr(config, "logit_scale", 1.0)
451 self.logits_processor = LogitsProcessor(
471 - self.unpadded_vocab_size, config.vocab_size, logit_scale
452 + config.vocab_size, scale=logit_scale
453 )
454 else:
455 self.lm_head = PPMissingLayer()
vllm/model_executor/models/olmo.py
+1 -3
@@ -368,11 +368,9 @@ class OlmoForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
368 if config.tie_word_embeddings:
369 self.lm_head = self.model.embed_tokens
370 else:
371 - self.unpadded_vocab_size = config.vocab_size
371 self.lm_head = ParallelLMHead(
373 - self.unpadded_vocab_size,
372 + config.vocab_size,
373 config.hidden_size,
375 - org_num_embeddings=config.vocab_size,
374 quant_config=quant_config,
375 prefix=maybe_prefix(prefix, "lm_head"),
376 )
vllm/model_executor/models/olmo2.py
-2
@@ -408,11 +408,9 @@ class Olmo2ForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
408 if config.tie_word_embeddings:
409 self.lm_head = self.model.embed_tokens
410 else:
411 - self.unpadded_vocab_size = config.vocab_size
411 self.lm_head = ParallelLMHead(
412 config.vocab_size,
413 config.hidden_size,
415 - org_num_embeddings=config.vocab_size,
414 quant_config=vllm_config.quant_config,
415 prefix=maybe_prefix(prefix, "lm_head"),
416 )
vllm/model_executor/models/ouro.py
-2
@@ -462,10 +462,8 @@ class OuroForCausalLM(nn.Module, SupportsLoRA):
462 super().__init__()
463 config = vllm_config.model_config.hf_config
464 quant_config = vllm_config.quant_config
465 - lora_config = vllm_config.lora_config
465
466 self.config = config
468 - self.lora_config = lora_config
467
468 self.quant_config = quant_config
469 self.model = OuroModel(
vllm/model_executor/models/phi.py
+1 -2
@@ -323,11 +323,10 @@ class PhiForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
323 super().__init__()
324 config = vllm_config.model_config.hf_config
325 quant_config = vllm_config.quant_config
326 - lora_config = vllm_config.lora_config
326 +
327 self.config = config
328 # lm_head use bias, cannot share word embeddings
329 assert not config.tie_word_embeddings
330 - self.lora_config = lora_config
330
331 self.quant_config = quant_config
332
vllm/model_executor/models/phi3v.py
-1
@@ -591,7 +591,6 @@ class Phi3VForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsQuant)
591 self.embed_tokens = VocabParallelEmbedding(
592 config.vocab_size,
593 config.hidden_size,
594 - org_num_embeddings=config.vocab_size,
594 quant_config=self.quant_config,
595 prefix=maybe_prefix(prefix, "model.embed_tokens"),
596 )
vllm/model_executor/models/phi4mm.py
+2 -12
@@ -21,7 +21,6 @@ from vllm.distributed import get_pp_group
21 from vllm.model_executor.layers.logits_processor import LogitsProcessor
22 from vllm.model_executor.layers.quantization import QuantizationConfig
23 from vllm.model_executor.layers.vocab_parallel_embedding import (
24 - DEFAULT_VOCAB_PADDING_SIZE,
24 ParallelLMHead,
25 )
26 from vllm.model_executor.models.llama import LlamaModel
@@ -1023,12 +1022,10 @@ class Phi4MMForCausalLM(nn.Module, SupportsLoRA, SupportsMultiModal):
1022 multimodal_config = vllm_config.model_config.multimodal_config
1023 assert multimodal_config, "multimodal_config is required"
1024 quant_config = vllm_config.quant_config
1026 - lora_config = vllm_config.lora_config
1025
1026 self.config = config
1027 self.multimodal_config = multimodal_config
1028 self.quant_config = quant_config
1031 - self.lora_config = lora_config
1029
1030 # Tensor/Pipeline parallel not supported for now.
1031 assert get_pp_group().world_size == 1, "pipeline parallel is not supported"
@@ -1055,23 +1052,16 @@ class Phi4MMForCausalLM(nn.Module, SupportsLoRA, SupportsMultiModal):
1052 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
1053 )
1054
1058 - self.unpadded_vocab_size = config.vocab_size
1059 - if lora_config:
1060 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
1055 self.lm_head = ParallelLMHead(
1062 - self.unpadded_vocab_size,
1056 + config.vocab_size,
1057 config.hidden_size,
1064 - org_num_embeddings=config.vocab_size,
1065 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
1058 quant_config=quant_config,
1059 prefix=maybe_prefix(prefix, "lm_head"),
1060 )
1061 if config.tie_word_embeddings:
1062 self.lm_head = self.lm_head.tie_weights(self.model.embed_tokens)
1063 logit_scale = getattr(config, "logit_scale", 1.0)
1072 - self.logits_processor = LogitsProcessor(
1073 - self.unpadded_vocab_size, config.vocab_size, logit_scale
1074 - )
1064 + self.logits_processor = LogitsProcessor(config.vocab_size, scale=logit_scale)
1065
1066 def _parse_and_validate_audio_input(
1067 self, **kwargs: object
vllm/model_executor/models/phimoe.py
+7 -27
@@ -45,7 +45,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
45 from vllm.model_executor.layers.quantization import QuantizationConfig
46 from vllm.model_executor.layers.rotary_embedding import get_rope
47 from vllm.model_executor.layers.vocab_parallel_embedding import (
48 - DEFAULT_VOCAB_PADDING_SIZE,
48 ParallelLMHead,
49 VocabParallelEmbedding,
50 )
@@ -458,22 +457,15 @@ class PhiMoEModel(nn.Module):
457 config = vllm_config.model_config.hf_config
458 cache_config = vllm_config.cache_config
459 quant_config = vllm_config.quant_config
461 - lora_config = vllm_config.lora_config
460
463 - lora_vocab = (
464 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
465 - if lora_config
466 - else 0
467 - )
468 - self.vocab_size = config.vocab_size + lora_vocab
469 - self.org_vocab_size = config.vocab_size
461 + self.vocab_size = config.vocab_size
462 +
463 self.config = config
464 self.quant_config = quant_config
465
466 self.embed_tokens = VocabParallelEmbedding(
467 self.vocab_size,
468 config.hidden_size,
476 - org_num_embeddings=config.vocab_size,
469 )
470 self.start_layer, self.end_layer, self.layers = make_layers(
471 config.num_hidden_layers,
@@ -634,35 +626,23 @@ class PhiMoEForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
626 def __init__(self, *, vllm_config: VllmConfig, prefix: str = ""):
627 super().__init__()
628 config = vllm_config.model_config.hf_config
637 - lora_config = vllm_config.lora_config
629 +
630 self.config = config
639 - self.lora_config = lora_config
631 +
632 self.quant_config = vllm_config.quant_config
633
634 self.model = PhiMoEModel(
635 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
636 )
645 - self.unpadded_vocab_size = config.vocab_size
646 - if lora_config:
647 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
637 +
638 self.lm_head = ParallelLMHead(
649 - self.unpadded_vocab_size,
639 + config.vocab_size,
640 config.hidden_size,
651 - org_num_embeddings=config.vocab_size,
652 - padding_size=(
653 - DEFAULT_VOCAB_PADDING_SIZE
654 - # We need bigger padding if using lora for kernel
655 - # compatibility
656 - if not lora_config
657 - else lora_config.lora_vocab_padding_size
658 - ),
641 quant_config=None,
642 bias=True,
643 prefix=maybe_prefix(prefix, "lm_head"),
644 )
663 - self.logits_processor = LogitsProcessor(
664 - self.unpadded_vocab_size, config.vocab_size
665 - )
645 + self.logits_processor = LogitsProcessor(config.vocab_size)
646
647 self.make_empty_intermediate_tensors = (
648 self.model.make_empty_intermediate_tensors
vllm/model_executor/models/plamo2.py
+2 -9
@@ -46,7 +46,6 @@ from vllm.model_executor.layers.mamba.ops.ssd_combined import (
46 from vllm.model_executor.layers.quantization import QuantizationConfig
47 from vllm.model_executor.layers.rotary_embedding import get_rope
48 from vllm.model_executor.layers.vocab_parallel_embedding import (
49 - DEFAULT_VOCAB_PADDING_SIZE,
49 ParallelLMHead,
50 VocabParallelEmbedding,
51 )
@@ -751,12 +750,10 @@ class Plamo2Model(torch.nn.Module):
750 self.config = config
751 self.padding_idx = config.pad_token_id
752 self.vocab_size = config.vocab_size
754 - self.org_vocab_size = config.vocab_size
753
754 self.embed_tokens = VocabParallelEmbedding(
755 self.vocab_size,
756 config.hidden_size,
759 - org_num_embeddings=config.vocab_size,
757 prefix=f"{prefix}.embed_tokens",
758 )
759 self.make_empty_intermediate_tensors = make_empty_intermediate_tensors_factory(
@@ -827,20 +824,16 @@ class Plamo2ForCausalLM(torch.nn.Module, HasInnerState, SupportsPP, IsHybrid):
824 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
825 )
826 self.vocab_size = self.config.vocab_size
830 - self.unpadded_vocab_size = self.config.vocab_size
831 - num_embeddings = ((self.vocab_size + 15) // 16) * 16
827 self.lm_head = ParallelLMHead(
833 - num_embeddings,
828 + self.vocab_size,
829 self.config.hidden_size,
835 - org_num_embeddings=self.config.vocab_size,
836 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
830 prefix=f"{prefix}.lm_head",
831 )
832 if self.config.tie_word_embeddings:
833 self.lm_head = self.lm_head.tie_weights(self.model.embed_tokens)
834
835 self.logits_processor = LogitsProcessor(
843 - self.unpadded_vocab_size, self.config.vocab_size
836 + config.vocab_size, self.config.vocab_size
837 )
838 self.make_empty_intermediate_tensors = (
839 self.model.make_empty_intermediate_tensors
vllm/model_executor/models/qwen2.py
-2
@@ -477,10 +477,8 @@ class Qwen2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
477 super().__init__()
478 config = vllm_config.model_config.hf_config
479 quant_config = vllm_config.quant_config
480 - lora_config = vllm_config.lora_config
480
481 self.config = config
483 - self.lora_config = lora_config
482
483 self.quant_config = quant_config
484 self.model = Qwen2Model(
vllm/model_executor/models/qwen2_rm.py
-2
@@ -43,10 +43,8 @@ class Qwen2RewardBaseModel(nn.Module, SupportsLoRA, SupportsPP):
43 super().__init__()
44 config = vllm_config.model_config.hf_config
45 quant_config = vllm_config.quant_config
46 - lora_config = vllm_config.lora_config
46
47 self.config = config
49 - self.lora_config = lora_config
48
49 self.quant_config = quant_config
50 self.model = Qwen2Model(
vllm/model_executor/models/qwen3.py
-2
@@ -272,10 +272,8 @@ class Qwen3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
272 super().__init__()
273 config = vllm_config.model_config.hf_config
274 quant_config = vllm_config.quant_config
275 - lora_config = vllm_config.lora_config
275
276 self.config = config
278 - self.lora_config = lora_config
277
278 self.quant_config = quant_config
279 self.model = Qwen3Model(
vllm/model_executor/models/qwen3_next.py
+7 -23
@@ -59,7 +59,6 @@ from vllm.model_executor.layers.mamba.ops.causal_conv1d import (
59 from vllm.model_executor.layers.quantization import QuantizationConfig
60 from vllm.model_executor.layers.rotary_embedding import get_rope
61 from vllm.model_executor.layers.vocab_parallel_embedding import (
62 - DEFAULT_VOCAB_PADDING_SIZE,
62 ParallelLMHead,
63 VocabParallelEmbedding,
64 )
@@ -967,22 +966,17 @@ class Qwen3NextModel(nn.Module):
966
967 config: Qwen3NextConfig = vllm_config.model_config.hf_config
968 parallel_config = vllm_config.parallel_config
970 - lora_config = vllm_config.lora_config
969 +
970 eplb_config = parallel_config.eplb_config
971 self.num_redundant_experts = eplb_config.num_redundant_experts
972
973 self.config = config
975 - lora_vocab = (
976 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
977 - if lora_config
978 - else 0
979 - )
980 - self.vocab_size = config.vocab_size + lora_vocab
974 +
975 + self.vocab_size = config.vocab_size
976
977 self.embed_tokens = VocabParallelEmbedding(
978 self.vocab_size,
979 config.hidden_size,
985 - org_num_embeddings=config.vocab_size,
980 )
981
982 def get_layer(prefix: str):
@@ -1196,7 +1190,7 @@ class Qwen3NextForCausalLM(
1190 self.vllm_config = vllm_config
1191 self.model_config = vllm_config.model_config
1192 cache_config = vllm_config.cache_config
1199 - lora_config = vllm_config.lora_config
1193 +
1194 scheduler_config = vllm_config.scheduler_config
1195 assert not cache_config.enable_prefix_caching, (
1196 "Qwen3Next currently does not support prefix caching"
@@ -1209,23 +1203,13 @@ class Qwen3NextForCausalLM(
1203 self.model = Qwen3NextModel(
1204 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
1205 )
1212 - self.unpadded_vocab_size = config.vocab_size
1213 - if lora_config:
1214 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
1206 +
1207 self.lm_head = ParallelLMHead(
1216 - self.unpadded_vocab_size,
1208 + config.vocab_size,
1209 config.hidden_size,
1218 - org_num_embeddings=config.vocab_size,
1219 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
1220 - # We need bigger padding if using lora for kernel
1221 - # compatibility
1222 - if not lora_config
1223 - else lora_config.lora_vocab_padding_size,
1210 prefix=maybe_prefix(prefix, "lm_head"),
1211 )
1226 - self.logits_processor = LogitsProcessor(
1227 - self.unpadded_vocab_size, config.vocab_size
1228 - )
1212 + self.logits_processor = LogitsProcessor(config.vocab_size)
1213 self.make_empty_intermediate_tensors = (
1214 self.model.make_empty_intermediate_tensors
1215 )
vllm/model_executor/models/qwen3_next_mtp.py
+6 -17
@@ -15,7 +15,6 @@ from vllm.model_executor.layers.fused_moe import FusedMoE
15 from vllm.model_executor.layers.linear import ColumnParallelLinear
16 from vllm.model_executor.layers.logits_processor import LogitsProcessor
17 from vllm.model_executor.layers.vocab_parallel_embedding import (
18 - DEFAULT_VOCAB_PADDING_SIZE,
18 ParallelLMHead,
19 VocabParallelEmbedding,
20 )
@@ -48,17 +47,12 @@ class Qwen3NextMultiTokenPredictor(nn.Module):
47
48 model_config = vllm_config.model_config
49 quant_config = vllm_config.quant_config
51 - lora_config = vllm_config.lora_config
50 +
51 config: Qwen3NextConfig = model_config.hf_config
52
53 self.config = config
55 - lora_vocab = (
56 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
57 - if lora_config
58 - else 0
59 - )
60 - self.vocab_size = config.vocab_size + lora_vocab
61 - self.org_vocab_size = config.vocab_size
54 +
55 + self.vocab_size = config.vocab_size
56
57 self.mtp_start_layer_idx = config.num_hidden_layers
58 self.num_mtp_layers = getattr(config, "num_nextn_predict_layers", 1)
@@ -66,7 +60,6 @@ class Qwen3NextMultiTokenPredictor(nn.Module):
60 self.embed_tokens = VocabParallelEmbedding(
61 self.vocab_size,
62 config.hidden_size,
69 - org_num_embeddings=config.vocab_size,
63 )
64
65 self.fc = ColumnParallelLinear(
@@ -252,17 +245,13 @@ class Qwen3NextMTP(nn.Module, SupportsPP, QwenNextMixtureOfExperts):
245 self.model = Qwen3NextMultiTokenPredictor(
246 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "mtp")
247 )
255 - self.unpadded_vocab_size = config.vocab_size
248 +
249 self.lm_head = ParallelLMHead(
257 - self.unpadded_vocab_size,
250 + config.vocab_size,
251 config.hidden_size,
259 - org_num_embeddings=config.vocab_size,
260 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
252 prefix=maybe_prefix(prefix, "lm_head"),
253 )
263 - self.logits_processor = LogitsProcessor(
264 - self.unpadded_vocab_size, config.vocab_size
265 - )
254 + self.logits_processor = LogitsProcessor(config.vocab_size)
255 self.make_empty_intermediate_tensors = (
256 self.model.make_empty_intermediate_tensors
257 )
vllm/model_executor/models/qwen3_vl.py
-2
@@ -1136,10 +1136,8 @@ class Qwen3LLMForCausalLM(Qwen3ForCausalLM):
1136 super(Qwen3ForCausalLM, self).__init__()
1137 config = vllm_config.model_config.hf_config.text_config
1138 quant_config = vllm_config.quant_config
1139 - lora_config = vllm_config.lora_config
1139
1140 self.config = config
1142 - self.lora_config = lora_config
1141
1142 self.quant_config = quant_config
1143 self.model = Qwen3LLMModel(vllm_config=vllm_config, prefix=prefix)
vllm/model_executor/models/seed_oss.py
-2
@@ -440,10 +440,8 @@ class SeedOssForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
440 super().__init__()
441 config = vllm_config.model_config.hf_config
442 quant_config = vllm_config.quant_config
443 - lora_config = vllm_config.lora_config
443
444 self.config = config
446 - self.lora_config = lora_config
445
446 self.quant_config = quant_config
447 self.model = SeedOssModel(
vllm/model_executor/models/solar.py
+7 -23
@@ -46,7 +46,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
46 from vllm.model_executor.layers.quantization import QuantizationConfig
47 from vllm.model_executor.layers.rotary_embedding import get_rope
48 from vllm.model_executor.layers.vocab_parallel_embedding import (
49 - DEFAULT_VOCAB_PADDING_SIZE,
49 ParallelLMHead,
50 VocabParallelEmbedding,
51 )
@@ -277,24 +276,18 @@ class SolarModel(nn.Module):
276 config = vllm_config.model_config.hf_config
277 cache_config = vllm_config.cache_config
278 quant_config = vllm_config.quant_config
280 - lora_config = vllm_config.lora_config
279
280 self.config = config
281 self.quant_config = quant_config
284 - lora_vocab = (
285 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
286 - if lora_config
287 - else 0
288 - )
289 - self.vocab_size = config.vocab_size + lora_vocab
290 - self.org_vocab_size = config.vocab_size
282 +
283 + self.vocab_size = config.vocab_size
284 +
285 if get_pp_group().is_first_rank or (
286 config.tie_word_embeddings and get_pp_group().is_last_rank
287 ):
288 self.embed_tokens = VocabParallelEmbedding(
289 self.vocab_size,
290 config.hidden_size,
297 - org_num_embeddings=config.vocab_size,
291 )
292 else:
293 self.embed_tokens = PPMissingLayer()
@@ -455,9 +448,9 @@ class SolarForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
448 super().__init__()
449 config = vllm_config.model_config.hf_config
450 quant_config = vllm_config.quant_config
458 - lora_config = vllm_config.lora_config
451 +
452 self.config = config
460 - self.lora_config = lora_config
453 +
454 self.quant_config = quant_config
455
456 self.model = SolarModel(
@@ -465,18 +458,9 @@ class SolarForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
458 prefix=maybe_prefix(prefix, "model"),
459 )
460 if get_pp_group().is_last_rank:
468 - self.unpadded_vocab_size = config.vocab_size
469 - if lora_config:
470 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
461 self.lm_head = ParallelLMHead(
472 - self.unpadded_vocab_size,
462 + config.vocab_size,
463 config.hidden_size,
474 - org_num_embeddings=config.vocab_size,
475 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
476 - # We need bigger padding if using lora for kernel
477 - # compatibility
478 - if not lora_config
479 - else lora_config.lora_vocab_padding_size,
464 quant_config=quant_config,
465 prefix=maybe_prefix(prefix, "lm_head"),
466 )
@@ -485,7 +469,7 @@ class SolarForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
469
470 logit_scale = getattr(config, "logit_scale", 1.0)
471 self.logits_processor = LogitsProcessor(
488 - self.unpadded_vocab_size, config.vocab_size, logit_scale
472 + config.vocab_size, scale=logit_scale
473 )
474 else:
475 self.lm_head = PPMissingLayer()
vllm/model_executor/models/starcoder2.py
+3 -9
@@ -42,7 +42,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
42 from vllm.model_executor.layers.quantization import QuantizationConfig
43 from vllm.model_executor.layers.rotary_embedding import get_rope
44 from vllm.model_executor.layers.vocab_parallel_embedding import (
45 - DEFAULT_VOCAB_PADDING_SIZE,
45 ParallelLMHead,
46 VocabParallelEmbedding,
47 )
@@ -319,22 +318,17 @@ class Starcoder2ForCausalLM(nn.Module, SupportsPP):
318 vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
319 )
320 self.vocab_size = config.vocab_size
322 - self.unpadded_vocab_size = config.vocab_size
321 +
322 if config.tie_word_embeddings:
323 self.lm_head = self.model.embed_tokens
324 else:
326 - self.unpadded_vocab_size = config.vocab_size
325 self.lm_head = ParallelLMHead(
328 - self.unpadded_vocab_size,
326 + config.vocab_size,
327 config.hidden_size,
330 - org_num_embeddings=config.vocab_size,
331 - padding_size=DEFAULT_VOCAB_PADDING_SIZE,
328 quant_config=quant_config,
329 prefix=f"{prefix}.lm_head",
330 )
335 - self.logits_processor = LogitsProcessor(
336 - self.unpadded_vocab_size, config.vocab_size
337 - )
331 + self.logits_processor = LogitsProcessor(config.vocab_size)
332 self.make_empty_intermediate_tensors = (
333 self.model.make_empty_intermediate_tensors
334 )
vllm/model_executor/models/step3_text.py
+3 -13
@@ -31,7 +31,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
31 from vllm.model_executor.layers.quantization import QuantizationConfig
32 from vllm.model_executor.layers.rotary_embedding import get_rope
33 from vllm.model_executor.layers.vocab_parallel_embedding import (
34 - DEFAULT_VOCAB_PADDING_SIZE,
34 ParallelLMHead,
35 VocabParallelEmbedding,
36 )
@@ -400,28 +399,19 @@ class Step3TextForCausalLM(nn.Module, SupportsPP):
399 ):
400 super().__init__()
401 config = vllm_config.model_config.hf_config
403 - lora_config = vllm_config.lora_config
402 +
403 self.config = config
404 self.vllm_config = vllm_config
405
406 self.model = Step3TextModel(vllm_config=vllm_config, prefix=prefix)
407
408 if get_pp_group().is_last_rank:
410 - self.unpadded_vocab_size = config.vocab_size
411 - if lora_config:
412 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
409 self.lm_head = ParallelLMHead(
414 - self.unpadded_vocab_size,
410 + config.vocab_size,
411 config.hidden_size,
416 - org_num_embeddings=config.vocab_size,
417 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
418 - if not lora_config
419 - else lora_config.lora_vocab_padding_size,
412 prefix=maybe_prefix(prefix, "lm_head"),
413 )
422 - self.logits_processor = LogitsProcessor(
423 - self.unpadded_vocab_size, config.vocab_size
424 - )
414 + self.logits_processor = LogitsProcessor(config.vocab_size)
415 else:
416 self.lm_head = PPMissingLayer()
417
vllm/model_executor/models/transformers/causal.py
+1 -2
@@ -42,7 +42,6 @@ class CausalMixin(VllmModelForTextGeneration):
42 self.skip_prefixes.append("lm_head.")
43
44 if self.pp_group.is_last_rank:
45 - self.unpadded_vocab_size = self.text_config.vocab_size
45 self.lm_head = ParallelLMHead(
46 self.text_config.vocab_size,
47 self.text_config.hidden_size,
@@ -56,7 +55,7 @@ class CausalMixin(VllmModelForTextGeneration):
55
56 logit_scale = getattr(self.text_config, "logit_scale", 1.0)
57 self.logits_processor = LogitsProcessor(
59 - self.unpadded_vocab_size, self.text_config.vocab_size, logit_scale
58 + self.text_config.vocab_size, scale=logit_scale
59 )
60 else:
61 self.lm_head = PPMissingLayer()
vllm/model_executor/models/whisper.py
+2 -4
@@ -890,7 +890,7 @@ class WhisperForConditionalGeneration(
890 self.dtype = vllm_config.model_config.dtype
891
892 self.model = WhisperModel(vllm_config=vllm_config, prefix=prefix)
893 - self.unpadded_vocab_size = config.vocab_size
893 +
894 self.proj_out = ParallelLMHead(
895 config.vocab_size,
896 config.d_model,
@@ -899,9 +899,7 @@ class WhisperForConditionalGeneration(
899 )
900 self.proj_out = self.proj_out.tie_weights(self.model.decoder.embed_tokens)
901 logit_scale = getattr(config, "logit_scale", 1.0)
902 - self.logits_processor = LogitsProcessor(
903 - self.unpadded_vocab_size, config.vocab_size, logit_scale
904 - )
902 + self.logits_processor = LogitsProcessor(config.vocab_size, scale=logit_scale)
903
904 def forward(
905 self,
vllm/model_executor/models/zamba2.py
+5 -23
@@ -38,7 +38,6 @@ from vllm.model_executor.layers.mamba.mamba_utils import (
38 from vllm.model_executor.layers.quantization import QuantizationConfig
39 from vllm.model_executor.layers.rotary_embedding import get_rope
40 from vllm.model_executor.layers.vocab_parallel_embedding import (
41 - DEFAULT_VOCAB_PADDING_SIZE,
41 ParallelLMHead,
42 VocabParallelEmbedding,
43 )
@@ -692,19 +691,13 @@ class Zamba2Model(nn.Module):
691 assert not is_lora_enabled
692
693 self.config = config
695 - lora_vocab = (
696 - (lora_config.lora_extra_vocab_size * (lora_config.max_loras or 1))
697 - if lora_config
698 - else 0
699 - )
700 - self.vocab_size = config.vocab_size + lora_vocab
701 - self.org_vocab_size = config.vocab_size
694 +
695 + self.vocab_size = config.vocab_size
696
697 # Initialize token embeddings
698 self.embed_tokens = VocabParallelEmbedding(
699 self.vocab_size,
700 config.hidden_size,
707 - org_num_embeddings=config.vocab_size,
701 )
702
703 # Map hybrid layer indices to block indices
@@ -911,7 +904,7 @@ class Zamba2ForCausalLM(nn.Module, HasInnerState, IsHybrid, SupportsMambaPrefixC
904 (not supported by Mamba)
905 """
906 config = vllm_config.model_config.hf_config
914 - lora_config = vllm_config.lora_config
907 +
908 scheduler_config = vllm_config.scheduler_config
909
910 super().__init__()
@@ -919,9 +912,6 @@ class Zamba2ForCausalLM(nn.Module, HasInnerState, IsHybrid, SupportsMambaPrefixC
912 self.vllm_config = vllm_config
913 self.scheduler_config = scheduler_config
914 self.model_config = vllm_config.model_config
922 - self.unpadded_vocab_size = config.vocab_size
923 - if lora_config:
924 - self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
915
916 # Initialize core model
917 self.model = Zamba2Model(
@@ -930,23 +920,15 @@ class Zamba2ForCausalLM(nn.Module, HasInnerState, IsHybrid, SupportsMambaPrefixC
920
921 # Initialize language modeling head
922 self.lm_head = ParallelLMHead(
933 - self.unpadded_vocab_size,
923 + config.vocab_size,
924 config.hidden_size,
935 - org_num_embeddings=config.vocab_size,
936 - padding_size=DEFAULT_VOCAB_PADDING_SIZE
937 - # We need bigger padding if using lora for kernel
938 - # compatibility
939 - if not lora_config
940 - else lora_config.lora_vocab_padding_size,
925 prefix=maybe_prefix(prefix, "lm_head"),
926 )
927 # Tie weights with input embeddings if using same dimensions
928 self.lm_head = self.lm_head.tie_weights(self.model.embed_tokens)
929
930 # Initialize logits processing and sampling
947 - self.logits_processor = LogitsProcessor(
948 - self.unpadded_vocab_size, config.vocab_size
949 - )
931 + self.logits_processor = LogitsProcessor(config.vocab_size)
932
933 def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
934 """Convert input token IDs to embeddings.