melikegks commited on
Commit
f9fbcba
·
verified ·
1 Parent(s): f0fdf2a

CPU ve ZeroGPU'da çalışacak şekilde uyarla

Browse files
Files changed (1) hide show
  1. app.py +28 -8
app.py CHANGED
@@ -5,11 +5,11 @@ Model uçtan uca çalışır: metni alır, maskelenmiş metni döndürür.
5
  ve kullanıcıya ayrıca gösterilir — ham model davranışı gizlenmez.
6
  """
7
 
 
8
  import re
9
  import time
10
 
11
  import gradio as gr
12
- import spaces
13
  import torch
14
  from transformers import AutoModelForCausalLM, AutoTokenizer
15
 
@@ -51,18 +51,38 @@ TALIMATLAR = {
51
  "Serbest (aşağıya yaz)": "",
52
  }
53
 
54
- print("Model yükleniyor…")
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  tokenizer = AutoTokenizer.from_pretrained(MODEL_ADI)
56
  model = AutoModelForCausalLM.from_pretrained(
57
- MODEL_ADI, dtype=torch.bfloat16,
58
- ).eval().to("cuda")
 
 
 
 
59
  IM_END_ID = tokenizer.convert_tokens_to_ids(IM_END)
60
- print("Model hazır.")
 
 
 
 
 
61
 
62
 
63
- # ZeroGPU: GPU yalnızca bu fonksiyon çalışırken tahsis edilir.
64
- # Bu yüzden üretim modül düzeyinde yapılamaz — ısınma çağrısı kaldırıldı.
65
- @spaces.GPU(duration=20)
66
  @torch.inference_mode()
67
  def maskele(metin, talimat):
68
  """Maskelenmiş metni ve geçen süreyi döndürür."""
 
5
  ve kullanıcıya ayrıca gösterilir — ham model davranışı gizlenmez.
6
  """
7
 
8
+ import os
9
  import re
10
  import time
11
 
12
  import gradio as gr
 
13
  import torch
14
  from transformers import AutoModelForCausalLM, AutoTokenizer
15
 
 
51
  "Serbest (aşağıya yaz)": "",
52
  }
53
 
54
+ # ZeroGPU donanımında `spaces` paketi vardır ve GPU yalnızca dekore edilmiş
55
+ # fonksiyon çalışırken tahsis edilir. cpu-basic'te paket yoktur; aynı kod
56
+ # dekoratörsüz ve CPU'da çalışsın diye ikisi de destekleniyor.
57
+ try:
58
+ import spaces
59
+ ZEROGPU = True
60
+ except ImportError:
61
+ spaces = None
62
+ ZEROGPU = False
63
+
64
+ if not ZEROGPU:
65
+ torch.set_num_threads(os.cpu_count() or 2)
66
+
67
+ print("Model yükleniyor… ZeroGPU:", ZEROGPU)
68
  tokenizer = AutoTokenizer.from_pretrained(MODEL_ADI)
69
  model = AutoModelForCausalLM.from_pretrained(
70
+ MODEL_ADI,
71
+ dtype=torch.bfloat16 if (ZEROGPU or torch.cuda.is_available())
72
+ else torch.float32,
73
+ ).eval()
74
+ if ZEROGPU or torch.cuda.is_available():
75
+ model = model.to("cuda")
76
  IM_END_ID = tokenizer.convert_tokens_to_ids(IM_END)
77
+ print("Model hazır. Cihaz:", next(model.parameters()).device)
78
+
79
+
80
+ def gpu_gerekiyorsa(fn):
81
+ """ZeroGPU'da @spaces.GPU uygular, CPU'da fonksiyonu olduğu gibi bırakır."""
82
+ return spaces.GPU(duration=20)(fn) if ZEROGPU else fn
83
 
84
 
85
+ @gpu_gerekiyorsa
 
 
86
  @torch.inference_mode()
87
  def maskele(metin, talimat):
88
  """Maskelenmiş metni ve geçen süreyi döndürür."""