Loading…
Loading…
Mark-SLM-V3-150M is a 150M-parameter experimental sparse language model trained on 3.47M tokens (miceworks/Mark-Open-SLM-Curriculum), achieving an in-distribution Intelligence Index of 16.36 on the Open SLM Leaderboard (PR #291). It is an architectural research testbed for Multi-Head Latent Attention (MLA) and fine-grained MoE on 8 GB GPUs, NOT a general-purpose conversational or multilingual assistant.
The exported GGUF container (mark_slm_v3_150m_iq4_nl.gguf, 90.37 MiB / 94.76 MB / 94,764,576 bytes) implements 15 physical deepseek2 blocks (layers 0-1 dense, layers 2-14 MoE with 16 routed + 1 shared expert, top-2 active). The architecture comprises 146,899,248 unique parameters (excluding tied output.weight) and 165,349,680 materialized GGUF parameters across 273 tensors (including the materialized output.weight copy).
| Field | Value |
|---|---|
| Architecture | deepseek2 |
| Training Status | TRAINED_CHECKPOINT |
| Weight State Label | Trained Checkpoint (Model Soup 50/50) |
| Binary Size | 90.37 MiB (94.76 MB / 94,764,576 bytes) |
| Total Parameters | 146,899,248 unique parameters (165,349,680 materialized GGUF parameters across 273 tensors) |
| Active Parameters | 72,452,400 (72452400 active) |
| Vocabulary Size | 32032 |
| Layers | 15 physical deepseek2 blocks (layers 0-1 dense, layers 2-14 MoE) |
| Hidden Dimension | 576 |
| Attention Heads | 9 |
| MLA Ranks | q_lora_rank=256, kv_lora_rank=128, qk_rope_head_dim=64 |
| MoE Experts | 16 routed, 1 shared (2 active/token) |
| Expert FFN Dim | 256 |
| Context Length | 8192 tokens |
| Quantization Type | IQ4_NL (4-bit non-linear) |
| SHA-256 | 4bbfe2dc3fc7a6ac895d56e30352bda0de1322f9826afa28cafe7d24b0e99632 |
The model projects key and value states into a shared low-rank latent representation to decouple memory scaling from context length:
c_KV = h_t * W_DKV (dim: 128)
c_Q = h_t * W_DQ (dim: 256)
q_C = RMSNorm(c_Q * W_UQ)
k_C = RMSNorm(c_KV * W_UK)
Decoupled rotary position embeddings are concatenated along a separate dimension:
k_R = RoPE(h_t * W_KR) (dim: 64)
q_t = [q_C ; q_R]
k_t = [k_C ; k_R]
Physical memory consumption of the KV cache per token in FP16:
KV_bytes_per_token = 15 * (128 + 64) * 2 = 5,760 bytes/token
| Context Window | MLA KV Cache | Standard MHA KV Cache | Memory Savings |
|---|---|---|---|
| 4,096 tokens | 22.50 MiB | 135.00 MiB | 6.0x |
| 8,192 tokens | 45.00 MiB | 270.00 MiB | 6.0x |
| 32,768 tokens | 180.00 MiB | 1080.00 MiB | 6.0x |
blk.{l}.exp_probs_b.bias) are stored in FP32 precision.Router biases update per step to prevent expert collapse without penalizing primary task loss using the exact sign-based rule:
$$b_i \leftarrow b_i + \gamma \cdot \operatorname{sign}(\bar{f} - f_i)$$
where $\gamma = 0.001$, $f_i$ is empirical expert frequency within the batch, and $\bar{f}$ is target uniform frequency.
Router bias vectors (blk.{l}.exp_probs_b.bias) are stored in FP32 precision. Measured disk telemetry from the IQ4_NL container:
miceworks/Mark-Open-SLM-Curriculum contains training splits from HellaSwag, PIQA, ARC, SciQ, and ArithMark (permitted by Open SLM Leaderboard rules), so the reported scores measure in-distribution curriculum learning rather than general out-of-distribution capability. Evaluated on the official Open SLM Leaderboard benchmark suite, achieving an Intelligence Index of 16.36 in PR #291 (https://huggingface.co/spaces/AxiomicLabs/Open_SLM_Leaderboard/discussions/291).Official Open SLM Leaderboard Scores (PR #291, Rule 01 and Rule 02 compliant):
Note: Because miceworks/Mark-Open-SLM-Curriculum incorporates official training splits from HellaSwag, PIQA, ARC, SciQ, and procedural ArithMark, these scores reflect in-distribution curriculum learning rather than broad zero-shot out-of-distribution generalization.
Checkpoint Revision Changelog:
32032 active BPE tokens (58,980 merges, 0 padding tokens)<think>, </think>), tool delimiters (<tool_call>, </tool_call>), epistemic reflection tags ([RETRIEVE], [/RETRIEVE], [EVALUATE], [ACCEPT], [REJECT])Mark-SLM-V3-150M measure in-distribution learning on miceworks/Mark-Open-SLM-Curriculum (which includes official benchmark training splits permitted under Open SLM Leaderboard rules) rather than open-ended out-of-distribution generalization.When running automated benchmarks on TPN Workbench, lm-evaluation-harness, LM Studio, or Hugging Face evaluation runners:
transformers with safetensors or trust_remote_code=True, because the native deepseek2 MLA and fine-grained 3D MoE graph executes directly inside the C++/CUDA kernels of llama.cpp.# Download GGUF and Modelfile using huggingface-cli
huggingface-cli download miceworks/Mark-SLM-V3-150M mark_slm_v3_150m_iq4_nl.gguf Modelfile --local-dir .
# Or using Python
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="miceworks/Mark-SLM-V3-150M", filename="mark_slm_v3_150m_iq4_nl.gguf")
echo "4bbfe2dc3fc7a6ac895d56e30352bda0de1322f9826afa28cafe7d24b0e99632 mark_slm_v3_150m_iq4_nl.gguf" | sha256sum -c -
# Direct CLI completion
llama-cli -m mark_slm_v3_150m_iq4_nl.gguf \
-p "Question: What is 12 * 12?\nAnswer:" \
-n 64 --temp 0.2
# Local HTTP server
llama-server -m mark_slm_v3_150m_iq4_nl.gguf --port 8080 -c 8192
# Create local model from downloaded Modelfile
ollama create mark-slm-150m -f Modelfile
ollama run mark-slm-150m "Question: What is 12 * 12? Answer:"
import gguf
reader = gguf.GGUFReader("mark_slm_v3_150m_iq4_nl.gguf")
print("Architecture:", reader.get_field("general.architecture"))
print("Total Tensors:", len(reader.tensors))
total_params = sum(int(t.shape.prod()) for t in reader.tensors)
print(f"Materialized GGUF Parameters: {total_params:,}")