YunusEmreSaidoglu commited on
Commit
77e2964
·
verified ·
1 Parent(s): ef20a04

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +80 -0
app.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from transformers import AutoModelForCausalLM, AutoTokenizer
4
+
5
+ # 1. Model ve Cihaz Ayarları
6
+ MODEL_NAME = "AhiskaAI/AhiskaAI-134m-Instruct-v0.2"
7
+ device = "cuda" if torch.cuda.is_available() else "cpu"
8
+ dtype = torch.bfloat16 if torch.cuda.is_available() else torch.float32
9
+
10
+ print(f"[AhıskaAI] Model yükleniyor: {MODEL_NAME}")
11
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
12
+ model = AutoModelForCausalLM.from_pretrained(
13
+ MODEL_NAME,
14
+ torch_dtype=dtype,
15
+ device_map="auto" if torch.cuda.is_available() else None
16
+ ).to(device)
17
+ model.eval()
18
+
19
+ # Stop Token Yönetimi
20
+ try:
21
+ stop_token_id = tokenizer.convert_tokens_to_ids("<|im_end|>")
22
+ except:
23
+ stop_token_id = tokenizer.eos_token_id
24
+
25
+ # 2. Çıkarım Fonksiyonu (Stateless / Tek Turlu)
26
+ def predict(message, history):
27
+ SYSTEM_PROMPT = "Sen kibar, sorulan soruları tam cümlelerle yanıtlayan Türkçe bir asistansın."
28
+
29
+ prompt = (
30
+ f"<|im_start|>system\n{SYSTEM_PROMPT}<|im_end|>\n"
31
+ f"<|im_start|>user\n{message}<|im_end|>\n"
32
+ f"<|im_start|>assistant\n"
33
+ )
34
+
35
+ inputs = tokenizer(prompt, return_tensors="pt").to(device)
36
+
37
+ with torch.no_grad():
38
+ outputs = model.generate(
39
+ **inputs,
40
+ max_new_tokens=128,
41
+ do_sample=True,
42
+ temperature=0.3,
43
+ top_p=0.9,
44
+ repetition_penalty=1.25,
45
+ no_repeat_ngram_size=3,
46
+ eos_token_id=stop_token_id,
47
+ pad_token_id=tokenizer.pad_token_id
48
+ )
49
+
50
+ generated_ids = outputs[0][len(inputs.input_ids[0]):]
51
+ response = tokenizer.decode(generated_ids, skip_special_tokens=False)
52
+
53
+ # Temizleme
54
+ clean_response = response.replace("<|im_end|>", "").replace("<|im_start|>", "").strip()
55
+ return clean_response
56
+
57
+ # 3. Profesyonel Arayüz Tasarımı
58
+ with gr.Blocks(title="AhıskaAI Araştırma Laboratuvarı") as demo:
59
+ gr.Markdown(
60
+ """
61
+ # AhıskaAI-134m-Instruct-v0.2
62
+ **AhıskaAI Laboratuvarı tarafından sıfırdan eğitilmiş; yüksek kaliteli, Türkçe diline ve kültürel bağlama odaklı kompakt yapay zeka asistanı.**
63
+
64
+ * **Mimari:** Llama tabanlı, 134 Milyon parametre.
65
+ * **Eğitim:** 1.2GB filtrelenmiş Türkçe veri seti (SFT).
66
+ * **Mod:** Stateless (Hafızasız/Tek Turlu) - Her soru bağımsız işlenir.
67
+ """
68
+ )
69
+
70
+ gr.ChatInterface(fn=predict)
71
+
72
+ gr.Markdown(
73
+ """
74
+ ---
75
+ **Not:** Bu, deneysel bir modeldir. Yanıtlar sınırlı parametre kapasitesiyle üretilir.
76
+ """
77
+ )
78
+
79
+ if __name__ == "__main__":
80
+ demo.launch()