diff --git a/unsloth/models/gemma.py b/unsloth/models/gemma.py index 96a35e0027..bbea3e014c 100644 --- a/unsloth/models/gemma.py +++ b/unsloth/models/gemma.py @@ -73,18 +73,18 @@ class FastGemmaRotaryEmbedding(torch.nn.Module): self.base ** (torch.arange(0, self.dim, 2, dtype=torch.int64, device="cuda").float() / self.dim) ) - t = torch.arange(self.max_position_embeddings, device="cuda", dtype=torch.int64).float().unsqueeze(-1) + t = torch.arange(position_ids.shape[1], device="cuda", dtype=torch.int64).float().unsqueeze(-1) + logger.warning_once(str(torch.dist(t, position_ids))) inv_freq_expanded = self.inv_freq[None, :, None].float().expand(position_ids.shape[0], -1, 1).to("cuda") position_ids_expanded = t[:, None, :].float() freqs = (inv_freq_expanded @ position_ids_expanded).transpose(1, 2) - emb_old = torch.cat((freqs, freqs), dim=-1).to("cuda") + emb_old = torch.cat((freqs, freqs), dim=-1) inv_freq_expanded = self.inv_freq[None, :, None].float().expand(position_ids.shape[0], -1, 1).to("cuda") position_ids_expanded = position_ids[:, None, :].float() freqs = (inv_freq_expanded @ position_ids_expanded).transpose(1, 2) emb_new = torch.cat((freqs, freqs), dim=-1) - logger.warning_once(str(torch.dist(emb_old, emb_new))) return emb_new.cos().to(dtype=x.dtype), emb_new.sin().to(dtype=x.dtype) pass