Update gemma.py

This commit is contained in:
Daniel Han-Chen 2024-02-25 04:14:57 +11:00
commit 884fadc744

View file

@ -76,17 +76,13 @@ class FastGemmaRotaryEmbedding(torch.nn.Module):
# Note: on the original Llama codebase, these tensors are created on the target device (and not on CPU) and
# in FP32. They are applied (multiplied) in FP32 as well.
self.max_seq_len_cached = max(self.max_position_embeddings, seq_len)
print(self.max_seq_len_cached)
inv_freq = 1.0 / (
self.base ** (torch.arange(0, self.dim, 2, dtype=torch.int64, device="cpu").float() / self.dim)
)
t = torch.arange(self.max_position_embeddings, device="cpu", dtype=torch.int64).float().to("cuda").unsqueeze(0)
inv_freq_expanded = inv_freq[None, :, None].float().expand(1, -1, 1).to("cuda")
position_ids_expanded = t[:, None, :].float()
print(position_ids_expanded.shape, position_ids_expanded.to(torch.float64))
print(inv_freq_expanded.shape, inv_freq_expanded.to(torch.float64))
freqs = (inv_freq_expanded @ position_ids_expanded).transpose(1, 2)
print(freqs.to(torch.int64))
emb = torch.cat((freqs, freqs), dim=-1)
self.cos_cached = emb.cos().to(dtype=torch.bfloat16)
@ -107,12 +103,10 @@ class FastGemmaRotaryEmbedding(torch.nn.Module):
self.base ** (torch.arange(0, self.dim, 2, dtype=torch.int64, device="cuda").float() / self.dim)
)
print(self.max_position_embeddings)
t = torch.arange(self.max_position_embeddings, device="cpu", dtype=torch.int64).float().to("cuda").unsqueeze(0)
inv_freq_expanded = self.inv_freq[None, :, None].float().expand(1, -1, 1).to("cuda")
position_ids_expanded = t[:, None, :].float()
freqs = (inv_freq_expanded @ position_ids_expanded).transpose(1, 2)
print(freqs.to(torch.int64))
emb = torch.cat((freqs, freqs), dim=-1)
seq_len = position_ids.shape[1]