Saltar al contenido
ModelVerificadoExterno
Descargar

Sentinel Prime 350m

Sentinel Prime 350M is a from-scratch sparse Mixture of Experts (MoE) transformer built by QubitPage Research.

TipoOtherVersiónmodelPublicador@qubitpageCcalidad

Fuente del modelo

Tipo
Other
Tamaño del archivo
1,76 GB
Versión
vmodel
Actualizado
1 oct 2026
Publicador
@qubitpage
Descargas
16
Tareas
Generación de texto
Fuente
Hugging Face

Descripción de la fuente

Sentinel Prime 350M — Sparse MoE Language Model

Sentinel Prime 350M is a from-scratch sparse Mixture of Experts (MoE) transformer built by QubitPage Research.

Architecture

ParameterValue
Total Parameters471,231,488
Active Parameters~471,231,488 per token
Hidden Dimension1024
Layers24
Attention Heads16 (Q) / 4 (KV)
FFN Dimension2752
Experts1 total, top-1 active
Vocab Size100,277 (tiktoken cl100k_base)
Max Sequence Length2048
Position EncodingRoPE (theta=500000.0)
NormalizationRMSNorm
FFN TypeSwiGLU
AttentionGrouped Query Attention (GQA)

Key Features

  • Sparse MoE: Only 1/1 experts active per token
  • GQA: Memory-efficient grouped query attention
  • SwiGLU: LLaMA/Mistral-style feed-forward
  • RoPE: Rotary position embeddings for length generalization
  • From Scratch: No pretrained weights, trained from random initialization

Training

  • Data: FineWeb-Edu (educational web text)
  • Tokens Seen: 3,113,287,680
  • Best Validation Loss: 3.0578
  • Hardware: NVIDIA GH200 96GB HBM3e
  • Framework: PyTorch 2.5.1

Usage

from transformers import AutoModelForCausalLM, AutoConfig
# Register custom model
from hf_model import SentinelBrainConfig, SentinelBrainForCausalLM
from hf_tokenizer import SentinelBrainTokenizer

model = SentinelBrainForCausalLM.from_pretrained("qubitpage/sentinel-prime-350m", trust_remote_code=True)
tokenizer = SentinelBrainTokenizer()

input_ids = tokenizer("The meaning of life is", return_tensors="pt")["input_ids"]
output = model.generate(input_ids, max_new_tokens=50)
print(tokenizer.decode(output[0]))

License

Apache 2.0

Benchmarks

Results from EleutherAI lm-evaluation-harness (latest) run on a single NVIDIA GH200 96GB. Full results, configs and per-sample logs are public in the companion dataset: qubitpage/sentinel-prime-350m-evals

ModelParamsTrain Tokensarc_challengearc_easyhellaswaglambada_openaiopenbookqapiqasciqwinograndeAvg
Sentinel-Prime-350M (ours)471M3.1B0.1940.3520.2640.0010.1200.5660.4810.5010.310
Pythia-410M410M300B0.2400.5200.4000.5100.3000.6700.8100.5300.498
GPT-Neo-125M125M300B0.1900.4300.3000.3700.2600.6300.7600.5200.433
SmolLM-360M360M600B0.3400.6600.5200.4600.3700.7200.9100.5700.569

Training-Compute Context

ModelHardwareTokens SeenCompute Multiplier vs ours
Sentinel-Prime-350M1x NVIDIA GH200 96GB3.1 B1x (baseline)
Pythia-410MTPU v4 cluster300 B97x
SmolLM-360M64x NVIDIA H100600 B194x

Sentinel-Prime-350M was trained on 3.1B tokens — Pythia-410M on 300B (97x more) and SmolLM-360M on 600B (194x more). The current avg of 0.310 vs Pythia's 0.497 and SmolLM's 0.569 therefore reflects an early-checkpoint snapshot at <1% of typical training budget for this size class.

Per Chinchilla (Hoffmann et al. 2022), a 471M dense model is compute-optimal at ~9.4B tokens (~20x params); we are at 0.33x compute-optimal. Continued pretraining on the same architecture/data is expected to scale predictably toward the reference band.

Reference scores from EleutherAI Pythia paper and HuggingFace SmolLM card. All evaluated 0-shot under identical prompt formats.

Reproduce locally:

pip install "lm_eval[hf]"
lm_eval run --model hf \
  --model_args pretrained=qubitpage/sentinel-prime-350m,trust_remote_code=True,dtype=float32 \
  --tasks arc_challenge,arc_easy,hellaswag,lambada_openai,openbookqa,piqa,sciq,winogrande \
  --device cuda:0 --batch_size auto:4

Support This Project

Sentinel-Prime is being trained on a single GH200 against models that used hundreds of GPUs. If these results interest you and you want to help us close the 97x–194x compute gap, you can back the project here:

Support Sentinel-Prime on Surge

Every contribution funds more GH200 hours and brings the next checkpoint closer to (and past) the Pythia / SmolLM reference band.

Fuentes

1 fuente
Hugging FacePrincipalVersión 2e9eea70445ea47d6963114c965095073923ede7
huggingface.co/qubitpage/sentinel-prime-350m/tree/2e9eea70445ea47d6963114c965095073923ede7

Verificado 1 oct

Artefactos del modelo

1 artefacto

model.safetensors

safetensors · 1,76 GB · SHA-256 41c68d8682a9…0045 · Hugging Face

Descargar

Extractos de fuentes

3 extractos

--- library_name: transformers tags: - sentinel-prime - moe - sparse-mixture-of-experts - from-scratch - custom-architecture license: apache-2.0 language: - en pipeline_tag: text-generation model-index: - name: sentinel-prime-350m results: [] --- # Sentinel Prime 350M — Sparse MoE Language Model **Sentinel Prime 350M** is a from-scratch sparse Mixture of Experts (MoE) transformer built by [QubitPage Research](https://qubitpage.com). ## Architecture | Parameter | Value | |---|---| | Total Parameters | 471,231,488 | | Active Parameters | ~471,231,488 per token | | Hidden Dimension | 1024 | | Layers | 24 | | Attention Heads | 16 (Q) / 4 (KV) | | FFN Dimension | 2752 | | Experts | 1 total, top-1 active | | Vocab Size | 100,277 (tiktoken cl100k_base) | | Max Sequence Length | 2048 | | Position Encoding | RoPE (theta=500000.0) | | Normalization | RMSNorm | | FFN Type | SwiGLU | | Attention | Grouped Query Attention (GQA) | ## Key Features - **Sparse MoE**: Only 1/1 experts active per token - **GQA**: Memory-efficient grouped query attention - **SwiGLU**: LLaMA/Mistral-style feed-forward - **RoPE**: Rotary position embeddings for length generalization - **From Scratch**: No pretrained weights, trained from random initialization ## Training - **Data**: FineWeb-Edu (educational web text) - **Tokens Seen**: 3,113,287,680 - **Best Validation Loss**: 3.0578 - **Hardware**: NVIDIA GH200 96GB HBM3e - **Framework**: PyTorch 2.5.1 ## Usage ```python from transformers import AutoModelForCausalLM, AutoConfig # Register custom model from hf_model import SentinelBrainConfig, SentinelBrainForCausalLM from hf_tokenizer import SentinelBrainTokenizer model = SentinelBrainForCausalLM.from_pretrained("qubitpage/sentinel-prime-350m", trust_remote_code=True) tokenizer = SentinelBrainTokenizer() input_ids = tokenizer("The meaning of life is", return_tensors="pt")["input_ids"] output = model.generate(input_ids, max_new_tokens=50) print(tokenizer.decode(output[0])) ``` ## License Apache 2.0 ## Benchmarks Results from EleutherAI [`lm-evaluation-harness`](https://github.com/EleutherAI/lm-evaluation-harness) (latest) run on a single NVIDIA GH200 96GB. Full results, configs and per-sample logs are public in the companion dataset: **[qubitpage/sentinel-prime-350m-evals](https://huggingface.co/datasets/qubitpage/sentinel-prime-350m-evals)** | Model | Params | Train Tokens |...

Source context: 16 downloads · 0 likes · Pipeline text-generation · Library transformers · Repo qubitpage/sentinel-prime-350m

Source context: 7 downloads · 0 likes · Pipeline text-generation · Library transformers · Repo qubitpage/sentinel-prime-350m