--- license: apache-2.0 language: - tr - en tags: - causal-lm - custom-architecture - turkish - code - from-scratch pipeline_tag: text-generation library_name: transformers 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-V5.4 **SykoLLM**, modern dil modeli tasarım prensiplerinden (RoPE, RMSNorm, SwiGLU, GQA) ilham alınarak sıfırdan yazılmış özel bir mimariyle oluşturulmuş 233M parametreli bir nedensel dil modelidir. Türkçe, İngilizce ve kod içeren çok dilli bir veri karışımıyla eğitilmiştir. --- ## Model Detayları | Özellik | Değer | |---|---| | **Mimari** | Syko (özel Llama-tarzı decoder) | | **Parametre Sayısı** | 233,214,720 | | **Gizli Boyut** | 768 | | **Katman Sayısı** | 24 | | **Dikkat Başlığı** | 6 | | **Bağlam Uzunluğu** | 1024 token | | **Kelime Hazinesi** | 32.000 (özel BPE) | | **Eğitim Adımı** | 4.000 | | **Son Loss** | ~2.0 | | **Hassasiyet** | fp16 | | **Lisans** | Apache 2.0 | --- ## Mimari Özellikleri - **RMSNorm** — fp16 stabilitesi için varyans hesabı float32'de yapılır - **RoPE** — float32 cos/sin hesaplamasıyla Döndürmalı Konum Kodlaması - **SwiGLU** — kapılı MLP aktivasyonu (gate × up → down projeksiyonu) - **GQA desteği** — `num_key_value_heads` ile Gruplu Sorgu Dikkat mekanizması - **Ön-norm** — her alt katmandan (dikkat + MLP) önce normalizasyon - **Embedding scaling yok** — sqrt çarpımı olmadan temiz embedding - **lm_head float32'de** — 768→32000 projeksiyonunda fp16 taşmasını önler --- ## Eğitim Verisi Model, aşağıdaki veri setlerinin harmanlanmış karışımıyla eğitilmiştir: | Veri Seti | Açıklama | |---|---| | `uonlp/CulturaX` (tr) | Türkçe web metni | | `HuggingFaceTB/cosmopedia` | Sentetik eğitim içeriği | | `roneneldan/TinyStories` | Kısa İngilizce hikayeler | | `nampdn-ai/tiny-textbooks` | Sentetik ders kitabı içeriği | | `nampdn-ai/tiny-codes` | Kod talimat çiftleri | | `ise-uiuc/Magicoder-Evol-Instruct-110K` | Kod talimat verisi | | `theblackcat102/evol-codealpaca-v1` | Kod talimat verisi | | `turkish-nlp-suite/InstrucTurca` | Türkçe talimat çiftleri | Veriler, düzgün karışım sağlamak amacıyla 10K'lık bloklar halinde karıştırılarak eğitime hazırlanmıştır. --- ## Tokenizer Eğitim verisinin 100K örneği üzerinde eğitilmiş özel BPE tokenizer. Özel tokenlar: ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, `` --- ## Kurulum Öncesi Hazırlık Syko mimarisi Transformers'a kayıtlı olmadığı için, modeli çalıştırmak kendi özel kütüphanemi indirmeniz gerekmektedir. Kütüphane şu: `!pip install syko-llm` --- ## Kullanım ```python # 1. Yeni sürümü zorla yükle (Eski sürümün önbellekte kalmasını önler) # 1. Yeni sürümü zorla yükle ve uyumluluk için torchvision'ı dahil et !pip install --upgrade syko-llm==0.3.4 transformers import syko import torch from transformers import AutoModelForCausalLM, AutoTokenizer # 2. Cihaz ayarı (GPU varsa GPU, yoksa CPU) device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Kullanılan cihaz: {device}") # 3. Model ve Tokenizer'ı yükle model_id = "SykoSLM/SykoLLM-V5.4" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id, dtype=torch.float32, device_map="cuda:0") model.eval() # 4. Prompt hazırlığı (Eğitim formatınla birebir aynı olmalı!) prompt = "\nGökyüzü hangi renktir?\n\n" inputs = tokenizer(prompt, return_tensors="pt").to(device) # 5. Yeni nesil, stabilize edilmiş Generation ayarları with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=512, # Üretilecek maksimum token use_cache=False, do_sample=True, # Modelin farklı kelimeler seçmesine izin ver temperature=0.3, # Yaratıcılık/Tutarlılık dengesi top_p=0.9, # Sadece en mantıklı %90'lık ihtimallerden seç repetition_penalty=1.17, pad_token_id=tokenizer.pad_token_id, eos_token_id=tokenizer.eos_token_id, ) # 6. Çıktıyı decode et ve göster # prompt'u dahil etmeden sadece yeni üretilen kısmı görmek istersen skip_special_tokens=True yapabilirsiniz response = tokenizer.decode(outputs[0], skip_special_tokens=False) print("\n--- MODEL ÇIKTISI ---") print(response) print("---------------------") ``` --- ## Sınırlamalar - 233M parametre nispeten küçük bir modeldir. Karmaşık çok adımlı akıl yürütme güvenilir olmayabilir. - 4.000 adım eğitilmiştir — daha fazla eğitim tutarlılığı ve doğruluğu artırır. - Özellikle bilgi yoğun sorularda yanlış bilgi üretebilir. - Güvenlik için ince ayar yapılmamıştır — çıktılar filtresizdir. --- ## Eğitim Altyapısı | Özellik | Değer | |---|---| | **Donanım** | 2× NVIDIA T4 (Kaggle) | | **Framework** | PyTorch + HuggingFace Transformers | | **Dağıtık Eğitim** | DDP (Accelerate) | | **Optimizer** | AdamW | | **Öğrenme Hızı** | 3e-4, cosine decay | | **Batch Boyutu** | 6 cihaz başına × 10 gradient accumulation = efektif 120 | | **Warmup** | 300 adım | --- ## Lisans Apache 2.0 — detaylar için [LICENSE](LICENSE) dosyasına bakın.