Team Ai
Modelpublic

coderian/OzanLLM-40M

sourceHugging Faceapache-2.0updated 10d agoView on Hugging Face
1likes255downloads
Model Card

OzanLLM-40M

Sıfırdan eğitilmiş 38.3M parametreli küçük bir Türkçe dil modeli. Base model'dir: instruction tuning yapılmamıştır; sohbet veya talimat takibi için değil, metin tamamlama için tasarlanmıştır.

Model Detayları

Geliştiricicoderian
Yayın tarihiEylül 2026
DilTürkçe (tr)
LisansApache 2.0
MimariDecoder-only Transformer (OzanLLM)
Parametre38.329.280 (38.3M)
Katman5
Gizli boyut320
DikkatTek kafalı nedensel (causal) self-attention
Bağlam uzunluğu512 token
Kelime dağarcığı50.000 (BPE)
Konum kodlamasıÖğrenilebilir konum gömlemesi (512 × 320)
AktivasyonGELU (FFN genişliği 4× = 1.280)
NormalizasyonPre-norm LayerNorm
Çıktı katmanıLM head (320 → 50.000), bağsız (untied)
KV cacheYok (use_cache=False)
Hassasiyetfloat32

Mimari

  • —5 adet Transformer bloğu; her blokta pre-norm LayerNorm ve residual bağlantılar
  • —Nedensel öz-dikkat: Q/K/V projeksiyonları → ölçekli iç çarpım (1/√320) → gelecek pozisyonların maskelenmesi → softmax → 320 boyutlu çıktı
  • —FFN: 320 → 1.280 (GELU) → 320
  • —Girdi: token gömlemesi + öğrenilebilir konum gömlemesi toplamı
  • —Çıkış: son LayerNorm + LM head; kayıp, kaydırılmış çapraz entropidir
  • —Dropout ve ağırlık paylaşımı (weight tying) yok

Hızlı Başlangıç

bash
pip install -U transformers torch
python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "coderian/OzanLLM-40M"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)

prompt = "Türkiye'nin en kalabalık şehri"
inputs = tokenizer(prompt, return_tensors="pt")
cikti = model.generate(
    **inputs,
    max_new_tokens=64,
    do_sample=True,
    temperature=0.8,
    top_p=0.9,
    repetition_penalty=1.1,   # küçük model tekrara düşmesin
)
print(tokenizer.decode(cikti[0], skip_special_tokens=True))

trust_remote_code=True gereklidir: model mimarisi standart transformers sınıflarından biri olmadığı için kendi kodunu (model.py, configuration_ozanllm.py) indirir. transformers 5.x ile yerel bir klasörden yüklerken de bu bayrak gereklidir.

Modeli indirdiğiniz klasörden yüklemek için:

python
model = AutoModelForCausalLM.from_pretrained("ozanllm", trust_remote_code=True)

Üretim Notları

  • —Model belgeleri [BOS] ... [EOS] çerçevesiyle eğitildi; en iyi sonuç için prompt'un başına bos_token_id (2) ekleyin.
  • —Bağlam 512 token ile sınırlıdır; bu sınırın üzerindeki girdiler desteklenmez.
  • —KV cache olmadığı için üretim token token ilerler ve uzun çıktılar yavaştır.
  • —38M'lik bir modelde tekrara düşme sık görülür; repetition_penalty≈1.1 önerilir.
  • —Örnekleme için temperature≈0.8, top_p≈0.9 iyi çalışır.

Eğitim

Veri

Veri setitascib/turkish-llm-dataset (CC BY-SA 4.0)
Kullanılan dilimAkış (streaming) modunda alınan ilk 600.000 belge; yaklaşık 213M token
İşlemeBelgeler [BOS] … [EOS] olarak token'lanır ve 512'lik dizilere paketlenir; padding yoktur
Tokenizercoderian/QraXAi-Turkish-Tok-50K — BPE, 50.000 token, [PAD]=0 [UNK]=1 [BOS]=2 [EOS]=3

Hiperparametreler

Optimizer adımı3.252
Etkin batch128 dizi × 512 token = 65.536 token/adım
Toplam token≈213M
OptimizerAdamW (β₁=0.9, β₂=0.95, weight decay 0.1)
Öğrenme oranı3e-4; 200 adım ısınma, ardından kosinüs ile 0.1×'e düşüş
Gradyan kırpma1.0
Karışık hassasiyetfp16 + GradScaler
DonanımKaggle, 2× Tesla T4 (otomatik DataParallel)
ÇerçevePyTorch + Hugging Face transformers/datasets, safetensors

Eğitim betiği tek dosyadır (train.py); model boyutları EMBED_DIM=320, N_LAYERS=5, SEQ_LEN=512, BATCH_SIZE=16, GRAD_ACCUM=8 ile ayarlanmıştır.

Kullanım Amacı

Uygun kullanımlar:

  • —Türkçe metin tamamlama, taslak sürdürme, yaratıcı yazı denemeleri
  • —Türkçe NLP araştırmaları ve küçük model deneyleri
  • —Fine-tuning için başlangıç noktası (base model)

Uygun olmayan kullanımlar:

  • —Soru-cevap, sohbet, talimat takibi (instruction tuning yoktur)
  • —Olgusal doğruluk gerektiren üretim kullanımları
  • —Hukuki, tıbbi veya güvenlik açısından kritik karar sistemleri

Sınırlamalar ve Önyargılar

  • —38M parametre ve ≈213M token ile eğitilmiş küçük bir base modeldir; bilgisi, akıcılığı ve tutarlılığı sınırlıdır.
  • —Uzun üretimlerde tekrara düşebilir veya konudan sapabilir.
  • —Eğitim verisi filtrelenmemiş web metni içerdiği için model önyargılı veya istenmeyen ifadeler üretebilir; çıktılar kullanılmadan önce gözden geçirilmelidir.
  • —Türkçe dışındaki dillerde ve kod üretiminde güvenilir değildir.
  • —Resmî bir benchmark değerlendirmesi yapılmamıştır.

Dosyalar

DosyaAçıklama
model.safetensorsModel ağırlıkları (float32, ~153 MB)
config.jsonModel yapılandırması (auto_map ile özel kod bağlantıları)
generation_config.jsonVarsayılan üretim ayarları (BOS/EOS/PAD id'leri)
model.pyOzanLLM mimarisi (trust_remote_code)
configuration_ozanllm.pyGPTConfig yapılandırma sınıfı
tokenizer.json, tokenizer_config.jsonTokenizer (50.000 token)
README.mdBu model kartı

Atıf

bibtex
@misc{ozanllm-40m,
  title  = {OzanLLM-40M: Turkish Base Language Model},
  author = {coderian},
  year   = {2026},
  url    = {https://huggingface.co/coderian/OzanLLM-40M}
}

English Summary

OzanLLM-40M is a 38.3M-parameter Turkish base language model trained from scratch on the first 600k documents (~213M tokens) of the tascib/turkish-llm-dataset. It is a 5-layer, 320-dim decoder-only Transformer with single-head causal attention, learned absolute position embeddings and a 50k BPE tokenizer. It is a base model intended for Turkish text completion, not for chat or instruction following. Use trust_remote_code=True to load it.