Instructions to use root-sys-n/Mima-Pico-15m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use root-sys-n/Mima-Pico-15m with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="root-sys-n/Mima-Pico-15m", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("root-sys-n/Mima-Pico-15m", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use root-sys-n/Mima-Pico-15m with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "root-sys-n/Mima-Pico-15m" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "root-sys-n/Mima-Pico-15m", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/root-sys-n/Mima-Pico-15m
- SGLang
How to use root-sys-n/Mima-Pico-15m with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "root-sys-n/Mima-Pico-15m" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "root-sys-n/Mima-Pico-15m", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "root-sys-n/Mima-Pico-15m" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "root-sys-n/Mima-Pico-15m", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use root-sys-n/Mima-Pico-15m with Docker Model Runner:
docker model run hf.co/root-sys-n/Mima-Pico-15m
- Mima-Pico-15m — mima-15m-turkce-bpe8k-v1
- Model details / Model detayları
- Evaluation / Değerlendirme
- Training methodology / Eğitim yöntemi
- Training data and attribution / Eğitim verisi ve atıflar
- Usage / Kullanım
- Example conversations / Örnek konuşmalar (Türkçe)
- Limitations and risks / Sınırlılıklar ve riskler
- License / Lisans
- Örnek çıktılar
- Model details / Model detayları
Mima-Pico-15m — mima-15m-turkce-bpe8k-v1
A 15.54M-parameter decoder-only language model (tied embeddings) trained from scratch in Turkish. It was trained on a single consumer GPU (NVIDIA GeForce MX450, 2 GB VRAM) using a 6-stage curriculum. This repository ships the finished checkpoint (step 32,750 — final stage A3-karma / consolidation).
Türkçe özet: Türkçe odaklı, sıfırdan eğitilmiş 15.54M parametreli (bağlı embedding) decoder-only dil modeli. Tek bir tüketici GPU'sunda (NVIDIA MX450, 2 GB VRAM) 6 aşamalı müfredatla eğitilmiştir. Bu depo eğitim tamamlanmış final modeli içerir (adım 32.750, A3-karma/konsolidasyon).
Model details / Model detayları
| Field | Value |
|---|---|
| Parameters | 15,537,792 (~15.54M; tied embedding) |
| state-dict total | 18,683,520 (~18.68M; includes duplicate lm_head copy) |
| Layers | 7 |
| Attention heads | 6 (head_dim 64) |
| Hidden size | 384 |
| FFN | SwiGLU, 1024 hidden (3 matmuls) |
| Normalization | RMSNorm (pre-norm) |
| Positional | RoPE (θ = 10,000) |
| Context window | 512 tokens |
| Vocabulary | 8192 byte-level BPE (8187 BPE + 5 special tokens), trained on a Turkish corpus |
| Special tokens | <bos>=0, <user>=1, <asst>=2, <end>=3, <pad>=4 |
| File size | 74.7 MB (fp32 safetensors) |
TR: Parametre 15,537,792 (~15,54M); katman 7; dikkat başlığı 6; gizli boyut 384; FFN SwiGLU 1024; RMSNorm; RoPE θ=10.000; bağlam 512 token; sözlük 8192 byte-level BPE; özel tokenlar
<bos>=0,<user>=1,<asst>=2,<end>=3,<pad>=4; 74,7 MB fp32.
Evaluation / Değerlendirme
Language modeling (validation split)
| Metric | Value |
|---|---|
| Validation loss | 0.5522 |
| Validation perplexity | 1.74 |
| Training loss (final step) | 0.5368 |
| Training step | 32,750 |
| Status | A3-karma — training finished |
Note: validation loss is measured on the final stage's (multi-source consolidation) distribution, so it is not directly comparable to the earlier stages' numbers.
TR: Doğrulama kaybı 0.5522; ppl 1.74. Kayıp müfredatın son (konsolidasyon) aşamasının dağılımı üzerindedir, eski aşamalarla doğrudan karşılaştırılamaz.
MMLU-TR (Q-bert/mmlu-turkish, validation)
- 23% (23/100) — conditional log-likelihood letter scoring (prompt + " A"/" B"/ " C"/" D" → pick the option with the highest summed log-prob).
Comparison on the same method & n=100:
| Model | Parameters | MMLU-TR |
|---|---|---|
| Mima-Pico-15m (this model) | 15.5M | 23% |
| mima-v4 | 15.5M | 19% |
| mima-skel-8m (A1) | 8.4M | 17% |
| supra-mini-8m | 7M | 28% |
| SmolLM2-135M-Instruct | 134M | 27% |
| Qwen2.5-0.5B-Instruct | 494M | 27% |
| random / majority-class baseline | — | 25% / 35% |
23% is below the majority-class baseline (35%) — at this scale multiple-choice performance is weak and prompt-sensitive; the model's real strength is language modeling (ppl 1.74) and chat-style training.
TR: MMLU-TR %23; 23/100 doğru. Çoğunluk-sınıf tabanı (%35) altındadır; bu ölçekte çoktan seçmeli performans zayıf ve prompt-duyarlıdır. Gerçek güç dil modelleme (ppl 1.74) ve sohbet tarzı eğitimdir.
Training methodology / Eğitim yöntemi
Curriculum learning. Instead of a single large mixed corpus, 6 stages ordered by difficulty; each stage focuses on its own data while earlier stages are preserved through replay:
| Stage | Steps | Data focus | LR | Goal |
|---|---|---|---|---|
| A0-dil | 12,207 | plain Turkish text | 0.0015 | agglutinative morphology, word order |
| A1-kitap | 57 | MEB textbook sentences | 0.0009 | informational sentence patterns |
| A2-bilgi | 6,714 | turkish-knowledge-sft + text replay | 0.0007 | knowledge-heavy SFT |
| A3-sentetik | 2,686 | math + templated lesson data | 0.0005 | rule-based reasoning |
| A4-sohbet | 2,197 | Turkish dialog corpus | 0.00035 | chat style |
| A5 / A3-karma | 3,662 | all sources (30M tokens) | 0.00025 → 0.00015 | consolidation |
Optimization: AdamW (weight_decay 0.1), cosine LR schedule (0.0015 → 0.00015), 200-step linear warmup, grad-norm clip 1.0, batch 16 × 512 = 8,192 token/step. Loss: standard next-token cross-entropy (assistant turns only in chat data).
Efficiency: gradient checkpointing (per layer), chunked cross-entropy (2048-token chunks — limits the fp32 logit copy on 2 GB VRAM), tied embedding (lm_head = wte). BPE-8k selection: 4.9× more Turkish context in the same VRAM vs. byte-level, with 3M fewer parameters.
TR: Müfredat öğrenme: zorluk sırasına dizilmiş 6 aşama, replay ile koruma. A0-dil 12.207 adım (saf Türkçe), A1-kitap 57 adım (MEB ders kitapları), A2-bilgi 6.714 adım, A3-sentetik 2.686 adım, A4-sohbet 2.197 adım, A5/A3-karma 3.662 adım. Optimizasyon AdamW, cosine LR, batch 16×512 token. Yalnızca asistan turlarında cross-entropy kayıp. Gradient checkpointing, parçalı cross-entropy, bağlı embedding. BPE-8k → aynı VRAM'de 4.9× daha fazla Türkçe, 3M parametre daha az.
Training data and attribution / Eğitim verisi ve atıflar
Total corpus: 235.9M Turkish tokens (951 MB) — text pool: wiki 50% + FineWeb-2 35% + tascib 15%. The dataset is not shipped in this repo; each source's license applies (below):
| Source | Usage | License |
|---|---|---|
| Turkish Wikipedia (text pool 50%) | A0, replays | CC BY-SA 4.0 |
| FineWeb-2 (Turkish subset, 35%) | A0, replays | ODC-BY 1.0 |
| tascib — academic abstracts (15%) | A0, replays | internal compilation |
| MEB textbooks (kitap1–6, 137,485 tokens) | A1, A5 | public source |
| turkish-knowledge-sft | A2, A5 | HuggingFace open license |
| Synthetic math + templated lesson data | A3 | produced in this project |
| turkish_llm_train.jsonl (dialogs) | A4 | internal compilation |
Chat format: <bos><user>{question}<asst>{answer}<end>.
TR: Toplam korpus 235.9M token Türkçe (951 MB); metin havuzu wiki %50 + FineWeb-2 %35 + tascib %15. Veri depoda bulunmaz; kaynak lisansları geçerli: Vikipedi CC BY-SA 4.0, FineWeb-2 ODC-BY 1.0. Sohbet formatı:
<bos><user>{soru}<asst>{cevap}<end>.
Usage / Kullanım
The architecture is custom (transformers does not know it) — loading requires
trust_remote_code=True:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained(".", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(".", trust_remote_code=True)
model.eval()
# Chat format: <bos><user>...<asst>...<end>
ids = [0] + [1] + tok.encode("merhaba", add_special_tokens=False).tolist() + [2]
out = model.generate(torch.tensor([ids]), max_new_tokens=100,
temperature=0.85, top_k=40)
print(tok.decode(out[0, len(ids):].tolist()))
sohbet.py is a runnable terminal chat (python sohbet.py). The architecture
code lives in modeling_mima.py and is identical to src/model.py in the training
repository.
TR: Mimari custom —
trust_remote_code=Trueşart. Yukarıdaki kodörnek.sohbet.pyterminal sohbeti içerir; mimarimodeling_mima.pyiçinde ve eğitim deposundakisrc/model.pyile birebir aynı.
Example conversations / Örnek konuşmalar (Türkçe)
Generated with temperature=0.85, top_k=40, up to 120 new tokens, stopping at <end>.
Outputs are illustrative: a 15.5M model frequently hallucinates; judge the style,
not factual accuracy.
TR: Aşağıdaki örnekler
temperature=0.85, top_k=40, en fazla 120 yeni token ve<end>durma koşuluyla üretilmiştir. Çıktılar temsilidir; 15,5M'lik bir model sıkça yanıltır; tarzı değerlendirin, gerçek doğruluğu değil.
Q (user): Merhaba! Kim olduğunu söyleyebilir misin? A (model): Sahne birşey! Kestaneye ve sıradan birşey! Bir şey mi? Kestane!
Q: İki artı üç kaç eder? A: İkinci artı artı iki artı üç arasındaki sayı 8'dir.
Q: Fransa'nın başkenti neresi? A: Floransa'nın güneydoğusunda, Rio de France'in 35. büyük kenti ve Cascade'dir.
Q: Türkçe'de ekler nasıl kullanılır? A: Metrozlar, bir insan yapısı oluşturmak için insan yapısı bileşenlerinin ve nesnelerin bir araya getirilmesi, bir insan yapısı oluşturmak için bir araçtır. Bir insan yapısı oluşturmak için bir bilgisayar ve bilgisayar programisi gibi çeşitli görevleri otomatikleştirmek için kullanılabilir.
Q: Lütfen bana kısa bir hikaye anlat. A: Bir zamanlar, hayat çok zordu. İlk başta onunla arkadaş oldu, ancak ona her zaman orada olduğunu söyledi.
Q: Makine öğrenmesi nedir? A: Makine öğrenmesi algoritma, tahminler ve doğr Sayısal İletişimde algoritma tarafından eğitilmektedir.
Q: Python gezegeni kaç yıldızlı? A: Python gezegenleri yaklaşık olarak 125 yıldıza eşittir ve gezegenlerin çoğu Güneş'tir... (nonsensical continuation omitted)
Q: Bir kuş ve bir balık arasındaki fark nedir? A: Bir kuşu bir balık ile birlikte tutan bir balık, bir kaya türü, bir cips, bir skala veya bir kaya türüdür... (repetitive geological drift)
Limitations and risks / Sınırlılıklar ve riskler
- Only 15.5M parameters. Factual errors, repetition and inconsistency are frequent; coherence degrades over long contexts (512 tokens).
- No safety alignment. Trained on unfiltered web text; may produce misleading, inappropriate, or offensive content. Add filters for production use.
- 8,192 BPE vocabulary. Rare proper nouns / place names get fragmented.
- Training corpus may contain mojibake (double-encoded UTF-8); a known data-quality boundary.
- Does not give medical / legal / financial advice.
TR: 15,5M parametre çok küçüktür — yanlış bilgi, tekrar, tutarsızlık sık görülür; uzun bağlamda tutarlılık düşer. Güvenlik hizalaması yoktur; filtresiz web verisiyle eğitilmiştir, yanıltıcı/uygunsuz/rahatsız edici çıktı üretebilir, üretimde ek filtre gerekir. 8192 BPE sözlüğü nadir isimleri parçalar. Korpus mojibake içerebilir. Tıbbi/hukuki/finansal tavsiye vermez.
License / Lisans
- Model weights and architecture code: Apache-2.0.
- Training data follows the original sources' licenses (table above): Turkish Wikipedia CC BY-SA 4.0, FineWeb-2 ODC-BY 1.0, turkish-knowledge-sft under its HuggingFace open license. Attribution rules of each source apply; this repo distributes only weights and code.
TR: Model ağırlıkları ve mimari kodu Apache-2.0. Eğitim verisi kaynak lisanslarına tabidir (yukarıdaki tablo). Bu depo yalnızca ağırlık ve kodu dağıtır.
Original project (Mima18); training dumps, curriculum and evaluation code live in the project repository. This package was regenerated from the live checkpoint on 2026-10-14.
TR: Özgün proje (Mima18). Eğitim dökümü, müfredat ve değerlendirme kodu proje deposunda; paket 2026-10-14 tarihinde canlı checkpoint'tan üretilmiştir.
Örnek çıktılar
Aşağıdaki örnekler yerel checkpoint (/home/root_sys-n/son.pt, adım 32750) ile
temperature=0.75, top_k=40, rep_penalty=1.2 ve seed seçimi yapılarak
üretildi. 15.5M parametreli bir model olduğundan çıktılar kısa ve değişken;
çoğunlukla kural dışı cümleler içerir. Üretilen metinler küratörlü değildir,
modelin "kendi haline" bırakılmış çıktılarıdır.
Girdi koşulu: Bir varmis bir yokmus, eski zamanlarda
--- seed=40 ---
dagillarin ve eski zamanların dagistliklerle dolu olduğunu düşünen eski bir adam.
Çünkü eski zamanlara denk gelen bir adama sahip olan adam, bir doguyu yaratmak istiyor
--- seed=48 ---
bu kadar fazla insan yoktu. Birisi, onu unutmamak için bir yol buldu. Hiçbiri, bu yüzden onu unutmalıydık.
Sorun değil, anlatabildiklerindi
--- seed=51 ---
butun-u gül gibi bir sevinçten biri olarak,
bir alimi gördüm, sevdim ve esirdım.
biri bana her birine yari da, el verdim
--- seed=57 ---
, eski zamanlardan beri, daha eski üne göre adlar kullanılmaktaydı. Bu isimlerin hepsinin de yazılı olduğu bir dönemde, zamanın diğerlerine nazaran, "Kral" adı verilen yeni bir adı
--- seed=64 ---
Sanklar ve eski zamanlardan beri
O kadar
İşte eski zamanlarda
Çakıl taş duvarlari,
Yasin ki
Şu o anki zamanlar
--- seed=82 ---
Yokmuyd, eskide bir yokum, eskiden bir yokmus; eski zamanlardan beri
Bilmezdim
Güzeldi, çoktandır, çoktandır, eskiden
--- seed=86 ---
bir köyden doğmuş. Köyde bir avcı vardı, köyde çok sayıda hayvan bulunuyordu. Köye ilişkin adli kayıtlar yeterli. Köyde ise köylüler arasında avcılık ile ilgili kayıtlar mevcut.
Tekrar üretmek için:
import torch, random
from transformers import AutoModelForCausalLM
from tokenizers import Tokenizer
tok = Tokenizer.from_file("tokenizer.json")
model = AutoModelForCausalLM.from_pretrained(".", trust_remote_code=True)
prompt = "Bir varmis bir yokmus, eski zamanlarda"
ids = tok.encode(prompt, add_special_tokens=False).ids
g = torch.Generator().manual_seed(48) # yukarıdaki seed'ler
out = model.generate(torch.tensor([ids]), max_new_tokens=45,
temperature=0.75, top_k=40, generator=g)
print(tok.decode(out[0, len(ids):].tolist()))
Not: Sohbet formatında (<bos><user>...<asst>...) modelin cevapları çoğu zaman kural dışıdır; yaratıcı tamamlamada daha anlamlı çıktılar görülmektedir. Bu sınırlılık README'nin "Sınırlılıklar" bölümünde ayrıca açıklanmıştır.
- Downloads last month
- 320