Text Generation
MLX
Safetensors
English
information-extraction
structured-output
json
small-language-model
apple-silicon
from-scratch
post-training
research
Instructions to use wzebrowski/OpenSML-JSONLite-175M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use wzebrowski/OpenSML-JSONLite-175M with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # if on a CUDA device, also pip install mlx[cuda] # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("wzebrowski/OpenSML-JSONLite-175M") prompt = "Once upon a time in" text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- MLX LM
How to use wzebrowski/OpenSML-JSONLite-175M with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Generate some text mlx_lm.generate --model "wzebrowski/OpenSML-JSONLite-175M" --prompt "Once upon a time"
- Atomic Chat
Add selected BF16 model weights, tokenizer and offline inference runner
Browse files- CITATION.cff +1 -1
- PACKAGING_VERIFICATION.json +33 -0
- README.md +13 -14
- RUN_GUIDE.md +96 -0
- SHA256SUMS +12 -4
- SOURCE_NOTICE.md +1 -1
- TECHNICAL_REPORT.md +3 -3
- inference.py +36 -0
- model.safetensors +3 -0
- requirements.txt +4 -0
- tokenizer.json +0 -0
- tokenizer_config.json +8 -0
- tokenizer_manifest.json +31 -0
CITATION.cff
CHANGED
|
@@ -9,4 +9,4 @@ date-released: 2026-10-14
|
|
| 9 |
url: "https://github.com/williamzebrowskI/OpenSML-JSONLite-175M"
|
| 10 |
repository-code: "https://github.com/williamzebrowskI/OpenSML-JSONLite-175M"
|
| 11 |
license: Apache-2.0
|
| 12 |
-
abstract: "Source, tokenizer, training provenance and observed evaluation records for a 175.6M-parameter field extractor with JSON assembly.
|
|
|
|
| 9 |
url: "https://github.com/williamzebrowskI/OpenSML-JSONLite-175M"
|
| 10 |
repository-code: "https://github.com/williamzebrowskI/OpenSML-JSONLite-175M"
|
| 11 |
license: Apache-2.0
|
| 12 |
+
abstract: "Source, tokenizer, training provenance and observed evaluation records for a 175.6M-parameter field extractor with JSON assembly. The Hugging Face package includes the selected weights and native JSON adapter; the source license does not assign a model-weight license."
|
PACKAGING_VERIFICATION.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model": "OpenSML-JSONLite-175M-Instruct",
|
| 3 |
+
"date": "2026-10-14",
|
| 4 |
+
"weight_file": "model.safetensors",
|
| 5 |
+
"weight_bytes": 351242342,
|
| 6 |
+
"weight_sha256": "d552c1380c71c7c0569e9d692ec9c46c5c94bb87a7b024e56df0f0e36df4d798",
|
| 7 |
+
"runtime": "stock MLX 0.32.3, Apple Silicon GPU, Python 3.11",
|
| 8 |
+
"root_runner_verification": {
|
| 9 |
+
"command": "python inference.py --example 29",
|
| 10 |
+
"default_weights": true,
|
| 11 |
+
"source_bundle_integrity": true,
|
| 12 |
+
"frozen_tokenizer_integrity": true,
|
| 13 |
+
"schema_valid": true,
|
| 14 |
+
"natural_stop": true,
|
| 15 |
+
"exact": true,
|
| 16 |
+
"value": {
|
| 17 |
+
"track": [
|
| 18 |
+
"Blue Lantern"
|
| 19 |
+
],
|
| 20 |
+
"artist": [
|
| 21 |
+
"Mira Sol"
|
| 22 |
+
],
|
| 23 |
+
"album": []
|
| 24 |
+
}
|
| 25 |
+
},
|
| 26 |
+
"tokenizer_root_matches_bundle": true,
|
| 27 |
+
"prior_native_fixture_parity": {
|
| 28 |
+
"requests": 40,
|
| 29 |
+
"value_and_stop_matches": 40,
|
| 30 |
+
"correct_against_reference": 29
|
| 31 |
+
},
|
| 32 |
+
"scope": "Package entry-point validation; no new blind benchmark or full-test cross-runtime parity claim."
|
| 33 |
+
}
|
README.md
CHANGED
|
@@ -25,7 +25,7 @@ datasets:
|
|
| 25 |
|
| 26 |
**Author:** William Zebrowski · **Model:** OpenSML-JSONLite-175M-Instruct
|
| 27 |
|
| 28 |
-
[Technical report](TECHNICAL_REPORT.md) · [Results](JSONLITE_RESULTS.json) · [Checkpoint provenance](checkpoint_provenance.json) · [Native inference verification](INFERENCE_VERIFICATION.json)
|
| 29 |
|
| 30 |
**A 175.6M-parameter English field extractor with a schema-guided JSON adapter.**
|
| 31 |
|
|
@@ -35,27 +35,26 @@ The weights were trained from scratch through OpenSML Stage A pretraining, then
|
|
| 35 |
|
| 36 |
## Availability and inference
|
| 37 |
|
| 38 |
-
This repository
|
| 39 |
|
| 40 |
-
This
|
| 41 |
-
|
| 42 |
-
The included `native_bundle.zip` contains the standalone inference entry point, frozen tokenizer, required model code, field adapter, examples, evaluation script, provenance and source notices. It contains no weight or optimizer binaries. Supply the matching local BF16 weight file to run it:
|
| 43 |
|
| 44 |
```bash
|
| 45 |
-
# Authenticate if access requires it.
|
| 46 |
-
hf auth login
|
| 47 |
-
hf download wzebrowski/OpenSML-JSONLite-175M --local-dir ./OpenSML-JSONLite-175M
|
| 48 |
-
cd OpenSML-JSONLite-175M
|
| 49 |
-
python -m zipfile -e native_bundle.zip native_bundle
|
| 50 |
-
cd native_bundle
|
| 51 |
python3 -m venv .venv
|
| 52 |
source .venv/bin/activate
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
python -m pip install -r requirements.txt
|
| 54 |
-
python
|
| 55 |
-
|
|
|
|
| 56 |
```
|
| 57 |
|
| 58 |
-
|
|
|
|
|
|
|
| 59 |
|
| 60 |
`d552c1380c71c7c0569e9d692ec9c46c5c94bb87a7b024e56df0f0e36df4d798`
|
| 61 |
|
|
|
|
| 25 |
|
| 26 |
**Author:** William Zebrowski · **Model:** OpenSML-JSONLite-175M-Instruct
|
| 27 |
|
| 28 |
+
[Run locally](RUN_GUIDE.md) · [Technical report](TECHNICAL_REPORT.md) · [Results](JSONLITE_RESULTS.json) · [Checkpoint provenance](checkpoint_provenance.json) · [Native inference verification](INFERENCE_VERIFICATION.json)
|
| 29 |
|
| 30 |
**A 175.6M-parameter English field extractor with a schema-guided JSON adapter.**
|
| 31 |
|
|
|
|
| 35 |
|
| 36 |
## Availability and inference
|
| 37 |
|
| 38 |
+
This repository includes the selected **BF16 `model.safetensors`**, frozen tokenizer, configuration, native inference runner, source bundle, examples and verified extraction results. Download the complete repository to run the model locally. The verified platform is Apple Silicon macOS with Python 3.11 and stock MLX 0.32.3.
|
| 39 |
|
| 40 |
+
This is a custom native MLX architecture. Use the supplied runner; it is not a Transformers AutoModel or mlx-lm auto-loading export. The source bundle contains the exact model implementation and schema-guided extraction/JSON adapter. Optimizer state is unnecessary for inference and is not included.
|
|
|
|
|
|
|
| 41 |
|
| 42 |
```bash
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
python3 -m venv .venv
|
| 44 |
source .venv/bin/activate
|
| 45 |
+
python -m pip install huggingface_hub
|
| 46 |
+
# If access requires authentication: hf auth login
|
| 47 |
+
hf download wzebrowski/OpenSML-JSONLite-175M --local-dir ./OpenSML-JSONLite-175M
|
| 48 |
+
cd OpenSML-JSONLite-175M
|
| 49 |
python -m pip install -r requirements.txt
|
| 50 |
+
python inference.py --example 29
|
| 51 |
+
# Your own source and schema:
|
| 52 |
+
python inference.py --text-file request.txt --schema-file schema.json
|
| 53 |
```
|
| 54 |
|
| 55 |
+
The root runner defaults to `model.safetensors`, verifies and temporarily extracts `native_bundle.zip`, then runs the frozen native implementation. After downloading the artifacts and installing dependencies, inference runs offline. The root `tokenizer.json` and `tokenizer_config.json` mirror the frozen tokenizer in the bundle, which includes its additional integrity metadata. See [RUN_GUIDE.md](RUN_GUIDE.md) for complete instructions and an example schema.
|
| 56 |
+
|
| 57 |
+
The uploaded weight SHA-256 is:
|
| 58 |
|
| 59 |
`d552c1380c71c7c0569e9d692ec9c46c5c94bb87a7b024e56df0f0e36df4d798`
|
| 60 |
|
RUN_GUIDE.md
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Run OpenSML-JSONLite-175M-Instruct locally
|
| 2 |
+
|
| 3 |
+
The repository includes the selected BF16 `model.safetensors`, frozen tokenizer,
|
| 4 |
+
configuration, native MLX implementation and schema-to-extraction/JSON adapter.
|
| 5 |
+
No training workspace, optimizer state or external inference service is needed.
|
| 6 |
+
|
| 7 |
+
The verified runtime is **Apple Silicon macOS with Python 3.11 and MLX 0.32.3**.
|
| 8 |
+
This is a custom native architecture: use the supplied runner, rather than
|
| 9 |
+
`transformers.AutoModel` or `mlx_lm.load`. CUDA, CPU-only and quantized exports
|
| 10 |
+
have not been verified.
|
| 11 |
+
|
| 12 |
+
## Download and run
|
| 13 |
+
|
| 14 |
+
```bash
|
| 15 |
+
python3 -m venv .venv
|
| 16 |
+
source .venv/bin/activate
|
| 17 |
+
python -m pip install huggingface_hub
|
| 18 |
+
# If access requires authentication: hf auth login
|
| 19 |
+
hf download wzebrowski/OpenSML-JSONLite-175M --local-dir OpenSML-JSONLite-175M
|
| 20 |
+
cd OpenSML-JSONLite-175M
|
| 21 |
+
python -m pip install -r requirements.txt
|
| 22 |
+
python inference.py --example 29
|
| 23 |
+
```
|
| 24 |
+
|
| 25 |
+
Once downloaded and dependencies installed, generation runs offline. The runner
|
| 26 |
+
defaults to `model.safetensors` beside it, verifies its SHA-256, verifies and
|
| 27 |
+
unpacks the native source bundle into a temporary directory, and loads the
|
| 28 |
+
frozen tokenizer. It cleans up the temporary code after execution.
|
| 29 |
+
|
| 30 |
+
Example 29 source: `Play the track Blue Lantern by Mira Sol.` Its result is:
|
| 31 |
+
|
| 32 |
+
```json
|
| 33 |
+
{"track": ["Blue Lantern"], "artist": ["Mira Sol"], "album": []}
|
| 34 |
+
```
|
| 35 |
+
|
| 36 |
+
The command prints a result record including `value`, `schema_valid`,
|
| 37 |
+
`success`, intermediate extractions and stop reasons. Only example mode adds
|
| 38 |
+
`exact` by comparing the generated value to a caller-side reference. Reference
|
| 39 |
+
answers are never given to the model.
|
| 40 |
+
|
| 41 |
+
## Your own text and schema
|
| 42 |
+
|
| 43 |
+
```bash
|
| 44 |
+
python inference.py --text-file request.txt --schema-file schema.json
|
| 45 |
+
```
|
| 46 |
+
|
| 47 |
+
`request.txt` contains your source text. `schema.json` requests a closed object
|
| 48 |
+
with one to eight required properties, each an array of strings. For the example:
|
| 49 |
+
|
| 50 |
+
```json
|
| 51 |
+
{
|
| 52 |
+
"type": "object",
|
| 53 |
+
"properties": {
|
| 54 |
+
"track": {"type": "array", "items": {"type": "string"}, "description": "track name"},
|
| 55 |
+
"artist": {"type": "array", "items": {"type": "string"}, "description": "performer or musical artist"},
|
| 56 |
+
"album": {"type": "array", "items": {"type": "string"}, "description": "album name"}
|
| 57 |
+
},
|
| 58 |
+
"required": ["track", "artist", "album"],
|
| 59 |
+
"additionalProperties": false
|
| 60 |
+
}
|
| 61 |
+
```
|
| 62 |
+
|
| 63 |
+
Only the 39 documented field definitions are supported. Missing values are `[]`.
|
| 64 |
+
The schema adapter calls the model once per field, parses labeled values,
|
| 65 |
+
assembles JSON and validates it. This is not unrestricted arbitrary-schema
|
| 66 |
+
JSON generation. See the model card for supported fields, limits and measured
|
| 67 |
+
accuracy. Structural success does not establish content correctness.
|
| 68 |
+
|
| 69 |
+
The included source archive contains 40 examples in `examples/cases.json` and
|
| 70 |
+
`inference_native/adapter.py` contains the complete field glossary.
|
| 71 |
+
|
| 72 |
+
## Integrity and lower-level use
|
| 73 |
+
|
| 74 |
+
On macOS, verify all downloadable artifacts with:
|
| 75 |
+
|
| 76 |
+
```bash
|
| 77 |
+
shasum -a 256 -c SHA256SUMS
|
| 78 |
+
```
|
| 79 |
+
|
| 80 |
+
The chosen weight identity is
|
| 81 |
+
`d552c1380c71c7c0569e9d692ec9c46c5c94bb87a7b024e56df0f0e36df4d798`.
|
| 82 |
+
Root tokenizer files are byte-identical to the native bundle's frozen tokenizer.
|
| 83 |
+
`tokenizer_manifest.json` records its native metadata; the bundle also contains
|
| 84 |
+
all companion tokenizer files needed for its integrity checks.
|
| 85 |
+
|
| 86 |
+
For direct access to the implementation and evaluator:
|
| 87 |
+
|
| 88 |
+
```bash
|
| 89 |
+
python -m zipfile -e native_bundle.zip native_bundle
|
| 90 |
+
python native_bundle/scripts/verify_snapshot.py
|
| 91 |
+
python native_bundle/inference.py --weights "$PWD/model.safetensors" --example 29
|
| 92 |
+
```
|
| 93 |
+
|
| 94 |
+
Generation uses greedy BF16 native MLX, repetition penalty 1, maximum 160 tokens
|
| 95 |
+
per field and a 2,048-token context. Overlong input or unsupported schemas are
|
| 96 |
+
rejected. No silent truncation, fuzzy correction or online API calls occur.
|
SHA256SUMS
CHANGED
|
@@ -1,12 +1,20 @@
|
|
| 1 |
-
|
| 2 |
82b9908c9fd21fd8c9d10ad809e7c48446485ee98a56bfd9d64bf9fb353761c2 INFERENCE_VERIFICATION.json
|
| 3 |
d29cf5952a82db444a6df56446806b1f4e2ccbee1b4aa6b93cb7eeeabcab8536 JSONLITE_RESULTS.json
|
| 4 |
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
| 8 |
423f0d1e0e2690505c24e6d31308db728fba60657c5166e177bb269d6a7198d0 THIRD_PARTY_NOTICES.md
|
| 9 |
6f8de0b591c8a07885c8adcab359b8ca1cdc81be5f90638cc0ce286f3899c6c5 checkpoint_provenance.json
|
| 10 |
fcc46a0f69fc4afb8d6e25361a013e7656ac6758ae5a49cc6b629f95bf728c1a complete-request-exact.svg
|
| 11 |
2f918a15b7b06a792e48d476fa9884dfc7fb46d5ccd0f756bd3890a8ad259d96 config.json
|
|
|
|
|
|
|
| 12 |
459b495441931bf520ea14274401509bc6441cd701bbbf2a1d162fcae5eacbc4 native_bundle.zip
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
d0b49f29bcb68dbb1d9967dc026b972ef9fa4a22eb67c9fea88539a90a786d03 CITATION.cff
|
| 2 |
82b9908c9fd21fd8c9d10ad809e7c48446485ee98a56bfd9d64bf9fb353761c2 INFERENCE_VERIFICATION.json
|
| 3 |
d29cf5952a82db444a6df56446806b1f4e2ccbee1b4aa6b93cb7eeeabcab8536 JSONLITE_RESULTS.json
|
| 4 |
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
|
| 5 |
+
8179f766c423a10e719ccd5efeb097b60e460323507bf2644b9626edc0a441c6 PACKAGING_VERIFICATION.json
|
| 6 |
+
8ef3023f43332c3ae0a42270b9b7595d3a1126d9248077b57f4a20d71381227e README.md
|
| 7 |
+
994a1798d7b961e34b581bf5337dd5dd14f533e9ebfb4fe1be10cd7b17edf0ec RUN_GUIDE.md
|
| 8 |
+
5bc419e245a6d8f074186210d9cba59df3e2cc82dfd04452c625268108a6796d SOURCE_NOTICE.md
|
| 9 |
+
5edeb60b77046aebf671ebc2c670d0637658f1929c621f66b9de89b445a3c623 TECHNICAL_REPORT.md
|
| 10 |
423f0d1e0e2690505c24e6d31308db728fba60657c5166e177bb269d6a7198d0 THIRD_PARTY_NOTICES.md
|
| 11 |
6f8de0b591c8a07885c8adcab359b8ca1cdc81be5f90638cc0ce286f3899c6c5 checkpoint_provenance.json
|
| 12 |
fcc46a0f69fc4afb8d6e25361a013e7656ac6758ae5a49cc6b629f95bf728c1a complete-request-exact.svg
|
| 13 |
2f918a15b7b06a792e48d476fa9884dfc7fb46d5ccd0f756bd3890a8ad259d96 config.json
|
| 14 |
+
5f66ff6f09a6ce26603220defe3aa2bc0231f7144785bc33865683d0097a2c34 inference.py
|
| 15 |
+
d552c1380c71c7c0569e9d692ec9c46c5c94bb87a7b024e56df0f0e36df4d798 model.safetensors
|
| 16 |
459b495441931bf520ea14274401509bc6441cd701bbbf2a1d162fcae5eacbc4 native_bundle.zip
|
| 17 |
+
c7b1a3c0efb09ef3b5416a24072e48b25e2cc1f122fb5ed638c0f95b72594af9 requirements.txt
|
| 18 |
+
e095f0413a11fa91fbb58f37d00e4c6bcda59beb89b28f6f680db1436a7e8891 tokenizer.json
|
| 19 |
+
619f500553367eb76f5be00a98625130ec857b9c367561334984096c029ba2a9 tokenizer_config.json
|
| 20 |
+
1194292c6d906ac19e6f01c6ad2b42825143fad426a22aa8856d903776701ecb tokenizer_manifest.json
|
SOURCE_NOTICE.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
OpenSML-JSONLite-175M is extracted from William Zebrowski's OpenSML research workspace. Its inherited weights follow Stage A/132005 → SFT-065/469 → SFT-068/379 → recreated SFT-093/160. Supporting code dependencies and unused representations are not additional weight ancestors.
|
| 4 |
|
| 5 |
-
Author-controlled source contributions use the root Apache-2.0 license. Upstream dependencies, datasets and their underlying content retain their own notices.
|
| 6 |
|
| 7 |
Pretraining uses pinned FineWeb-Edu, DCLM-Edu, English FineWiki, Cosmopedia v2 and the Python-Edu text mirror. Grounded QA uses original selected SQuAD 2.0/Dolly answers plus programmatically checked fictional examples. Extraction uses original SNIPS chunk labels. See the technical report for exact revisions, sampling, exclusions and selected exposure.
|
| 8 |
|
|
|
|
| 2 |
|
| 3 |
OpenSML-JSONLite-175M is extracted from William Zebrowski's OpenSML research workspace. Its inherited weights follow Stage A/132005 → SFT-065/469 → SFT-068/379 → recreated SFT-093/160. Supporting code dependencies and unused representations are not additional weight ancestors.
|
| 4 |
|
| 5 |
+
Author-controlled source contributions use the root Apache-2.0 license. Upstream dependencies, datasets and their underlying content retain their own notices. The Hugging Face package includes the selected BF16 weights. This source notice does not assign a model-weight license.
|
| 6 |
|
| 7 |
Pretraining uses pinned FineWeb-Edu, DCLM-Edu, English FineWiki, Cosmopedia v2 and the Python-Edu text mirror. Grounded QA uses original selected SQuAD 2.0/Dolly answers plus programmatically checked fictional examples. Extraction uses original SNIPS chunk labels. See the technical report for exact revisions, sampling, exclusions and selected exposure.
|
| 8 |
|
TECHNICAL_REPORT.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
| 1 |
# OpenSML-JSONLite-175M: SFT-093/update 160
|
| 2 |
|
| 3 |
-
Hugging Face companion edition. Archive-relative links in this report resolve inside `native_bundle.zip`.
|
| 4 |
|
| 5 |
## Technical report, training provenance, evaluation and public release specification
|
| 6 |
|
| 7 |
**Author/project:** William Zebrowski / OpenSML
|
| 8 |
**Report date:** October 14, 2026 (America/New_York)
|
| 9 |
**Artifact:** recreated SFT-093/update 160, retained at the owner's request
|
| 10 |
-
|
| 11 |
|
| 12 |
This report describes one exact model and its accompanying inference pipeline. The model is a 175,611,648-parameter decoder pretrained from random initialization, then adapted through grounded QA, requested-field extraction and focused single-field extraction. Its learned output is a labeled list. Software accepts a supported JSON Schema, turns each requested property into an extraction question, strictly parses generated field lines, assembles JSON and validates its structure.
|
| 13 |
|
|
@@ -748,7 +748,7 @@ The initial base report described an Apache-2.0 code license, but a root `LICENS
|
|
| 748 |
|
| 749 |
Completed work includes preservation of the checkpoint, verification of its lineage and hashes, recording of development, complete observed-test and playground metrics, documentation of the field/schema adapter, and verification of the local API and UI. The original and recreated model identities are recorded separately.
|
| 750 |
|
| 751 |
-
The
|
| 752 |
|
| 753 |
## 19. Artifact and evidence index
|
| 754 |
|
|
|
|
| 1 |
# OpenSML-JSONLite-175M: SFT-093/update 160
|
| 2 |
|
| 3 |
+
Hugging Face companion edition. Archive-relative links in this report resolve inside `native_bundle.zip`. The Hugging Face repository additionally includes the selected `model.safetensors`, root tokenizer files and a runnable entry point; see `RUN_GUIDE.md`.
|
| 4 |
|
| 5 |
## Technical report, training provenance, evaluation and public release specification
|
| 6 |
|
| 7 |
**Author/project:** William Zebrowski / OpenSML
|
| 8 |
**Report date:** October 14, 2026 (America/New_York)
|
| 9 |
**Artifact:** recreated SFT-093/update 160, retained at the owner's request
|
| 10 |
+
The Hugging Face package includes the selected BF16 weights and offline native runner. No hosted inference endpoint is deployed.
|
| 11 |
|
| 12 |
This report describes one exact model and its accompanying inference pipeline. The model is a 175,611,648-parameter decoder pretrained from random initialization, then adapted through grounded QA, requested-field extraction and focused single-field extraction. Its learned output is a labeled list. Software accepts a supported JSON Schema, turns each requested property into an extraction question, strictly parses generated field lines, assembles JSON and validates its structure.
|
| 13 |
|
|
|
|
| 748 |
|
| 749 |
Completed work includes preservation of the checkpoint, verification of its lineage and hashes, recording of development, complete observed-test and playground metrics, documentation of the field/schema adapter, and verification of the local API and UI. The original and recreated model identities are recorded separately.
|
| 750 |
|
| 751 |
+
The frozen source package is OpenSML-JSONLite-175M. Its source code uses the included Apache-2.0 license; dependency/source notices, a native inference runner, pinned public runtime dependencies, a 40-case clean-environment parity record and a repository integrity manifest are included. The Hugging Face companion package additionally includes the selected weight artifact and tokenizer; the model-weight license remains unassigned. Broader external evaluation and full-suite parity still need separate verification. Evaluation beyond the reused SNIPS panel and 12 authored cases is still needed to establish transfer to intended production inputs. An experimental release can report these results and limitations; preserving this checkpoint does not override its failed retention flags or prove reliable general extraction.
|
| 752 |
|
| 753 |
## 19. Artifact and evidence index
|
| 754 |
|
inference.py
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""Run JSONLite offline with the bundled native MLX implementation.
|
| 3 |
+
|
| 4 |
+
Defaults to model.safetensors beside this script. The verified source bundle
|
| 5 |
+
includes the exact model architecture, tokenizer, field adapter and examples.
|
| 6 |
+
"""
|
| 7 |
+
from pathlib import Path
|
| 8 |
+
import hashlib
|
| 9 |
+
import runpy
|
| 10 |
+
import sys
|
| 11 |
+
import tempfile
|
| 12 |
+
import zipfile
|
| 13 |
+
|
| 14 |
+
ROOT = Path(__file__).resolve().parent
|
| 15 |
+
BUNDLE_SHA256 = "459b495441931bf520ea14274401509bc6441cd701bbbf2a1d162fcae5eacbc4"
|
| 16 |
+
|
| 17 |
+
def main():
|
| 18 |
+
archive = ROOT / "native_bundle.zip"
|
| 19 |
+
if not archive.is_file():
|
| 20 |
+
raise SystemExit("Missing native_bundle.zip; download the complete repository.")
|
| 21 |
+
if hashlib.sha256(archive.read_bytes()).hexdigest() != BUNDLE_SHA256:
|
| 22 |
+
raise SystemExit("Native source bundle failed its integrity check.")
|
| 23 |
+
if not any(arg == "--weights" or arg.startswith("--weights=") for arg in sys.argv[1:]):
|
| 24 |
+
sys.argv.extend(["--weights", str(ROOT / "model.safetensors")])
|
| 25 |
+
with tempfile.TemporaryDirectory(prefix="jsonlite-runtime-") as directory:
|
| 26 |
+
runtime = Path(directory)
|
| 27 |
+
with zipfile.ZipFile(archive) as bundle:
|
| 28 |
+
for member in bundle.infolist():
|
| 29 |
+
path = Path(member.filename)
|
| 30 |
+
if path.is_absolute() or ".." in path.parts or (member.external_attr >> 16) & 0o170000 == 0o120000:
|
| 31 |
+
raise SystemExit("Unsafe source-bundle entry.")
|
| 32 |
+
bundle.extractall(runtime)
|
| 33 |
+
runpy.run_path(str(runtime / "inference.py"), run_name="__main__")
|
| 34 |
+
|
| 35 |
+
if __name__ == "__main__":
|
| 36 |
+
main()
|
model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d552c1380c71c7c0569e9d692ec9c46c5c94bb87a7b024e56df0f0e36df4d798
|
| 3 |
+
size 351242342
|
requirements.txt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
mlx==0.32.3
|
| 2 |
+
numpy==2.4.2
|
| 3 |
+
tokenizers==0.22.2
|
| 4 |
+
jsonschema==4.26.0
|
tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tokenizer_config.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"add_bos_token": false,
|
| 3 |
+
"add_eos_token": false,
|
| 4 |
+
"clean_up_tokenization_spaces": false,
|
| 5 |
+
"eos_token": "<|doc_end|>",
|
| 6 |
+
"pad_token": "<|pad|>",
|
| 7 |
+
"tokenizer_class": "PreTrainedTokenizerFast"
|
| 8 |
+
}
|
tokenizer_manifest.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"boundary_policy": "raw-text-then-one-document-EOS-v1",
|
| 3 |
+
"corpus_fingerprint": "a89f69d6f63cfa4385da233693a445404234a18194170fe1d2b4a74bf501f5d6",
|
| 4 |
+
"format": "sml-v2-tokenizer-v1",
|
| 5 |
+
"recipe": {
|
| 6 |
+
"corpus": "a89f69d6f63cfa4385da233693a445404234a18194170fe1d2b4a74bf501f5d6",
|
| 7 |
+
"min_frequency": 2,
|
| 8 |
+
"sample_manifest": "30ead6f502f11e99b479e3711a81ce7198787408d0700153615fc3255b244f46",
|
| 9 |
+
"specials": [
|
| 10 |
+
"<|pad|>",
|
| 11 |
+
"<|doc_end|>",
|
| 12 |
+
"<|turn_start|>",
|
| 13 |
+
"<|turn_end|>"
|
| 14 |
+
],
|
| 15 |
+
"tokenizers": "0.22.2",
|
| 16 |
+
"version": 1,
|
| 17 |
+
"vocab_size": 32000
|
| 18 |
+
},
|
| 19 |
+
"sha256": {
|
| 20 |
+
"corpus.json": "e4c47b7b6aba08f948de7c2c7cb94c58dbd09dde2ded6ac185c60856ee686d27",
|
| 21 |
+
"tokenizer.json": "e095f0413a11fa91fbb58f37d00e4c6bcda59beb89b28f6f680db1436a7e8891",
|
| 22 |
+
"tokenizer_config.json": "619f500553367eb76f5be00a98625130ec857b9c367561334984096c029ba2a9"
|
| 23 |
+
},
|
| 24 |
+
"special_ids": {
|
| 25 |
+
"eos": 1,
|
| 26 |
+
"pad": 0,
|
| 27 |
+
"turn_end": 3,
|
| 28 |
+
"turn_start": 2
|
| 29 |
+
},
|
| 30 |
+
"vocab_size": 32000
|
| 31 |
+
}
|