Text Generation
MLX
Safetensors
English
small-language-model
from-scratch
conversational
apple-silicon
research
Instructions to use OpenSML/Solstice-1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use OpenSML/Solstice-1 with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("OpenSML/Solstice-1") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- MLX LM
How to use OpenSML/Solstice-1 with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "OpenSML/Solstice-1"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "OpenSML/Solstice-1" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "OpenSML/Solstice-1", "messages": [ {"role": "user", "content": "Hello"} ] }' - Atomic Chat
Add sourced SmolLM2 scores and highlight benchmark leaders
Browse filesUse the independently published SmolLM2 result set consistently, bold the highest reported metric values, and remove redundant evaluation graphics. Model weights and inference runtime are unchanged.
- FILE_MANIFEST.json +8 -4
- README.md +12 -17
- SHA256SUMS +3 -2
- docs/EVALUATION.md +20 -27
- results/baselines/smollm2_independent.json +62 -0
FILE_MANIFEST.json
CHANGED
|
@@ -22,8 +22,8 @@
|
|
| 22 |
"sha256": "0e6865f1a81cfd69ca48e6987658854ce0c0d23e91d72ae545393cd5fa032375"
|
| 23 |
},
|
| 24 |
"README.md": {
|
| 25 |
-
"bytes":
|
| 26 |
-
"sha256": "
|
| 27 |
},
|
| 28 |
"REPOSITORIES.json": {
|
| 29 |
"bytes": 716,
|
|
@@ -130,8 +130,8 @@
|
|
| 130 |
"sha256": "e0b0c730321360c40f20e53a22890c52cd5294bad2a5777a0a891096557a2f0a"
|
| 131 |
},
|
| 132 |
"docs/EVALUATION.md": {
|
| 133 |
-
"bytes":
|
| 134 |
-
"sha256": "
|
| 135 |
},
|
| 136 |
"docs/EXAMPLES.md": {
|
| 137 |
"bytes": 1117,
|
|
@@ -397,6 +397,10 @@
|
|
| 397 |
"bytes": 2471,
|
| 398 |
"sha256": "2cafe36ca3f2fe3dd00cf9aa63314eac64a73de2c58e2de92cdeee47306bd8ae"
|
| 399 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 400 |
"results/package_inference_verification.json": {
|
| 401 |
"bytes": 26015,
|
| 402 |
"sha256": "fed55313b61008e8f379a7b4bc49535cc501a31a942c7560687de4a4bd1cd47f"
|
|
|
|
| 22 |
"sha256": "0e6865f1a81cfd69ca48e6987658854ce0c0d23e91d72ae545393cd5fa032375"
|
| 23 |
},
|
| 24 |
"README.md": {
|
| 25 |
+
"bytes": 12573,
|
| 26 |
+
"sha256": "650ef6dc4b02ec96ebdcd879f014b99e7caf75aadbd143e3accd4c4924460672"
|
| 27 |
},
|
| 28 |
"REPOSITORIES.json": {
|
| 29 |
"bytes": 716,
|
|
|
|
| 130 |
"sha256": "e0b0c730321360c40f20e53a22890c52cd5294bad2a5777a0a891096557a2f0a"
|
| 131 |
},
|
| 132 |
"docs/EVALUATION.md": {
|
| 133 |
+
"bytes": 8336,
|
| 134 |
+
"sha256": "b78247452825d577713115632bfd9900decf64ff991b098156184dec7a41f415"
|
| 135 |
},
|
| 136 |
"docs/EXAMPLES.md": {
|
| 137 |
"bytes": 1117,
|
|
|
|
| 397 |
"bytes": 2471,
|
| 398 |
"sha256": "2cafe36ca3f2fe3dd00cf9aa63314eac64a73de2c58e2de92cdeee47306bd8ae"
|
| 399 |
},
|
| 400 |
+
"results/baselines/smollm2_independent.json": {
|
| 401 |
+
"bytes": 3080,
|
| 402 |
+
"sha256": "99d582c9ed4e90d87f16835e814beb4604687519734c7a74972367a61f8c10c9"
|
| 403 |
+
},
|
| 404 |
"results/package_inference_verification.json": {
|
| 405 |
"bytes": 26015,
|
| 406 |
"sha256": "fed55313b61008e8f379a7b4bc49535cc501a31a942c7560687de4a4bd1cd47f"
|
README.md
CHANGED
|
@@ -57,12 +57,12 @@ Zero-shot likelihood scoring on the complete ARC Easy, ARC Challenge, PIQA and H
|
|
| 57 |
|
| 58 |
| Benchmark | Solstice-1 acc / acc_norm | OpenSML-150M acc / acc_norm | SmolLM2-135M Instruct acc / acc_norm |
|
| 59 |
| --- | --- | --- | --- |
|
| 60 |
-
| ARC Easy | 62.58 / 62.33 | 56.65 / 55.43 |
|
| 61 |
-
| ARC Challenge | 29.35 / 30.89 | 26.02 / 29.52 |
|
| 62 |
-
| PIQA | 66.49 / 66.21 | 64.53 / 64.09 |
|
| 63 |
-
| HellaSwag | 32.85 / 39.40 | 30.55 / 33.94 |
|
| 64 |
|
| 65 |
-
|
| 66 |
|
| 67 |
### Instruction following
|
| 68 |
|
|
@@ -70,19 +70,16 @@ IFEval checks whether generated responses follow explicit instructions. It measu
|
|
| 70 |
|
| 71 |
| IFEval accuracy | Solstice-1 | OpenSML-150M | SmolLM2-135M Instruct |
|
| 72 |
| --- | --- | --- | --- |
|
| 73 |
-
| Strict prompts | 17.93% | 15.16% |
|
| 74 |
-
| Strict instructions | 30.10% | 25.30% |
|
| 75 |
-
| Loose prompts | 19.22% | 15.71% |
|
| 76 |
-
| Loose instructions | 32.49% | 25.78% |
|
| 77 |
-
| Publisher prompt/instruction average | — | — | 29.9% |
|
| 78 |
|
| 79 |
-
|
| 80 |
|
| 81 |
-
|
| 82 |
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
Solstice uses native MLX FP32 scoring. SmolLM2 uses LightEval; its [evaluation code](https://github.com/huggingface/smollm/tree/438be18dae658a638f3a6976fdf5190bb6d68619/text/evaluation/smollm2) specifies character-normalized choice scores with a leading space excluded and instruct runs with a chat template. OpenSML-150M uses an older native pipeline. Prompt formatting, precision and generation budgets differ, so these are reference comparisons, not a controlled leaderboard. [Exact sources and metric definitions](results/baselines/published_models.json).
|
| 86 |
|
| 87 |
### Conversation checks
|
| 88 |
|
|
@@ -94,8 +91,6 @@ A separate authored chat panel measures short-answer matching and response behav
|
|
| 94 |
| Natural stopping, all responses | 99.48% |
|
| 95 |
| Repetition flags, all responses | 1.56% |
|
| 96 |
|
| 97 |
-

|
| 98 |
-
|
| 99 |
The panel contains 180 checked answers and 12 open-ended responses. Repetition flags were reviewed: two were clear loops and one was a milder repeated idea. The full panel and scorer are included in [the saved results](results/public/chat/results.json).
|
| 100 |
|
| 101 |
On the separate reserved authored test, Solstice reaches **51.9%**, versus **20.0%** after SFT 1 and **25.9%** after SFT 2. On an older, reused panel, the corresponding scores are **53.84%, 52.13% and 54.55%**: the last stage does not improve every measure. The [evaluation report](docs/EVALUATION.md) explains selection, uncertainty and test exposure.
|
|
|
|
| 57 |
|
| 58 |
| Benchmark | Solstice-1 acc / acc_norm | OpenSML-150M acc / acc_norm | SmolLM2-135M Instruct acc / acc_norm |
|
| 59 |
| --- | --- | --- | --- |
|
| 60 |
+
| ARC Easy | **62.58** / **62.33** | 56.65 / 55.43 | 54.00 / 48.82 |
|
| 61 |
+
| ARC Challenge | **29.35** / **30.89** | 26.02 / 29.52 | 25.94 / 27.73 |
|
| 62 |
+
| PIQA | 66.49 / 66.21 | 64.53 / 64.09 | **66.70** / **66.76** |
|
| 63 |
+
| HellaSwag | 32.85 / 39.40 | 30.55 / 33.94 | **35.02** / **42.90** |
|
| 64 |
|
| 65 |
+
Values are percentages, shown as **acc / acc_norm**. Bold marks the highest reported value for each metric. SmolLM2 scores are from an independent published evaluation; protocol differences are noted below.
|
| 66 |
|
| 67 |
### Instruction following
|
| 68 |
|
|
|
|
| 70 |
|
| 71 |
| IFEval accuracy | Solstice-1 | OpenSML-150M | SmolLM2-135M Instruct |
|
| 72 |
| --- | --- | --- | --- |
|
| 73 |
+
| Strict prompts | 17.93% | 15.16% | **21.63%** |
|
| 74 |
+
| Strict instructions | 30.10% | 25.30% | **35.85%** |
|
| 75 |
+
| Loose prompts | 19.22% | 15.71% | **22.55%** |
|
| 76 |
+
| Loose instructions | 32.49% | 25.78% | **37.29%** |
|
|
|
|
| 77 |
|
| 78 |
+
Solstice uses greedy generation, no system message or repetition penalty, and a 1,024-token output cap. Of 541 prompts, 130 reach that cap; they remain in the scores. The 150M release and the independent SmolLM2 evaluation used a 1,280-token cap and different chat formats.
|
| 79 |
|
| 80 |
+
Sources: [OpenSML-150M model card](https://huggingface.co/OpenSML/OpenSML-150M) and [PetitGPT’s independent SmolLM2 evaluation](https://github.com/yangqi0/petitgpt/blob/a129f3b709d44ad6a53aef0d44a7054281099df2/README.md#results-at-a-glance).
|
| 81 |
|
| 82 |
+
All three use FP32 choice scoring, but implementations and chat formats differ. Bold marks the highest reported score; these differences have not been tested for statistical significance. [SmolLM2 results and protocol](results/baselines/smollm2_independent.json) · [150M and official-card references](results/baselines/published_models.json).
|
|
|
|
|
|
|
| 83 |
|
| 84 |
### Conversation checks
|
| 85 |
|
|
|
|
| 91 |
| Natural stopping, all responses | 99.48% |
|
| 92 |
| Repetition flags, all responses | 1.56% |
|
| 93 |
|
|
|
|
|
|
|
| 94 |
The panel contains 180 checked answers and 12 open-ended responses. Repetition flags were reviewed: two were clear loops and one was a milder repeated idea. The full panel and scorer are included in [the saved results](results/public/chat/results.json).
|
| 95 |
|
| 96 |
On the separate reserved authored test, Solstice reaches **51.9%**, versus **20.0%** after SFT 1 and **25.9%** after SFT 2. On an older, reused panel, the corresponding scores are **53.84%, 52.13% and 54.55%**: the last stage does not improve every measure. The [evaluation report](docs/EVALUATION.md) explains selection, uncertainty and test exposure.
|
SHA256SUMS
CHANGED
|
@@ -3,7 +3,7 @@ f09ed498cc42b482dae88d9fb5026bf74e1d8b9187f9ea301aeda0db76d6c859 BACKUP_AND_CLE
|
|
| 3 |
af646a190d135ec25a6ee2c76d1594c3f9ba8005cd3ca6df908606a15023273e CITATION.cff
|
| 4 |
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
|
| 5 |
0e6865f1a81cfd69ca48e6987658854ce0c0d23e91d72ae545393cd5fa032375 PACKAGING_VERIFICATION.json
|
| 6 |
-
|
| 7 |
152a87d0098752350d54fdd3cde3861a77eb497c53dc973ee1a8370d12a13ff6 REPOSITORIES.json
|
| 8 |
fd05e1595bcdc52942e9425b6efb2c7e89553e6b0ad7d5f93d9075969cd75dba RUN_GUIDE.md
|
| 9 |
87fa33719fe1182d467a05ab417be2a362f50eea59f0ac6496d40e677544e27c SOURCE_NOTICE.md
|
|
@@ -30,7 +30,7 @@ fb204be1d9e72eb1cae140bfdb03dbcadc1843c47b1894a731396ceeedb9a22f configs/sft1/p
|
|
| 30 |
51d66108416988bad1015d7b52cf63db0571f87f202b2b18c7e98e67a29ec62b configs/sft2/plan.json
|
| 31 |
ae708eca3c09d5a27eab3fddbe4106d0658787beebc9393de57f75234480a284 configs/sft3/plan.json
|
| 32 |
e0b0c730321360c40f20e53a22890c52cd5294bad2a5777a0a891096557a2f0a docs/DATA.md
|
| 33 |
-
|
| 34 |
7a818c365f1c047b349479829396ba5cd841ca8d2f04fa14fc1489083a1fd4b3 docs/EXAMPLES.md
|
| 35 |
f98d45b39b9595510fa80d495a3758b211d8c770adc739d381763d3cfb2a2a0b docs/TECHNICAL_REPORT.md
|
| 36 |
37438bfe291e2cc5b7513ec912cab9eaf7ce3d6352543f8e63d44da3a4f7d5b3 docs/figures/benchmark-comparison.png
|
|
@@ -97,6 +97,7 @@ f76237736d1aab8f04517ad9e3336925ca9773399a9ad888f07c15d3ceaa4f87 results/baseli
|
|
| 97 |
a5d49e3dc60a6c4dda4799090881cc2aab033b922ac0b5dafd52c0c6c7e2e6d8 results/baselines/attempt5.json
|
| 98 |
2b59f728ebc9bef6deaf378e6908f7b55723b368f60da83f9af5b2b1731d0346 results/baselines/parent2000.json
|
| 99 |
2cafe36ca3f2fe3dd00cf9aa63314eac64a73de2c58e2de92cdeee47306bd8ae results/baselines/published_models.json
|
|
|
|
| 100 |
fed55313b61008e8f379a7b4bc49535cc501a31a942c7560687de4a4bd1cd47f results/package_inference_verification.json
|
| 101 |
ba2cfb7c8b446dede8e7f33bb78885855e74bd75f861b0c201d6e01e88bc987f results/pretraining_steps.csv
|
| 102 |
c4e3210780814051e3ad1bd99a9c143b9c5dbe910224239a134fddc546e9c9a8 results/pretraining_validation.csv
|
|
|
|
| 3 |
af646a190d135ec25a6ee2c76d1594c3f9ba8005cd3ca6df908606a15023273e CITATION.cff
|
| 4 |
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
|
| 5 |
0e6865f1a81cfd69ca48e6987658854ce0c0d23e91d72ae545393cd5fa032375 PACKAGING_VERIFICATION.json
|
| 6 |
+
650ef6dc4b02ec96ebdcd879f014b99e7caf75aadbd143e3accd4c4924460672 README.md
|
| 7 |
152a87d0098752350d54fdd3cde3861a77eb497c53dc973ee1a8370d12a13ff6 REPOSITORIES.json
|
| 8 |
fd05e1595bcdc52942e9425b6efb2c7e89553e6b0ad7d5f93d9075969cd75dba RUN_GUIDE.md
|
| 9 |
87fa33719fe1182d467a05ab417be2a362f50eea59f0ac6496d40e677544e27c SOURCE_NOTICE.md
|
|
|
|
| 30 |
51d66108416988bad1015d7b52cf63db0571f87f202b2b18c7e98e67a29ec62b configs/sft2/plan.json
|
| 31 |
ae708eca3c09d5a27eab3fddbe4106d0658787beebc9393de57f75234480a284 configs/sft3/plan.json
|
| 32 |
e0b0c730321360c40f20e53a22890c52cd5294bad2a5777a0a891096557a2f0a docs/DATA.md
|
| 33 |
+
b78247452825d577713115632bfd9900decf64ff991b098156184dec7a41f415 docs/EVALUATION.md
|
| 34 |
7a818c365f1c047b349479829396ba5cd841ca8d2f04fa14fc1489083a1fd4b3 docs/EXAMPLES.md
|
| 35 |
f98d45b39b9595510fa80d495a3758b211d8c770adc739d381763d3cfb2a2a0b docs/TECHNICAL_REPORT.md
|
| 36 |
37438bfe291e2cc5b7513ec912cab9eaf7ce3d6352543f8e63d44da3a4f7d5b3 docs/figures/benchmark-comparison.png
|
|
|
|
| 97 |
a5d49e3dc60a6c4dda4799090881cc2aab033b922ac0b5dafd52c0c6c7e2e6d8 results/baselines/attempt5.json
|
| 98 |
2b59f728ebc9bef6deaf378e6908f7b55723b368f60da83f9af5b2b1731d0346 results/baselines/parent2000.json
|
| 99 |
2cafe36ca3f2fe3dd00cf9aa63314eac64a73de2c58e2de92cdeee47306bd8ae results/baselines/published_models.json
|
| 100 |
+
99d582c9ed4e90d87f16835e814beb4604687519734c7a74972367a61f8c10c9 results/baselines/smollm2_independent.json
|
| 101 |
fed55313b61008e8f379a7b4bc49535cc501a31a942c7560687de4a4bd1cd47f results/package_inference_verification.json
|
| 102 |
ba2cfb7c8b446dede8e7f33bb78885855e74bd75f861b0c201d6e01e88bc987f results/pretraining_steps.csv
|
| 103 |
c4e3210780814051e3ad1bd99a9c143b9c5dbe910224239a134fddc546e9c9a8 results/pretraining_validation.csv
|
docs/EVALUATION.md
CHANGED
|
@@ -6,12 +6,12 @@ All results identify the same release weight hash, `7b2d8777040f05d8e0849acac4e4
|
|
| 6 |
|
| 7 |
| Benchmark | Solstice-1 acc / acc_norm | OpenSML-150M acc / acc_norm | SmolLM2-135M Instruct acc / acc_norm |
|
| 8 |
| --- | --- | --- | --- |
|
| 9 |
-
| ARC Easy | 62.58 / 62.33 | 56.65 / 55.43 |
|
| 10 |
-
| ARC Challenge | 29.35 / 30.89 | 26.02 / 29.52 |
|
| 11 |
-
| PIQA | 66.49 / 66.21 | 64.53 / 64.09 |
|
| 12 |
-
| HellaSwag | 32.85 / 39.40 | 30.55 / 33.94 |
|
| 13 |
|
| 14 |
-
|
| 15 |
|
| 16 |
Native MLX evaluates complete ARC Easy/Challenge test splits, PIQA validation and HellaSwag validation. It uses zero-shot raw completion prompts, no chat template or inserted BOS/EOS, FP32 weights, vanilla attention, batch size four and chunked scoring. Raw accuracy ranks summed continuation log-likelihood; normalized accuracy divides by choice Unicode-character count. No generated explanation or LLM judge determines the answer. No choices were context-truncated. Dataset revisions and scorer settings are preserved in [the result record](../results/public/choices/results.json).
|
| 17 |
|
|
@@ -19,38 +19,33 @@ Native MLX evaluates complete ARC Easy/Challenge test splits, PIQA validation an
|
|
| 19 |
|
| 20 |
| IFEval accuracy | Solstice-1 | OpenSML-150M | SmolLM2-135M Instruct |
|
| 21 |
| --- | --- | --- | --- |
|
| 22 |
-
| Strict prompts | 17.93% | 15.16% |
|
| 23 |
-
| Strict instructions | 30.10% | 25.30% |
|
| 24 |
-
| Loose prompts | 19.22% | 15.71% |
|
| 25 |
-
| Loose instructions | 32.49% | 25.78% |
|
| 26 |
-
| Publisher prompt/instruction average | — | — | 29.9% |
|
| 27 |
|
| 28 |
Google IFEval is pinned to dataset revision `966cd89545d6b6acfd7638bc708b98261ca58e84` and google-research commit `83f1e7b59e762648c953de751d31f75720683622`. All 541 prompts and 834 instructions use the recorded strict/loose programmatic verifiers. Generation is greedy, native-chat formatted, FP32, without a system message or repetition penalty. Output cap: 1,024 tokens. Token-cap hits: **130/541**; context-cap hits: **0**. All generated responses are scored, including cap hits. The official dataset's split is named `train`; it is used as evaluation input here, not SFT training material.
|
| 29 |
|
| 30 |
## Published small-model references
|
| 31 |
|
| 32 |
-
|
| 33 |
|
| 34 |
-
|
| 35 |
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-

|
| 39 |
-
|
| 40 |
-
Figure data is read directly from the saved JSON records by [plot_results.py](../scripts/plot_results.py). Run that script with matplotlib 3.10.8 to regenerate PNG and SVG figures. The SmolLM2 card does not identify how strict versus loose IFEval metrics contribute to its published average, so that average is not assigned to any one of Solstice's four IFEval metrics.
|
| 41 |
|
| 42 |
## Historical comparison
|
| 43 |
|
| 44 |
| Metric | Published 150M | 167 | Parent 2000 | Prior attempt 5 | Solstice-1 |
|
| 45 |
| --- | --- | --- | --- | --- | --- |
|
| 46 |
-
| ARC Easy acc_norm | 55.43% | 61.49% | 62.33% | 62.33% | 62.33% |
|
| 47 |
-
| ARC Challenge acc_norm | 29.52% | 30.46% | 30.63% | 31.23% | 30.89% |
|
| 48 |
-
| PIQA acc_norm | 64.09% | 65.67% | 66.43% | 66.43% | 66.21% |
|
| 49 |
-
| HellaSwag acc_norm | 33.94% | 38.60% | 39.51% | 39.44% | 39.40% |
|
| 50 |
-
| IFEval strict prompt | 15.16% | 16.45% | 14.97% | 15.53% | 17.93% |
|
| 51 |
-
| IFEval strict instruction | 25.30% | 29.14% | 26.86% | 28.18% | 30.10% |
|
| 52 |
-
| IFEval loose prompt | 15.71% | 17.93% | 16.82% | 16.45% | 19.22% |
|
| 53 |
-
| IFEval loose instruction | 25.78% | 31.29% | 29.62% | 30.34% | 32.49% |
|
| 54 |
|
| 55 |
Solstice, parent 2000, prior attempt 5 and 167 share the recorded native FP32 protocol. The 150M numbers are from its [published model card](https://huggingface.co/OpenSML/OpenSML-150M), not a fresh release-bundle rerun. Its IFEval uses plain `User:/Assistant:` formatting, EOS ID 1 and a 1,280-token cap; newer models use structural chat IDs and 1,024 tokens. The earlier choice run uses batch size one. These differences limit controlled head-to-head claims. No external-model leaderboard rank or statistical significance of every small benchmark difference is asserted.
|
| 56 |
|
|
@@ -77,8 +72,6 @@ The new panel flags unnecessary abstention on 111/200 answerable extraction case
|
|
| 77 |
|
| 78 |
Manual inspection of the three chat repetition flags found two clear loops and one milder repeated sentence/idea. Keep the original three-flag result for consistent comparisons; it does not mean all three are equally severe. All 180 objective chat responses stop naturally; the qualitative cases account for the single token-cap hit and the repetition flags.
|
| 79 |
|
| 80 |
-

|
| 81 |
-
|
| 82 |
## Selection and test exposure
|
| 83 |
|
| 84 |
The final five-trial search selected one checkpoint using the 300-case new development panel plus historical development, stopping, repetition and prose-retention guards. Finalist identity was frozen before the new 1,000-case test. Small tolerated regressions were part of the declared guards; passing them does not mean every metric improved. The complete comparison and selection record includes the thresholds and reasons.
|
|
|
|
| 6 |
|
| 7 |
| Benchmark | Solstice-1 acc / acc_norm | OpenSML-150M acc / acc_norm | SmolLM2-135M Instruct acc / acc_norm |
|
| 8 |
| --- | --- | --- | --- |
|
| 9 |
+
| ARC Easy | **62.58** / **62.33** | 56.65 / 55.43 | 54.00 / 48.82 |
|
| 10 |
+
| ARC Challenge | **29.35** / **30.89** | 26.02 / 29.52 | 25.94 / 27.73 |
|
| 11 |
+
| PIQA | 66.49 / 66.21 | 64.53 / 64.09 | **66.70** / **66.76** |
|
| 12 |
+
| HellaSwag | 32.85 / 39.40 | 30.55 / 33.94 | **35.02** / **42.90** |
|
| 13 |
|
| 14 |
+
Values are percentages, shown as **acc / acc_norm**. Bold marks the highest reported value for each metric. SmolLM2 scores are from an independent published evaluation; protocol differences are noted below.
|
| 15 |
|
| 16 |
Native MLX evaluates complete ARC Easy/Challenge test splits, PIQA validation and HellaSwag validation. It uses zero-shot raw completion prompts, no chat template or inserted BOS/EOS, FP32 weights, vanilla attention, batch size four and chunked scoring. Raw accuracy ranks summed continuation log-likelihood; normalized accuracy divides by choice Unicode-character count. No generated explanation or LLM judge determines the answer. No choices were context-truncated. Dataset revisions and scorer settings are preserved in [the result record](../results/public/choices/results.json).
|
| 17 |
|
|
|
|
| 19 |
|
| 20 |
| IFEval accuracy | Solstice-1 | OpenSML-150M | SmolLM2-135M Instruct |
|
| 21 |
| --- | --- | --- | --- |
|
| 22 |
+
| Strict prompts | 17.93% | 15.16% | **21.63%** |
|
| 23 |
+
| Strict instructions | 30.10% | 25.30% | **35.85%** |
|
| 24 |
+
| Loose prompts | 19.22% | 15.71% | **22.55%** |
|
| 25 |
+
| Loose instructions | 32.49% | 25.78% | **37.29%** |
|
|
|
|
| 26 |
|
| 27 |
Google IFEval is pinned to dataset revision `966cd89545d6b6acfd7638bc708b98261ca58e84` and google-research commit `83f1e7b59e762648c953de751d31f75720683622`. All 541 prompts and 834 instructions use the recorded strict/loose programmatic verifiers. Generation is greedy, native-chat formatted, FP32, without a system message or repetition penalty. Output cap: 1,024 tokens. Token-cap hits: **130/541**; context-cap hits: **0**. All generated responses are scored, including cap hits. The official dataset's split is named `train`; it is used as evaluation input here, not SFT training material.
|
| 28 |
|
| 29 |
## Published small-model references
|
| 30 |
|
| 31 |
+
Sources: [OpenSML-150M model card](https://huggingface.co/OpenSML/OpenSML-150M) and [PetitGPT’s independent SmolLM2 evaluation](https://github.com/yangqi0/petitgpt/blob/a129f3b709d44ad6a53aef0d44a7054281099df2/README.md#results-at-a-glance).
|
| 32 |
|
| 33 |
+
All three use FP32 choice scoring, but implementations and chat formats differ. Bold marks the highest reported score; these differences have not been tested for statistical significance. [SmolLM2 results and protocol](../results/baselines/smollm2_independent.json) · [150M and official-card references](../results/baselines/published_models.json).
|
| 34 |
|
| 35 |
+
The independent evaluation pins SmolLM2 to revision `12fd25f77366fa6b3b4b768ec3050bf629380bac`. Choice scoring uses complete splits, FP32, batch size one, raw completion prompts and character-length normalization. IFEval uses the model's native template, including its default system text, with 233/541 responses reaching the 1,280-token cap. These are reported measurements from another project, not a rerun in the Solstice release environment. The official Hugging Face card's aggregate scores are retained separately in the source record and are not mixed into these tables.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
## Historical comparison
|
| 38 |
|
| 39 |
| Metric | Published 150M | 167 | Parent 2000 | Prior attempt 5 | Solstice-1 |
|
| 40 |
| --- | --- | --- | --- | --- | --- |
|
| 41 |
+
| ARC Easy acc_norm | 55.43% | 61.49% | **62.33%** | **62.33%** | **62.33%** |
|
| 42 |
+
| ARC Challenge acc_norm | 29.52% | 30.46% | 30.63% | **31.23%** | 30.89% |
|
| 43 |
+
| PIQA acc_norm | 64.09% | 65.67% | **66.43%** | **66.43%** | 66.21% |
|
| 44 |
+
| HellaSwag acc_norm | 33.94% | 38.60% | **39.51%** | 39.44% | 39.40% |
|
| 45 |
+
| IFEval strict prompt | 15.16% | 16.45% | 14.97% | 15.53% | **17.93%** |
|
| 46 |
+
| IFEval strict instruction | 25.30% | 29.14% | 26.86% | 28.18% | **30.10%** |
|
| 47 |
+
| IFEval loose prompt | 15.71% | 17.93% | 16.82% | 16.45% | **19.22%** |
|
| 48 |
+
| IFEval loose instruction | 25.78% | 31.29% | 29.62% | 30.34% | **32.49%** |
|
| 49 |
|
| 50 |
Solstice, parent 2000, prior attempt 5 and 167 share the recorded native FP32 protocol. The 150M numbers are from its [published model card](https://huggingface.co/OpenSML/OpenSML-150M), not a fresh release-bundle rerun. Its IFEval uses plain `User:/Assistant:` formatting, EOS ID 1 and a 1,280-token cap; newer models use structural chat IDs and 1,024 tokens. The earlier choice run uses batch size one. These differences limit controlled head-to-head claims. No external-model leaderboard rank or statistical significance of every small benchmark difference is asserted.
|
| 51 |
|
|
|
|
| 72 |
|
| 73 |
Manual inspection of the three chat repetition flags found two clear loops and one milder repeated sentence/idea. Keep the original three-flag result for consistent comparisons; it does not mean all three are equally severe. All 180 objective chat responses stop naturally; the qualitative cases account for the single token-cap hit and the repetition flags.
|
| 74 |
|
|
|
|
|
|
|
| 75 |
## Selection and test exposure
|
| 76 |
|
| 77 |
The final five-trial search selected one checkpoint using the 300-case new development panel plus historical development, stopping, repetition and prose-retention guards. Finalist identity was frozen before the new 1,000-case test. Small tolerated regressions were part of the declared guards; passing them does not mean every metric improved. The complete comparison and selection record includes the thresholds and reasons.
|
results/baselines/smollm2_independent.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "HuggingFaceTB/SmolLM2-135M-Instruct",
|
| 3 |
+
"model_revision": "12fd25f77366fa6b3b4b768ec3050bf629380bac",
|
| 4 |
+
"evaluation_author": "PetitGPT project (Yang Qi)",
|
| 5 |
+
"type": "independent published evaluation; not the official Hugging Face benchmark run",
|
| 6 |
+
"checked_on": "2026-11-09",
|
| 7 |
+
"source_revision": "a129f3b709d44ad6a53aef0d44a7054281099df2",
|
| 8 |
+
"choice_source": "https://github.com/yangqi0/petitgpt/blob/a129f3b709d44ad6a53aef0d44a7054281099df2/docs/petitgpt-v1/tables/PUBLIC_BENCHMARK_RESULTS.csv",
|
| 9 |
+
"ifeval_source": "https://github.com/yangqi0/petitgpt/blob/a129f3b709d44ad6a53aef0d44a7054281099df2/docs/petitgpt-v1/tables/IFEVAL_RESULTS.csv",
|
| 10 |
+
"model_identity_source": "https://github.com/yangqi0/petitgpt/blob/a129f3b709d44ad6a53aef0d44a7054281099df2/configs/research-v1/benchmark_models.json",
|
| 11 |
+
"protocol_source": "https://github.com/yangqi0/petitgpt/blob/a129f3b709d44ad6a53aef0d44a7054281099df2/README.md",
|
| 12 |
+
"choices": {
|
| 13 |
+
"arc_easy": {
|
| 14 |
+
"acc": 0.539983164983165,
|
| 15 |
+
"acc_norm": 0.4882154882154882,
|
| 16 |
+
"evaluated": 2376,
|
| 17 |
+
"dataset": "allenai/ai2_arc",
|
| 18 |
+
"dataset_revision": "210d026faf9955653af8916fad021475a3f00453",
|
| 19 |
+
"result_version": "FP32_V2"
|
| 20 |
+
},
|
| 21 |
+
"piqa": {
|
| 22 |
+
"acc": 0.6670293797606094,
|
| 23 |
+
"acc_norm": 0.6675734494015234,
|
| 24 |
+
"evaluated": 1838,
|
| 25 |
+
"dataset": "baber/piqa",
|
| 26 |
+
"dataset_revision": "142f6d7367fd9877f0fb3b5734ea6a545f54cdd1",
|
| 27 |
+
"result_version": "FP32_V2"
|
| 28 |
+
},
|
| 29 |
+
"arc_challenge": {
|
| 30 |
+
"acc": 0.2593856655290102,
|
| 31 |
+
"acc_norm": 0.2773037542662116,
|
| 32 |
+
"evaluated": 1172,
|
| 33 |
+
"dataset": "allenai/ai2_arc",
|
| 34 |
+
"dataset_revision": "210d026faf9955653af8916fad021475a3f00453",
|
| 35 |
+
"result_version": "BENCHMARK_EXTENSION_V1"
|
| 36 |
+
},
|
| 37 |
+
"hellaswag": {
|
| 38 |
+
"acc": 0.35022903804023103,
|
| 39 |
+
"acc_norm": 0.4289982075283808,
|
| 40 |
+
"evaluated": 10042,
|
| 41 |
+
"dataset": "Rowan/hellaswag",
|
| 42 |
+
"dataset_revision": "218ec52e09a7e7462a5400043bb9a69a41d06b76",
|
| 43 |
+
"result_version": "BENCHMARK_EXTENSION_V1"
|
| 44 |
+
}
|
| 45 |
+
},
|
| 46 |
+
"ifeval": {
|
| 47 |
+
"strict": {
|
| 48 |
+
"prompt_accuracy": 0.21626617375231053,
|
| 49 |
+
"instruction_accuracy": 0.35851318944844124
|
| 50 |
+
},
|
| 51 |
+
"loose": {
|
| 52 |
+
"prompt_accuracy": 0.2255083179297597,
|
| 53 |
+
"instruction_accuracy": 0.37290167865707435
|
| 54 |
+
}
|
| 55 |
+
},
|
| 56 |
+
"protocol": {
|
| 57 |
+
"choices": "Full splits, zero-shot completion likelihood; FP32 parameters/forward, no chat template or BOS/EOS insertion, batch size 1, character-length normalization excluding leading delimiter; native PyTorch evaluator, not installed lm-eval.",
|
| 58 |
+
"ifeval": "541 prompts, 834 instructions; greedy native chat template including SmolLM2's default system text; 1280 generated-token cap, 233 cap hits; official strict/loose verifiers.",
|
| 59 |
+
"ifeval_dataset_revision": "966cd89545d6b6acfd7638bc708b98261ca58e84",
|
| 60 |
+
"solstice_comparison": "Reference comparison, not a new controlled rerun: native MLX vs PyTorch, different tokenizers/templates, Solstice 1024-token IFEval cap. Values from the official SmolLM2 card are retained separately and are not mixed into this result set."
|
| 61 |
+
}
|
| 62 |
+
}
|