burak commited on
Fix: Add get_input_embeddings and set_input_embeddings for resize support.
Browse files- modeling_syko.py +10 -4
modeling_syko.py
CHANGED
|
@@ -3,7 +3,6 @@ import torch
|
|
| 3 |
import torch.nn as nn
|
| 4 |
from torch.nn import functional as F
|
| 5 |
from transformers import PretrainedConfig, PreTrainedModel
|
| 6 |
-
# BU SATIR YENİ EKLENDİ:
|
| 7 |
from transformers.modeling_outputs import CausalLMOutputWithPast
|
| 8 |
|
| 9 |
class SykoConfig(PretrainedConfig):
|
|
@@ -104,6 +103,7 @@ class SykoForCausalLM(PreTrainedModel):
|
|
| 104 |
self.n_layer = config.n_layer
|
| 105 |
self.dropout = config.dropout
|
| 106 |
|
|
|
|
| 107 |
self.token_embedding_table = nn.Embedding(self.vocab_size, self.n_embd)
|
| 108 |
self.position_embedding_table = nn.Embedding(self.block_size, self.n_embd)
|
| 109 |
self.blocks = nn.Sequential(*[Block(self.n_embd, self.n_head, self.block_size, self.dropout) for _ in range(self.n_layer)])
|
|
@@ -112,6 +112,14 @@ class SykoForCausalLM(PreTrainedModel):
|
|
| 112 |
|
| 113 |
self.apply(self._init_weights)
|
| 114 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
def _init_weights(self, module):
|
| 116 |
if isinstance(module, nn.Linear):
|
| 117 |
torch.nn.init.normal_(module.weight, mean=0.0, std=0.02)
|
|
@@ -140,12 +148,10 @@ class SykoForCausalLM(PreTrainedModel):
|
|
| 140 |
labels_reshaped = labels.view(B*T)
|
| 141 |
loss = F.cross_entropy(logits_reshaped, labels_reshaped)
|
| 142 |
|
| 143 |
-
# --- DÜZELTME BURADA ---
|
| 144 |
-
# Tuple yerine CausalLMOutputWithPast döndürüyoruz.
|
| 145 |
return CausalLMOutputWithPast(
|
| 146 |
loss=loss,
|
| 147 |
logits=logits,
|
| 148 |
-
past_key_values=None,
|
| 149 |
hidden_states=None,
|
| 150 |
attentions=None,
|
| 151 |
)
|
|
|
|
| 3 |
import torch.nn as nn
|
| 4 |
from torch.nn import functional as F
|
| 5 |
from transformers import PretrainedConfig, PreTrainedModel
|
|
|
|
| 6 |
from transformers.modeling_outputs import CausalLMOutputWithPast
|
| 7 |
|
| 8 |
class SykoConfig(PretrainedConfig):
|
|
|
|
| 103 |
self.n_layer = config.n_layer
|
| 104 |
self.dropout = config.dropout
|
| 105 |
|
| 106 |
+
# Embedding katmanının adı 'token_embedding_table'
|
| 107 |
self.token_embedding_table = nn.Embedding(self.vocab_size, self.n_embd)
|
| 108 |
self.position_embedding_table = nn.Embedding(self.block_size, self.n_embd)
|
| 109 |
self.blocks = nn.Sequential(*[Block(self.n_embd, self.n_head, self.block_size, self.dropout) for _ in range(self.n_layer)])
|
|
|
|
| 112 |
|
| 113 |
self.apply(self._init_weights)
|
| 114 |
|
| 115 |
+
# --- YENİ EKLENEN KISIM: HF BU FONKSİYONLARI ARIYOR ---
|
| 116 |
+
def get_input_embeddings(self):
|
| 117 |
+
return self.token_embedding_table
|
| 118 |
+
|
| 119 |
+
def set_input_embeddings(self, new_embeddings):
|
| 120 |
+
self.token_embedding_table = new_embeddings
|
| 121 |
+
# -----------------------------------------------------
|
| 122 |
+
|
| 123 |
def _init_weights(self, module):
|
| 124 |
if isinstance(module, nn.Linear):
|
| 125 |
torch.nn.init.normal_(module.weight, mean=0.0, std=0.02)
|
|
|
|
| 148 |
labels_reshaped = labels.view(B*T)
|
| 149 |
loss = F.cross_entropy(logits_reshaped, labels_reshaped)
|
| 150 |
|
|
|
|
|
|
|
| 151 |
return CausalLMOutputWithPast(
|
| 152 |
loss=loss,
|
| 153 |
logits=logits,
|
| 154 |
+
past_key_values=None,
|
| 155 |
hidden_states=None,
|
| 156 |
attentions=None,
|
| 157 |
)
|