Instructions to use beyoru/Kiwen1.2-27B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use beyoru/Kiwen1.2-27B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="beyoru/Kiwen1.2-27B") 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("beyoru/Kiwen1.2-27B") model = AutoModelForMultimodalLM.from_pretrained("beyoru/Kiwen1.2-27B", device_map="auto") 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 beyoru/Kiwen1.2-27B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "beyoru/Kiwen1.2-27B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "beyoru/Kiwen1.2-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/beyoru/Kiwen1.2-27B
- SGLang
How to use beyoru/Kiwen1.2-27B 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 "beyoru/Kiwen1.2-27B" \ --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": "beyoru/Kiwen1.2-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'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 "beyoru/Kiwen1.2-27B" \ --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": "beyoru/Kiwen1.2-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use beyoru/Kiwen1.2-27B with Docker Model Runner:
docker model run hf.co/beyoru/Kiwen1.2-27B
Kiwen1.2-27B
Kiwen1.2 is a fine-tuned version of Qwen3.8-27B, trained on long chain-of-thought reasoning traces from Kimi K3 — with a particular focus on reasoning, coding, tool use, and instruction following. But the goal wasn't simply to make the model think longer. The goal was to make it think better.
This model isn't an attempt to build the biggest model.
It's an attempt to make a 27-billion-parameter model think harder, follow instructions better, and act more reliably.
News
RL in internal workflow by RLVR
Internal benchmark
| Rank | Model | Pass Rate | Partial Rate |
|---|---|---|---|
| 1 | Kiwen1.2 |
81.2% | 89.62% |
| 2 | gemini-3.7-flash |
81.0% | 89.8% |
| 3 | gemini-3.6-flash |
80.0% | 88.9% |
| 4 | Kiwen1.1 |
78.1% | 87.85% |
the benchmark includes 100 internal tasks for agent workflow
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
m = "beyoru/Kiwen1.1-27B"
tok = AutoTokenizer.from_pretrained(m)
model = AutoModelForCausalLM.from_pretrained(m, dtype="auto", device_map="auto")
msgs = [{"role": "user", "content": "Natalia sold clips to 48 friends in April, "
"and half as many in May. How many total?"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True,
enable_thinking=True, return_tensors="pt").to(model.device)
print(tok.decode(model.generate(ids, max_new_tokens=4096)[0][ids.shape[-1]:]))
Set enable_thinking=False for extraction, classification and formatting tasks.
The model was trained with both modes and respects the flag.
Serving with SGLang:
python -m sglang.launch_server --model-path beyoru/Kiwen1.2-27B \
--context-length 262144
Notes:
- Found some issues in response quality when using with dflash2 - make sure you don't use this model with it
- Found some loop issues in the previous version for long agentic task - ask hope this version can fix when it train for nearly long horizon task as least
- Just little improvement in GSM8K and ifeval so the benchmark is not show above instead the benchmark in internal workflow is become better and model do more efficient steps
Citation
@misc{kiwen27bk3,
title = {Kiwen1.2-27B},
author = {beyoru},
year = {2026},
url = {https://huggingface.co/beyoru/Kiwen1.2-27B}
}
License & Attribution
Built on:
- Qwen3.8-27B — Apache-2.0
Kiwen1.2-27B is released under the Apache-2.0 license.
- Downloads last month
- 90