TokenRhythm/NeoHorse-1-9B
- License
- apache-2.0
- Size
- 17 GB
- Revision
- main
Mirrored from TokenRhythm/NeoHorse-1-9B
All models by TokenRhythm →Mirrored from TokenRhythm/NeoHorse-1-9B
All models by TokenRhythm →Towards Recursive Self-Improvement via Agentic Post-Training with Routing Harness.
NeoHorse-1-9B is a 9B causal language model and an initial prototype on the path toward recursive self-improvement (RSI). It is post-trained from Qwen3.5-9B for text-based agent harnesses, tool use, coding, and instruction following.
Derived from Qwen/Qwen3.5-9B and fine-tuned by TokenRhythm. This release contains language-model weights only and is repackaged for text-only inference. Vision weights are not included. Repackaging changes configuration and tensor key names, without changing the fine-tuned tensor values.
The 9B track compares NeoHorse-1-9B with five representative open-weight baselines: Granite-4.2-8B, Qwen3.5-9B, Ornith-1.5-9B, Gemma-4-12B-it, and Muse-Glimmer-30B. Results cover ten benchmarks and are grouped by capability. Higher is better; Δ is NeoHorse-1-9B minus Qwen3.5-9B. Bold and underline mark the best and second-best results in each benchmark row, respectively; ties share the same formatting.
Reported protocol: SGLang v0.5.17 ·
temperature=1.0·top_p=0.95·top_k=20·min_p=0.0·presence_penalty=1.5·repetition_penalty=1.0· thinking mode enabled withenable_thinking=trueandforce_nonempty_content=true. QwenClawBench, WorkBuddy Bench, and tau2-Bench use three runs; PinchBench and VitaBench use one run; the remaining benchmarks follow their official protocols. VitaBench uses the DeepSeek-V4-Flash simulator and judge.
The examples below are for self-hosted deployment from a downloaded local checkpoint.
The examples below assume the checkpoint has already been downloaded to local disk. Set MODEL_PATH to the directory containing config.json, tokenizer files, and model weights.
The OpenAI-compatible requests below use the server's --served-model-name (for example, neohorse-1-9b), not the filesystem path.
The technical report uses SGLang v0.5.17.
Send an OpenAI-compatible request after the server starts:
The server exposes an OpenAI-compatible /v1/chat/completions endpoint. Send a request after the server starts:
The example uses the configured 262,144-token context limit. Actual capacity depends on GPU memory and serving settings; reduce the context limit if needed.
NeoHorse-1-9B is released under the Apache License 2.0.
The upstream model is Qwen/Qwen3.5-9B. Its original copyright notice, Copyright 2026 Alibaba Cloud, is retained in the license file. TokenRhythm has modified the model through fine-tuning and repackaging for text-only inference. Modification notices are included in this model card and the released configuration, weight index, and Safetensors metadata.
For questions or issue reports, use the NeoHorse project repository.
MODEL_PATH="/path/to/NeoHorse-1-9B"pip install "sglang==0.5.17"MODEL_PATH="/path/to/NeoHorse-1-9B"python3 -m sglang.launch_server \ --model-path "$MODEL_PATH" \ --served-model-name neohorse-1-9b \ --host 0.0.0.0 \ --port 30000 \ --context-length 262144 \ --reasoning-parser qwen3 \ --tool-call-parser qwen3_codercurl http://localhost:30000/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{"model":"neohorse-1-9b","messages":[{"role":"user","content":"Write a Python function that returns the first n Fibonacci numbers."}],"max_tokens":512}'pip install -U vllmMODEL_PATH="/path/to/NeoHorse-1-9B"vllm serve "$MODEL_PATH" \ --served-model-name neohorse-1-9b \ --host 0.0.0.0 \ --port 8000 \ --max-model-len 262144 \ --reasoning-parser qwen3 \ --enable-auto-tool-choice \ --tool-call-parser qwen3_codercurl http://localhost:8000/v1/chat/completions \ -H 'Content-Type: application/json' \ -d '{"model":"neohorse-1-9b","messages":[{"role":"user","content":"Write a Python function that returns the first n Fibonacci numbers."}],"max_tokens":512}'@misc{neohorse2026, title = {NeoHorse-1: Towards Recursive Self-Improvement via Agentic Post-Training with Routing Harness}, author = {NeoHorse Team}, year = {2026}, howpublished = {arXiv preprint}, eprint = {2609.08183}, archivePrefix = {arXiv}, primaryClass = {cs.CL}, url = {https://arxiv.org/abs/2609.08183}}