smartcore-v1 / code /kod /smartcore_v1_180m.yaml
kdirgul's picture
kod (data hariç) Colab için
9aed7c4 verified
Raw
History Blame Contribute Delete
4.46 kB
# =============================================================================
# SmartCore V1 — 180M Mamba-3 (SISO) + GQA 5:1 hibrit, EN+TR
# Kilitlendi: 2026-06-04, kod/hybrid_mamba3.py ile CPU'da doğrulandı.
#
# Referans iskelet: hrsvrn/mamba3-180m (Mamba-3 SISO) — ama:
# - vocab 128256 -> 48000 (EN+TR; embed 98.5M -> 36.9M)
# - kurtulan bütçe derinliğe: 12 -> 20 katman
# - + GQA 5:1 hibrit (saf Mamba değil)
#
# Param-sayım (kod/hybrid_mamba3.py, minimal mixer + GQA + SwiGLU-1500):
# n_layer=20 -> 175.5M (17 Mamba + 3 GQA) <- v1 seçimi (180M bandı, marjlı)
# n_layer=21 -> 182.8M (18 Mamba + 3 GQA) <- 180M'e daha yakın alternatif
# embed (tied) = 48000 x 768 = 36.9M
# init loss ~= ln(48000) = 10.78 (doğrulandı: 10.89)
# NOT: kesin sayım Colab'da fork (mamba-og) mixer'ıyla ±birkaç M oynar.
# =============================================================================
run:
name: smartcore_v1_180m_entr
seed: 42
save_every: 1900 # ~her 1B token (batch 524288)
model:
arch: mamba3
n_layers: 20 # 17 Mamba + 3 GQA (alt: 21 -> 182.8M)
d_model: 768
d_state: 128 # Mamba-3 paper default
expand: 2
head_dim: 64
ngroups: 1
d_intermediate: 1500 # SwiGLU; referans 180M ile aynı
vocab_size: 48000 # EN+TR SentencePiece (Faz 0'da eğitilecek)
pad_vocab_multiple: 8
tie_embeddings: true
rms_norm: true
residual_in_fp32: true
fused_add_norm: true
norm_epsilon: 1.0e-5
initializer_range: 0.02
architecture:
exponential_trapezoidal: true # Mamba-3
complex_ssm: true # Mamba-3 (state-tracking, data-dependent RoPE)
rope_fraction: 0.5
bcnorm: true # baseline (norm-free ablasyonları sonraya)
bc_bias: true
short_conv: false # Mamba-3 conv1d'yi kaldırıyor
is_outproj_norm: false
is_mimo: false # v1 = SISO (kanıtlanmış). v1.5'te true + mimo_rank=4
mimo_rank: 1
hybrid: # GQA yerleşimi (SmartCore eklentisi)
attn_every: 6 # her 6. katman attention -> ~5:1
attn_layers: [5, 11, 17] # 0-indexli (1-indexli 6,12,18); ilk/son Mamba
n_heads: 12 # 12 x 64 = 768
n_kv_heads: 3 # GQA 4:1 sıkıştırma
qk_norm: true # RoPE'den önce
rope_base: 10000.0
kernels:
chunk_size: 128 # fork Triton SISO (Colab). minimal'de 64.
use_triton_siso: true # Colab/CUDA; CPU smoke'ta saf-PyTorch
# --- Kararlılık eklentileri (v2 kılavuzu) ---
stability:
scaled_embed: true # sqrt(d_model) gömme ölçekleme
qk_norm: true
fp32_rmsnorm: true
z_loss: 1.0e-4 # opsiyonel sigorta
optimizer:
type: AdamW
betas: [0.9, 0.95]
eps: 1.0e-8
weight_decay: 0.1 # yalnız 2D ağırlıklara
grad_clip: 1.0
fused: true
lr: # WSD (referansta cosine; biz WSD)
schedule: wsd # warmup -> stable -> decay -> floor
peak: 5.0e-4
floor: 5.0e-5 # peak x 0.1
warmup_frac: 0.02
stable_frac: 0.73
decay_frac: 0.25
training:
total_tokens: 12_000_000_000 # 10-15B bandı, orta
batch_tokens: 524288 # 256 x 2048 (referansla aynı)
seq_len: 2048
micro_batch_size: 4
precision: bf16 # A100; CPU smoke fp32
gradient_checkpointing: false # gerekirse 6'lı blok birimiyle aç
data: # v2 sentezi mixture'ı
mixture:
en_fineweb_edu: 0.55 # HuggingFaceFW/fineweb-edu sample-10BT
tr_fineweb2_hq: 0.22 # epfml/FineWeb2-HQ tur_Latn — hazır kaliteli
code_codeparrot: 0.13 # codeparrot/codeparrot-clean (StarCoder2 gate'li → ikame)
math_openwebmath: 0.10 # open-web-math (alt: HuggingFaceTB/finemath-4plus)
curriculum: uniform_natural # TildeOpen: başta/sonda TR-ağırlık, ortada EN
decay_mixture: # son %25 (anneal) — multi-source top-quartile
en_edu_top: 0.35
tr_wiki: 0.25
math: 0.20
code_top: 0.20
# --- Yol (v2 sentezi) ---
# v1 : bu config (SISO), sade hibrit
# v1.5 : is_mimo=true mimo_rank=4 ; RHO-1 seçici loss ; TPT zenginleştirme
# v2 : Titans-tarzı bellek dalı (3. blok tipi) + uzun bağlam