CodeSoft/sorbet-v2-25m
<div align="center"> <img src="https://cdn-uploads.huggingface.co/production/uploads/645aad59c4acfcf664022df5/7_BzxM3bmTilI1xRzElnB.png" alt="Sorbet V2 Header" width="700">
<h1>Sorbet v2 25M</h1>
<p> 25M-parameter Qwen2-style decoder LM, warm-started from Sorbet-25M and continued-trained in two runs. </p> </div>
Architecture graph
<a href="https://hfviewer.com/CodeSoft/sorbet-v2-25m?utmsource=huggingface&utmmedium=embeddedmodelcard&utmcampaign=CodeSoftsorbet-v2-25mcard" target="blank" rel="noopener"> <img src="https://hfviewer.com/api/card.svg?source=CodeSoft%2Fsorbet-v2-25m&granularity=0" alt="Architecture graph for CodeSoft/sorbet-v2-25m. Open in hfviewer" width="100%" /> </a>
Architecture
Identical to Sorbet-25M: stock Qwen2 throughout, no custom code paths, natively supported by both transformers and llama.cpp.
Training
v2 continues the v1 checkpoint through two training runs:
Block-shuffled at 131,072 tok/step.
Benchmarks
All numbers zero-shot via lm-evaluation-harness, bf16, identical settings across checkpoints.
Notes:
- Every score is at or above the Sorbet-25M baseline within error bars.
- ArithMark-3.0 (
AxiomicLabs/Arithmark-3.0) remains the strongest relative result (+8 pts over random), consistent with the math share of the pretraining mix. - ARC-challenge raw accuracy sits below chance due to a length bias in unnormalized scores; acc_norm is the meaningful metric there.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "CodeSoft/sorbet-v2-25m"
model = AutoModelForCausalLM.from_pretrained(repo, dtype="bfloat16").to("cuda")
tok = AutoTokenizer.from_pretrained(repo, subfolder="tokenizer")
ids = tok("Once upon a time", return_tensors="pt").input_ids.cuda()
print(tok.decode(model.generate(ids, max_new_tokens=64)[0]))Limitations
Expect shallow world knowledge and weak performance on knowledge-heavy benchmarks due to the model's small parameter count and limited training budget.
License
Apache-2.0.
