Instructions to use UraionLabs/Uraion-Cyber-Preview with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use UraionLabs/Uraion-Cyber-Preview with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="UraionLabs/Uraion-Cyber-Preview") 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)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("UraionLabs/Uraion-Cyber-Preview") model = AutoModelForMultimodalLM.from_pretrained("UraionLabs/Uraion-Cyber-Preview", 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=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use UraionLabs/Uraion-Cyber-Preview with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "UraionLabs/Uraion-Cyber-Preview" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "UraionLabs/Uraion-Cyber-Preview", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/UraionLabs/Uraion-Cyber-Preview
- SGLang
How to use UraionLabs/Uraion-Cyber-Preview 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 "UraionLabs/Uraion-Cyber-Preview" \ --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": "UraionLabs/Uraion-Cyber-Preview", "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 "UraionLabs/Uraion-Cyber-Preview" \ --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": "UraionLabs/Uraion-Cyber-Preview", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use UraionLabs/Uraion-Cyber-Preview with Docker Model Runner:
docker model run hf.co/UraionLabs/Uraion-Cyber-Preview
Uraion Cyber · preview
A 35B-A3B mixture-of-experts model, given one round of on-policy preference training, merged into BF16 and published as 72 GB of weights in 16 shards.
This is a preview build, not a release-qualified model. It is the checkpoint our evaluation kept: on paired, multi-seed tests it follows instructions measurably better than the untrained model, and scoring, tool calling and coding stay where they were. Nothing about it is a new capability claim.
A Q4_K_M GGUF of the same weights for llama.cpp lives at UraionLabs/Uraion-Cyber-Preview-GGUF.
What changed
One LoRA adapter (rank 16, alpha 32, 250 modules) trained on-policy against its own rollouts, then merged. No continued pretraining, no new vocabulary, no architecture change, no system prompt. The tokenizer, chat template and vision encoder are the base checkpoint's, unchanged.
Measured
Native BF16, vLLM 0.33.0, identical tasks and budgets: salt public-final-0, temperature 1.0, top_p 0.95, top_k 20, 8,192 output tokens, 1,024 reasoning tokens, concurrency 16. 799 generations per benchmark set, zero request errors. Single seed — descriptive, not a leaderboard position.
| Benchmark | Items | Score |
|---|---|---|
| PrimeVul filtered pairs | 335 | 296 (88.4%) |
| CTI MCQ subset | 300 | 217 (72.3%) |
| HumanEval base | 164 | 156 (95.1%) |
| HumanEval+ | 164 | 147 (89.6%) |
| IFEval prompt · strict | 541 | 427 (78.93%) |
| IFEval prompt · loose | 541 | 444 (82.07%) |
| IFEval instruction · strict | 834 | 715 (85.73%) |
| IFEval instruction · loose | 834 | 734 (88.01%) |
| BFCL | 400 | 359 (89.75%) |
HumanEval and HumanEval+ share the same 164 generations. Length finishes count as failures. Every number is read from saved per-item journals; nothing was regenerated for this card.
The table above is an absolute score. What matters for a fine-tune is the paired difference against the untrained model on the same stack, which is what the chart shows: instruction following moves +2.6 pts (z 2.9 and 3.2 over four seed sets); tool calling, security MCQ and coding stay within noise of zero.
In the four-model comparison we ran alongside this one, Qwen3.6 scored higher on CTI and HumanEval+, the base checkpoint scored higher on HumanEval base, and this model scored highest on PrimeVul. That is a trade-off across single-seed runs, not a ranking.
Pair the numbers with their limits
- CTI is a 300-item subset and PrimeVul is 335 filtered vulnerable/patched pairs. Neither is the full upstream security suite, and neither measures false-positive behaviour on safe code. Do not read the PrimeVul number as "finds 88% of vulnerabilities in real repositories".
- English, single seed, one sampling setting. No multi-seed superiority claim, no Terminal-Bench, no full context run.
- Instruction following is the only result outside noise. Everything else on this card is "unchanged", and unchanged is the finding.
- The GGUF is a separate artefact. Its numbers differ slightly (see that card). Native BF16 scores do not transfer to the quantized file.
Quickstart
Serving needs a recent runtime: vLLM ≥ 0.19.1, transformers ≥ 5.8.1, SGLang ≥ 0.5.9 for this architecture. The model is a reasoning model: it opens the assistant turn with a thinking block, so enable a reasoning parser if you want the trace separated.
vllm serve UraionLabs/Uraion-Cyber-Preview \
--served-model-name uraion-cyber-preview \
--host 0.0.0.0 --port 8000 \
--tensor-parallel-size 2 \
--max-model-len 262144 \
--gpu-memory-utilization 0.90 \
--enable-auto-tool-choice --tool-call-parser qwen3_xml \
--reasoning-parser qwen3 \
--trust-remote-code
Sampling we used: temperature=1.0, top_p=0.95, top_k=20. The upstream card recommends temperature=0.6 for general chat; both are reasonable, and the bench numbers were produced at 1.0. The sampling values are also in generation_config.json.
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
r = client.chat.completions.create(
model="uraion-cyber-preview",
messages=[{"role": "user", "content": "Review this diff for injection risk: ..."}],
temperature=1.0, top_p=0.95, max_tokens=4096,
)
print(getattr(r.choices[0].message, "reasoning_content", None))
print(r.choices[0].message.content)
For a single 24 GB GPU or CPU, use the Q4_K_M GGUF with llama.cpp instead.
Files
| File | Notes |
|---|---|
model-0000{1..16}-of-00016.safetensors |
BF16 merged weights, 72 GB total (71,903,871,568 bytes) |
model.safetensors.index.json |
Shard index |
config.json, configuration.json |
Qwen3.5-MoE config, unchanged by the merge |
chat_template.jinja, tokenizer*, merges.txt, vocab.json |
Base checkpoint tokenizer and template, unchanged — keep them |
generation_config.json |
temperature 1.0, top_p 0.95, top_k 20 |
preprocessor_config.json |
Inherited from the base model's multimodal stack |
Shard SHA256s are in the model tree on this page; the merge itself was rebuilt locally from the base weights plus the adapter and matched the cloud merge shard for shard.
Limitations
- Preview, not release-qualified. One training round, one seed per benchmark, no red-team pass.
- Security work needs review. Treat output as a first draft: the model reads and explains code well, it does not replace an audit, a scanner or a human reviewer. It will write plausible but wrong explanations.
- No learned identity. The model is a fine-tune of a public base checkpoint. It does not reliably call itself "Uraion", and the repo name is not a claim that it does. We deliberately did not add an identity system prompt.
- Context: 262,144 tokens as upstream. We have not validated a populated maximum-context run; YaRN extension beyond that is untested here.
- Vision: the base model's image tower is present and unmodified. We did not evaluate image input, so treat it as untested.
- Upstream behaviour and safety tuning are inherited from the base checkpoint and are unchanged here.
License and attribution
Qwen. The Mixture-of-Experts architecture, tokenizer and chat template in this model come from the Qwen team at Alibaba Group: Qwen/Qwen3.5-35B-A3B, built from Qwen/Qwen3.5-35B-A3B-Base. The comparison in this card uses Qwen/Qwen3.6-35B-A3B by the same team as its reference point; that model is not redistributed here.
Fine-tune: Uraion Labs, MIT licence (see LICENSE). Weights were trained, merged and evaluated on our own hardware and cloud GPU.
Uraion Labs is not affiliated with or endorsed by the Qwen team or Alibaba Group.
Uraion Labs · Private AI, on your hardware.
- Downloads last month
- -