Instructions to use Michael-Kozu/Kuiper-R1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Michael-Kozu/Kuiper-R1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Michael-Kozu/Kuiper-R1") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Michael-Kozu/Kuiper-R1") model = AutoModelForMultimodalLM.from_pretrained("Michael-Kozu/Kuiper-R1") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.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(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Michael-Kozu/Kuiper-R1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Michael-Kozu/Kuiper-R1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Michael-Kozu/Kuiper-R1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Michael-Kozu/Kuiper-R1
- SGLang
How to use Michael-Kozu/Kuiper-R1 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 "Michael-Kozu/Kuiper-R1" \ --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": "Michael-Kozu/Kuiper-R1", "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 "Michael-Kozu/Kuiper-R1" \ --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": "Michael-Kozu/Kuiper-R1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Michael-Kozu/Kuiper-R1 with Docker Model Runner:
docker model run hf.co/Michael-Kozu/Kuiper-R1
Kuiper-R1 — Provenance Report
Kuiper-R1 is a reasoning-trace inversion model: it expands compressed reasoning bubbles into full, explicitly-labeled synthetic traces. It does not reproduce any proprietary model's hidden reasoning, and every output is wrapped in <synthetic_trace> — declared synthetic by construction.
Asset audit
| Asset | Role | License | Verdict |
|---|---|---|---|
empero-ai/Qwythos-9B-Claude-Mythos-5-1M |
BASE MODEL (used, per owner instruction) | apache-2.0 (weights only) | QUESTIONABLE |
Qwen/Qwen3.5-9B |
CLEAN CONTROL BASE (available; recommended for a provenance-clean re-base) | apache-2.0 | CLEAN |
open-thoughts/OpenThoughts3-1.2M |
TRAINING CORPUS | apache-2.0 | CLEAN |
Jackrong/DeepSeek-V4-Distill-8000x |
HELD-OUT VALIDATION BENCHMARK | mit | CLEAN |
lordx64/fable-sft-combined-v2 |
OPTIONAL STRESS SET — REJECTED, NOT USED | agpl-3.0 | BLOCKED |
Jackrong/Trace-Inverter-4B |
METHODOLOGY REFERENCE (not used as data/weights) | apache-2.0 | CLEAN as a reference; its authors' separate application to Claude data is not replicated here |
Detail
empero-ai/Qwythos-9B-Claude-Mythos-5-1M
- Role: BASE MODEL (used, per owner instruction)
- License: apache-2.0 (weights only)
- Teacher/lineage: self-declared: post-trained on ~500M tokens of Claude Mythos/Fable traces with UNDISCLOSED collection method; base weights from Qwen/Qwen3.5-9B
- Verdict: QUESTIONABLE — FAILS clean-provenance gate
- Note: Apache-2.0 covers the Qwen-derived weights; it does not grant rights to the Claude-derived training content, whose sourcing the card does not disclose. Kuiper inherits this taint at the weights level. Recorded here explicitly; the release decision is deferred to post-eval review (owner directive).
Qwen/Qwen3.5-9B
- Role: CLEAN CONTROL BASE (available; recommended for a provenance-clean re-base)
- License: apache-2.0
- Teacher/lineage: Qwen foundation model (open)
- Verdict: CLEAN
open-thoughts/OpenThoughts3-1.2M
- Role: TRAINING CORPUS
- License: apache-2.0
- Teacher/lineage: reasoning traces annotated by QwQ-32B (open weights)
- Verdict: CLEAN — no proprietary-frontier teacher; permissive license; lineage disjoint from the benchmark
Jackrong/DeepSeek-V4-Distill-8000x
- Role: HELD-OUT VALIDATION BENCHMARK
- License: mit
- Teacher/lineage: DeepSeek-V4-Flash (DeepSeek license permits distillation); prompts from GLM-5.1-Reasoning-1M-Cleaned
- Verdict: CLEAN
lordx64/fable-sft-combined-v2
- Role: OPTIONAL STRESS SET — REJECTED, NOT USED
- License: agpl-3.0
- Teacher/lineage: harvested from 481 Claude Fable 5 sessions; reasoning reconstructed post-hoc
- Verdict: BLOCKED — AGPL copyleft + Anthropic-output provenance; excluded from the pipeline
Jackrong/Trace-Inverter-4B
- Role: METHODOLOGY REFERENCE (not used as data/weights)
- License: apache-2.0
- Teacher/lineage: n/a (technique only)
- Verdict: CLEAN as a reference; its authors' separate application to Claude data is not replicated here
Training-data cleanliness guarantee
- Training traces come solely from
OpenThoughts3-1.2M(Apache-2.0, QwQ-32B teacher). - Compression to bubbles is deterministic and extractive — no model call, no proprietary teacher touches the data, fully reproducible.
- A source-row provenance filter rejects any trace containing frontier-model self-identification markers (defense in depth).
- The benchmark lineage (GLM-5.1 prompts / DeepSeek-V4-Flash) is disjoint from the training lineage, so eval measures generalization, not memorization.
- No Quark-derived data is used (contained Opus/GPT rows); excluded per owner instruction.
Known limitation (recorded, not resolved)
The base model carries undisclosed Claude-trace provenance and fails the clean-provenance release gate. A provenance-clean rebuild is available by swapping the base to Qwen/Qwen3.5-9B (identical architecture) — see the model card. Publication is gated on owner review of this report plus the eval report.
Built dataset (from summary.json)
- Examples: train=3000, val=1000, test=1000, benchmark=3529
- Train domains: {"math": 1001, "science": 1531, "code": 468}
- Avg trace chars (train): 5780 · avg bubble chars: 1168
- Compression config: {"strategy": "extractive", "target_ratio": 0.28, "min_bubbles": 3, "max_bubbles": 24, "bubble_prefix": "- "}