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
Planetary Class · 9.41B · Apache 2.0Preserve the answer. Weights available
Overview
Kuiper-R1 reconstructs full, readable reasoning from a problem, its final answer, and compressed reasoning bubbles.
Each result follows a three-tag contract: <synthetic_trace>, <verification_note>, and <final>. The final answer is preserved byte-for-byte, while the reconstructed trace is explicitly labeled synthetic.
Use Kuiper-R1 for reasoning-dataset augmentation, interpretability review, and research into reasoning compression and expansion. Do not present its synthetic traces as another model's hidden chain-of-thought.
Specifications
Usage
Serve with vLLM. Disable the default thinking pass so the requested three-tag contract can use the full output budget.
Start the private checkpoint:
vllm serve Michael-Kozu/Kuiper-R1 \
--served-model-name kuiper-r1 \
--max-model-len 8192 \
--gpu-memory-utilization 0.85 \
--skip-mm-profiling \
--trust-remote-code
Send an OpenAI-compatible request:
{
"model": "kuiper-r1",
"messages": [
{
"role": "system",
"content": "You are Kuiper, a reasoning-trace inversion model."
},
{
"role": "user",
"content": "Problem:\n[problem text]\n\nAnswer:\n[exact final answer]\n\nReasoning Bubbles:\n- [bubble one]\n- [bubble two]\n\nReconstruct the full reasoning trace."
}
],
"temperature": 0.4,
"repetition_penalty": 1.1,
"chat_template_kwargs": {"enable_thinking": false}
}
Training Details
Training uses domain-balanced science, math, and code rows from OpenThoughts3-1.2M. Reasoning traces are compressed into extractive bubbles deterministically, without an additional model call.
- Training split: 1,531 science, 1,001 math, and 468 code examples.
- Compression is extractive at a target ratio of 0.28 with 3–24 bubbles.
- The held-out DeepSeek-V4 benchmark lineage is disjoint from the QwQ-32B training lineage.
Benchmarks
| Metric | Base | Kuiper-R1 |
|---|---|---|
| Final answer preserved · exact | 0.155 | 0.820 |
| Format valid · 3-tag contract | 0.980 | 0.880 |
| Expansion quality | 0.791 | 0.769 |
| Semantic consistency | 0.708 | 0.535 |
| No invented tool outputs | 1.000 | 1.000 |
| Overall | 0.329 | 0.504 |
Limitations & License
- Bubble informativeness bounds trace quality; terse inputs provide little evidence to expand.
- The verification note is a construction-time consistency statement, not an external verifier.
- The release improves exact answer preservation but trails the untouched base on raw format validity and semantic consistency.
The checkpoint is released under the Apache License 2.0.
- Downloads last month
- 470