musabc commited on
Commit
b8d39f1
·
verified ·
1 Parent(s): 9d142b9

Upload model_v5.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. model_v5.py +14 -1
model_v5.py CHANGED
@@ -232,7 +232,9 @@ class GPTV5(nn.Module):
232
  @torch.no_grad()
233
  def generate(self, idx, max_new_tokens, temperature=1.0, top_k=None,
234
  repetition_penalty=1.15, no_repeat_ngram_size=3,
235
- max_context=None):
 
 
236
  if max_context is None:
237
  max_context = self.rope_cos.size(0)
238
  for _ in range(max_new_tokens):
@@ -244,6 +246,9 @@ class GPTV5(nn.Module):
244
  for b in range(idx.size(0)):
245
  seen = set(idx[b].tolist()[-256:])
246
  for tok in seen:
 
 
 
247
  if logits[b, tok] > 0:
248
  logits[b, tok] /= repetition_penalty
249
  else:
@@ -258,6 +263,9 @@ class GPTV5(nn.Module):
258
  for i in range(len(tokens) - n + 1):
259
  if tuple(tokens[i:i+n-1]) == prefix:
260
  banned.add(tokens[i+n-1])
 
 
 
261
  for tok in banned:
262
  logits[b, tok] = -float("inf")
263
 
@@ -267,6 +275,11 @@ class GPTV5(nn.Module):
267
  probs = F.softmax(logits, dim=-1)
268
  next_id = torch.multinomial(probs, num_samples=1)
269
  idx = torch.cat([idx, next_id], dim=1)
 
 
 
 
 
270
  return idx
271
 
272
 
 
232
  @torch.no_grad()
233
  def generate(self, idx, max_new_tokens, temperature=1.0, top_k=None,
234
  repetition_penalty=1.15, no_repeat_ngram_size=3,
235
+ max_context=None, eos_token_id=None):
236
+ """eos_token_id verildiyse model bu token'i sample ettiginde
237
+ early stop. SFT modelleri icin EOT (=0) onerilir."""
238
  if max_context is None:
239
  max_context = self.rope_cos.size(0)
240
  for _ in range(max_new_tokens):
 
246
  for b in range(idx.size(0)):
247
  seen = set(idx[b].tolist()[-256:])
248
  for tok in seen:
249
+ # EOS token'a rep penalty UYGULAMA — durmasi gerek
250
+ if eos_token_id is not None and tok == eos_token_id:
251
+ continue
252
  if logits[b, tok] > 0:
253
  logits[b, tok] /= repetition_penalty
254
  else:
 
263
  for i in range(len(tokens) - n + 1):
264
  if tuple(tokens[i:i+n-1]) == prefix:
265
  banned.add(tokens[i+n-1])
266
+ # EOS asla banlanmasin
267
+ if eos_token_id is not None:
268
+ banned.discard(eos_token_id)
269
  for tok in banned:
270
  logits[b, tok] = -float("inf")
271
 
 
275
  probs = F.softmax(logits, dim=-1)
276
  next_id = torch.multinomial(probs, num_samples=1)
277
  idx = torch.cat([idx, next_id], dim=1)
278
+
279
+ # Early stop — batch'teki TUM ornek EOS'a ulastiysa
280
+ if eos_token_id is not None:
281
+ if (next_id == eos_token_id).all():
282
+ break
283
  return idx
284
 
285