File size: 3,766 Bytes
8cc3fb7
 
 
923afc6
 
8cc3fb7
 
 
923afc6
 
 
 
 
8cc3fb7
923afc6
 
 
 
 
 
 
 
8cc3fb7
 
b3a2891
8cc3fb7
 
 
b3a2891
8cc3fb7
 
 
 
b3a2891
8cc3fb7
 
 
ee794d6
 
 
 
 
 
 
b3a2891
ee794d6
 
8cc3fb7
 
ee794d6
 
 
8cc3fb7
ee794d6
 
 
 
8cc3fb7
 
ee794d6
 
b3a2891
ee794d6
 
 
8cc3fb7
 
ee794d6
b3a2891
8cc3fb7
ee794d6
 
 
 
 
27766d6
ee794d6
 
 
 
 
 
 
 
 
 
 
 
 
8cc3fb7
 
ee794d6
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
---
license: apache-2.0
language:
- tr
- en
pipeline_tag: text-generation
library_name: transformers
tags:
- text-generation
- causal-lm
- custom-tokenizer
- experimental
- from-scratch
datasets:
- uonlp/CulturaX
- HuggingFaceTB/cosmopedia
- roneneldan/TinyStories
- nampdn-ai/tiny-textbooks
- nampdn-ai/tiny-codes
- ise-uiuc/Magicoder-Evol-Instruct-110K
- theblackcat102/evol-codealpaca-v1
- turkish-nlp-suite/InstrucTurca
---

# SykoLLM Phi-3 Mini (233M) - Experimental

> **⚠️ Uyarı / Disclaimer:** Bu model şu anda aktif bir **test ve araştırma aşamasındadır**. Temel amacı, yeni nesil **Phi-3** mimarisinin yeteneklerini sıfırdan eğitilmiş (trained from scratch) bir yapıyla küçük ölçekte test etmektir. Üretime (production) hazır bir model değildir; halüsinasyon görebilir, mantıksal hatalar yapabilir veya beklenmedik yanıtlar verebilir.

##  Model Özeti (Model Description)
Bu model, Microsoft'un **Phi-3** mimarisi temel alınarak sıfırdan eğitilmiş **233 Milyon** parametreli, deneysel bir dil modelidir. Hem **İngilizce** hem de **Türkçe** dillerinde genel bilgi, kodlama yeteneği ve mantıksal yürütme kapasitesini ölçmek amacıyla çeşitli yüksek kaliteli veri setleri harmanlanarak eğitilmiştir.

Ayrıca model için `BPE` (Byte-Pair Encoding) tabanlı **özel bir tokenizer** sıfırdan eğitilip kullanılmıştır.

##  Model Mimarisi (Architecture Details)
Model, daha kompakt bir konfigürasyonda tasarlanmış olup standart bir Phi-3 yapısına dayanır:
* **Mimari Türü:** `Phi3ForCausalLM`
* **Parametre Sayısı:** ~233M
* **Gömme Boyutu (Hidden Size):** 768
* **Ara Katman Boyutu (Intermediate Size):** 2304
* **Katman Sayısı (Hidden Layers):** 24
* **Dikkat Başlıkları (Attention Heads):** 6 (GQA destekli)
* **Bağlam Penceresi (Context Size):** 1024 Token
* **Sözlük Boyutu (Vocab Size):** 32,000

##  Eğitim Verisi (Training Data)
Eğitim verisi, modelin çok yönlü olabilmesi için özenle seçilmiş, yapay zeka kalıntıları (AI-robots) temizlenmiş ve filtrelenmiş şu veri setlerinden oluşmaktadır:

**1. Genel Bilgi ve Mantık (İngilizce):**
* `HuggingFaceTB/cosmopedia` (Math, KhanAcademy, OpenStax, Stanford vb.)
* `roneneldan/TinyStories`
* `nampdn-ai/tiny-textbooks`

**2. Kodlama ve Talimat (Coding & Instruct):**
* `nampdn-ai/tiny-codes`
* `ise-uiuc/Magicoder-Evol-Instruct-110K`
* `theblackcat102/evol-codealpaca-v1`

**3. Türkçe Veriler (Turkish NLP):**
* `uonlp/CulturaX` (Türkçe alt kümesi, CJK ve gürültü temizlenmiş)
* `turkish-nlp-suite/InstrucTurca`

##  Eğitim Konfigürasyonu (Training Procedure)
* **Optimizasyon:** 8-bit AdamW (`adamw_bnb_8bit`)
* **Öğrenme Oranı (Learning Rate):** 3e-4 (Cosine Scheduler ile)
* **Hassasiyet (Precision):** FP16
* **Max Adım Sayısı (Steps):** 6000
* **Ağırlık Azalması (Weight Decay):** 0.05

##  Örnek Kullanım (How to Use)
Modeli test etmek için aşağıdaki Python kodunu kullanabilirsiniz. `trust_remote_code=True` parametresinin ekli olduğundan emin olun.

```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_id = "SykoSLM/SykoLLM-Phi3-Test"

# Modeli ve Tokenizer'ı yükle
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True, device_map="auto")

prompt = "<|user|>\nPython ile bir 'Hello World' yaz.\n<|end|>\n<|assistant|>\n"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(
    **inputs, 
    max_new_tokens=100,
    temperature=0.7,
    do_sample=True,
    eos_token_id=tokenizer.eos_token_id,
    pad_token_id=tokenizer.pad_token_id
)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))