Instructions to use dwidlee/systemone-lite-0.5b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use dwidlee/systemone-lite-0.5b with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="dwidlee/systemone-lite-0.5b") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("dwidlee/systemone-lite-0.5b") model = AutoModelForCausalLM.from_pretrained("dwidlee/systemone-lite-0.5b", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use dwidlee/systemone-lite-0.5b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "dwidlee/systemone-lite-0.5b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dwidlee/systemone-lite-0.5b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/dwidlee/systemone-lite-0.5b
- SGLang
How to use dwidlee/systemone-lite-0.5b with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "dwidlee/systemone-lite-0.5b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dwidlee/systemone-lite-0.5b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "dwidlee/systemone-lite-0.5b" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "dwidlee/systemone-lite-0.5b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use dwidlee/systemone-lite-0.5b with Docker Model Runner:
docker model run hf.co/dwidlee/systemone-lite-0.5b
systemone-lite-0.5b
Current published weights for
systemone-lite: a local
System One–compatible decision model on Qwen/Qwen2.5-0.5B-Instruct.
Not affiliated with TypeSafe AI or Jev.
| Base | Qwen/Qwen2.5-0.5B-Instruct (cold SFT) |
| Run | action-v2-qwen · 10 000 steps · LR 1e-5 cosine · stratified |
| Train data | dwidlee/systemone-lite-phase2 (240 800 / 4 700; 0% train∩test) |
| Serving | option-restricted next-token scoring (closed criteria / yes–no / score) |
This repo is the stable name. New training runs overwrite these weights — do not expect a new Hub repo per experiment.
Training notes (this revision)
- Chess: staged piece + destination (
staged_v1, option caps ≤8). - Spatial gyms:
action_v2legal-only options (Connect4 drop≤3 + win_now; alerts retained). - Sokoban eval deadlock alerts balanced 50/50 (train-time mid-run patch; see postmortem).
- Write-up: repo
docs/NOTE_ACTION_V2_QWEN_POSTMORTEM.md.
Use
pip install -e ".[dev]" # from the systemone-lite repo
systemone-lite --model dwidlee/systemone-lite-0.5b --port 8000
from systemone_lite import SystemOneClient, choice, noul, score
client = SystemOneClient(model="dwidlee/systemone-lite-0.5b")
response = client.system_one(
state="My card was charged twice.",
questions={
"needs_review": noul("Does this need a human agent?"),
"route": choice(
"Route to a team",
{"billing": "charges", "technical": "bugs", "other": None},
),
"urgency": score("Urgency", ["low", "medium", "high"]),
},
)
print(response.answers["route"].choice)
Performance (local, 2026-09-26)
Alias-shuffle held-out on Hub test + public JevBench. Not an official
leaderboard submission. n=800 SE ≈ ±1.8%p; n=231 SE ≈ ±3%p — treat small deltas
as noise.
Phase2 held-out (test, n=4700) |
61.6% |
| First-800 protocol (n=800) | 63.9% |
| JevBench public (231 tasks, T=1.0) | 50.7% acc · ECE 0.245 · p50 13.1 ms |
| Short payloads | ~10–30 ms typical (consumer GPU, in-process) |
Uniform-random on the JevBench set is ~32% (many 4–5-way items), not 50%.
Per-gym on full test (weak → strong): game2048 34.6% · sokoban 38.2% · chess 42.0% ·
gridworld 45.6% · connect4 47.0% · CA 50.5% · debate/word ~87% · cloze 89% ·
alloc/ticket ≥98%.
Reports in the GitHub repo:
benchmarks/phase2_heldout__action_v2_qwen.jsonbenchmarks/jevbench_action_v2_qwen.jsonbenchmarks/latency_vs_ar.json(latency methodology; older run)
Limits
- 0.5B — demos / local experiments, not a production decision service.
- Calibration is mediocre — do not trust probabilities as calibrated confidence.
- Not Jev — different weights, scoring path, and
confidenceformula. - Closed-option scoring — ranks given symbols (usually one vocab id each); JSON option keys are mapped after scoring.
- Spatial planning (2048 / sokoban direction / chess piece) remains far from solved.
- Use dataset
testfor held-out eval — never score ontrain.
Links
- Downloads last month
- 1,302