Text Generation
Transformers
Safetensors
English
qwen3_5
image-text-to-text
kozu
reasoning
trace-inversion
synthetic-reasoning
chain-of-thought
conversational
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": "- "} | |