Skip to content

Commit 31348df

Browse files
pcmoritzPernekhan
andauthored
Align LoRA code between Mistral and Mixtral (fixes #2875) (#2880)
* Fix AttributeError: MixtralModel object has no attribute org_vocab_size. * Make LoRA logic for Mistral and Mixtral the same --------- Co-authored-by: Pernekhan Utemuratov <[email protected]>
1 parent 25e86b6 commit 31348df

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

vllm/model_executor/models/mixtral.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,15 +285,19 @@ def __init__(
285285
self,
286286
config: MixtralConfig,
287287
linear_method: Optional[LinearMethodBase] = None,
288+
lora_config: Optional[LoRAConfig] = None,
288289
) -> None:
289290
super().__init__()
290291
self.padding_idx = config.pad_token_id
291-
self.vocab_size = config.vocab_size
292+
lora_vocab = (lora_config.lora_extra_vocab_size *
293+
(lora_config.max_loras or 1)) if lora_config else 0
294+
self.vocab_size = config.vocab_size + lora_vocab
295+
self.org_vocab_size = config.vocab_size
292296

293297
self.embed_tokens = VocabParallelEmbedding(
294-
config.vocab_size,
298+
self.vocab_size,
295299
config.hidden_size,
296-
org_num_embeddings=self.org_vocab_size,
300+
org_num_embeddings=config.vocab_size,
297301
)
298302
self.layers = nn.ModuleList([
299303
MixtralDecoderLayer(config, linear_method=linear_method)
@@ -350,7 +354,9 @@ def __init__(
350354
super().__init__()
351355
self.config = config
352356
self.linear_method = linear_method
353-
self.model = MixtralModel(config, linear_method)
357+
self.model = MixtralModel(config,
358+
linear_method,
359+
lora_config=lora_config)
354360
self.unpadded_vocab_size = config.vocab_size
355361
if lora_config:
356362
self.unpadded_vocab_size += lora_config.lora_extra_vocab_size

0 commit comments

Comments
 (0)