Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions examples/trl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ $ pip install -U -r requirements.txt
--use_flash_attention
```

2. Supervised fine-tuning of the mistralai/Mixtral-8x7B-v0.1 on 4 cards:
2. Supervised fine-tuning of the mistralai/Mixtral-8x7B-Instruct-v0.1 on 4 cards:

```
DEEPSPEED_HPU_ZERO3_SYNC_MARK_STEP_REQUIRED=1 python ../gaudi_spawn.py --world_size 4 --use_deepspeed sft.py \
--model_name_or_path mistralai/Mixtral-8x7B-v0.1 \
--model_name_or_path mistralai/Mixtral-8x7B-Instruct-v0.1 \
--dataset_name "philschmid/dolly-15k-oai-style" \
--subset 'data/' \
--streaming False \
Expand Down
19 changes: 10 additions & 9 deletions optimum/habana/transformers/modeling_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@
gaudi_mistral_rmsnorm_forward,
gaudi_mixtral_block_dynamic_moe_forward,
gaudi_mixtral_block_sparse_moe_forward,
gaudi_mixtral_block_moe_forward,
gaudi_mixtral_rmsnorm_forward,
gaudi_opt_attention_forward,
gaudi_opt_decoder_forward,
Expand Down Expand Up @@ -555,15 +556,15 @@ def adapt_transformers_to_gaudi():
transformers.models.mixtral.modeling_mixtral.MixtralAttention = GaudiMixtralAttention
transformers.models.mixtral.modeling_mixtral.MixtralForCausalLM = GaudiMixtralForCausalLM
transformers.models.mixtral.modeling_mixtral.MixtralModel = GaudiMixtralModel
# We need this workaround until moe op in hpu is supporting fp8
if os.environ.get("QUANT_CONFIG"):
transformers.models.mixtral.modeling_mixtral.MixtralSparseMoeBlock.forward = (
gaudi_mixtral_block_sparse_moe_forward
)
else:
transformers.models.mixtral.modeling_mixtral.MixtralSparseMoeBlock.forward = (
gaudi_mixtral_block_dynamic_moe_forward
)
transformers.models.mixtral.modeling_mixtral.MixtralSparseMoeBlock.sparse_moe_forward = (
gaudi_mixtral_block_sparse_moe_forward
)
transformers.models.mixtral.modeling_mixtral.MixtralSparseMoeBlock.dynamic_moe_forward = (
gaudi_mixtral_block_dynamic_moe_forward
)
transformers.models.mixtral.modeling_mixtral.MixtralSparseMoeBlock.forward = (
gaudi_mixtral_block_moe_forward
)
transformers.models.mixtral.modeling_mixtral.MixtralDecoderLayer = GaudiMixtralDecoderLayer
transformers.models.mixtral.modeling_mixtral.MixtralRMSNorm.forward = gaudi_mixtral_rmsnorm_forward
transformers.models.mixtral.configuration_mixtral.MixtralConfig = MixtralConfig
Expand Down
1 change: 1 addition & 0 deletions optimum/habana/transformers/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@
MixtralConfig,
gaudi_mixtral_block_dynamic_moe_forward,
gaudi_mixtral_block_sparse_moe_forward,
gaudi_mixtral_block_moe_forward,
gaudi_mixtral_rmsnorm_forward,
)
from .mllama import (
Expand Down
1 change: 1 addition & 0 deletions optimum/habana/transformers/models/mixtral/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
GaudiMixtralModel,
gaudi_mixtral_block_dynamic_moe_forward,
gaudi_mixtral_block_sparse_moe_forward,
gaudi_mixtral_block_moe_forward,
gaudi_mixtral_rmsnorm_forward,
)
11 changes: 11 additions & 0 deletions optimum/habana/transformers/models/mixtral/modeling_mixtral.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@

"""PyTorch Mixtral model."""

import os

import contextlib
import math
from typing import List, Optional, Tuple, Union
Expand Down Expand Up @@ -357,6 +359,15 @@ def forward(
return attn_output, attn_weights, past_key_value


def gaudi_mixtral_block_moe_forward(self, hidden_states: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:

# We need this workaround until moe op in hpu is supporting fp8
if not self.training and not os.environ.get("QUANT_CONFIG"):
return self.dynamic_moe_forward(hidden_states)

return self.sparse_moe_forward(hidden_states)


def gaudi_mixtral_block_sparse_moe_forward(self, hidden_states: torch.Tensor) -> Tuple[torch.Tensor, torch.Tensor]:
"""
Copied from MixtralSparseMoeBlock.forward: https://github.com/huggingface/transformers/blob/v4.37.0/src/transformers/models/mixtral/modeling_mixtral.py
Expand Down