| | --- |
| | 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)) |