Unverified Commit 15c6a079 authored by Michael Goin's avatar Michael Goin Committed by GitHub
Browse files

[Model] Support Mistral-Nemo (#6548)

parent ecdb462c
...@@ -89,6 +89,7 @@ class LlamaAttention(nn.Module): ...@@ -89,6 +89,7 @@ class LlamaAttention(nn.Module):
def __init__( def __init__(
self, self,
config: LlamaConfig,
hidden_size: int, hidden_size: int,
num_heads: int, num_heads: int,
num_kv_heads: int, num_kv_heads: int,
...@@ -115,7 +116,9 @@ class LlamaAttention(nn.Module): ...@@ -115,7 +116,9 @@ class LlamaAttention(nn.Module):
# the KV heads across multiple tensor parallel GPUs. # the KV heads across multiple tensor parallel GPUs.
assert tp_size % self.total_num_kv_heads == 0 assert tp_size % self.total_num_kv_heads == 0
self.num_kv_heads = max(1, self.total_num_kv_heads // tp_size) self.num_kv_heads = max(1, self.total_num_kv_heads // tp_size)
self.head_dim = hidden_size // self.total_num_heads # MistralConfig has an optional head_dim introduced by Mistral-Nemo
self.head_dim = getattr(config, "head_dim",
self.hidden_size // self.total_num_heads)
self.q_size = self.num_heads * self.head_dim self.q_size = self.num_heads * self.head_dim
self.kv_size = self.num_kv_heads * self.head_dim self.kv_size = self.num_kv_heads * self.head_dim
self.scaling = self.head_dim**-0.5 self.scaling = self.head_dim**-0.5
...@@ -189,6 +192,7 @@ class LlamaDecoderLayer(nn.Module): ...@@ -189,6 +192,7 @@ class LlamaDecoderLayer(nn.Module):
attention_bias = getattr(config, "attention_bias", False) or getattr( attention_bias = getattr(config, "attention_bias", False) or getattr(
config, "bias", False) config, "bias", False)
self.self_attn = LlamaAttention( self.self_attn = LlamaAttention(
config=config,
hidden_size=self.hidden_size, hidden_size=self.hidden_size,
num_heads=config.num_attention_heads, num_heads=config.num_attention_heads,
num_kv_heads=getattr(config, "num_key_value_heads", num_kv_heads=getattr(config, "num_key_value_heads",
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment