coderian/OzanLLM-40M
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ı
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ıç
pip install -U transformers torchfrom 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:
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şınabos_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.9iyi çalışır.
Eğitim
Veri
Hiperparametreler
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
Atıf
@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.
