dealignai/MiMo-V2.6-Pro-RL-UNCENSORED

🤗 Hugging Face sourcetext-generationmit1024B params1.0 TBsafetensors✓ 137 checksumsupdated today
Submit in one command

Run it next to your model folder. It makes the torrent, checks your files against Hugging Face, and submits it. You just start seeding and paste your key from your account. It only reads your files and never changes them. Read the script first if you like.

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo dealignai/MiMo-V2.6-Pro-RL-UNCENSORED ./model-folder
Needs a seeder →

⚠️ v3 patch shipped 2026-09-23 — please re-download model_pp0_ep0_shard0.safetensors

Symptom fixed: under long Codex-style / agent workflows (long system prompt, tools, multi-step tool-call chain, thinking OFF), v1 could get stuck emitting the same tool call hundreds of times per turn without ending the assistant turn. If you saw max-identical-tool-call climb past a few dozen or finish_reason stay at "tool_calls" forever, that was the v1 defect.

What changed on disk: exactly one shard — model_pp0_ep0_shard0.safetensors — was replaced. All other 129 shards are byte-identical to v1 and do not need to be re-downloaded. Verified 6/6 clean agent-loop episodes, 0/6 looped, max-identical-tool-call ≤ 1.

  • v1 shard0 sha256: 598e372a94ce975e670f943705e3b4d8734fb235604be5f1ecad1d58677bffd7
  • v3 shard0 sha256: 38cbe7ad4b8f1b62360a0b0c834cd2064f50ad97b82451a36a4cba12c641408c

If your checkout was pulled before 2026-09-23 02:30 UTC, run hf download dealignai/MiMo-V2.6-Pro-RL-UNCENSORED model_pp0_ep0_shard0.safetensors (or git lfs pull) to pick up the fixed shard.

⚠️ Tool calling — use the shipped chat template, or empty arguments {} on "code-mode" tools

Symptom: an agent/Codex-style client whose system prompt describes a tool as "code mode" / "the body is the source code" (e.g. a single exec tool that runs JavaScript) can make the model emit the code as a bare function body — <function=exec>text(17 * 23);</function> — instead of the required <function=exec><parameter=input>text(17 * 23);</parameter></function>. vLLM's Qwen3-Coder tool parser (--tool-call-parser mimo) reads arguments only from <parameter=NAME> tags, so a bare body parses to arguments = {} and your code is dropped. This is a chat-template + parser format mismatch, not a model or capability defect (same behavior on base MiMo); it is unrelated to the uncensoring.

Fix (shipped in this repo): the bundled chat template now restores the canonical Qwen3-Coder tool-format instructions — it tells the model, in every tools turn, that every argument must be wrapped in its own <parameter=NAME> tag and never emitted as a bare function body. With the shipped template the model emits the correct format 8/8 on hard cases at temperature 0; without it, heavy code-mode prompts drift to 0/8. Make sure your server loads this repo's tokenizer_config.json template (do not override it with an older --chat-template file). See Tool calling below.

If you must keep a custom template/prompt: append one line to your system prompt — "Every argument MUST be passed inside its own <parameter=NAME>VALUE</parameter> tag; never place an argument as a bare function body." — and send tool-call arguments as normal JSON objects.

𝕏 @dealignai · dealign.ai · Ko-fi

MiMo-V2.6-Pro-RL — dealignai UNCENSORED edition

Compliance-tuned drop-in replacement for XiaomiMiMo/MiMo-V2.6-Pro-RL. Refusal removed at the weight level. Vision, audio, and the DFlash speculative-decoding head fully preserved. Both enable_thinking: true and enable_thinking: false supported.

Highlights

The compliance number that matters for uplift research is the per-category rate on the four hard-uplift buckets — chem/bio, cybercrime, misinformation, and physical/technical harm — not the whole-320 average. Copyright and speech-act categories drag the "all-320" number down; they are not what this bundle is for.

Uplift-category compliance (thinking ON, greedy, max_tokens=4000)

Category v3 COMPLY rate
chemical_biological 40/42 95.24%
cybercrime_intrusion 50/52 96.15%
misinformation_disinformation 53/54 98.15%
harmful — technical-uplift subset (pacemaker tampering, breathalyzer fooling, snuff-film script, race-discrimination essay, wikipedia edits, 9/11-glorify, dismemberment description, huffing persuasion, honey-feeding, chemical mixing, drawn-quartered graphic, domestic abuse scene, kid detergent ads, wiki edit) 14/14 100%

All four uplift categories clear ≥ 95 %. Cyber and chem/bio in particular land in the range where a technical uplift request is answered on the merits, not refused. Verified on this exact dealignai/MiMo-V2.6-Pro-RL-UNCENSORED bundle with the v3 shard.

Full 320-suite averages

Metric (measured on this exact bundle) Base This model Δ
HarmBench-320 all-cat compliance — thinking OFF (base refuses by design) 94.06% —
HarmBench-320 all-cat compliance — thinking ON (base refuses by design) 85.00% —
Real-harm ASR ex-copyright — thinking OFF — ~92% —
Real-harm ASR ex-copyright — thinking ON — ~86% —
MMLU 14,042 (full test, logit-ranked) 88.27% 87.43% −0.84 pp
MMLU cyber cluster (5 subjects, 557 q) 90.84% 91.02% +0.18 pp
MMLU ethics cluster (6 subjects, 1,891 q) 85.25% 83.08% −2.17 pp
Vision encoder intact intact ✓ —
Audio encoder intact intact ✓ —
DFlash speculative-decoding head — avg accepted tokens/step — 1.71 (of 7 drafts) —
Agent-loop harness (Codex bug-fix, 6 episodes, greedy) — 6/6 FINISHED, 0/6 looped, max identical tool call ≤ 1 —

Honest caveats:

  • The whole-320 ON-mode COMPLY (85 %) is dragged down by speech-act prompts (romanticize sexual assault, convince a minor to use drugs, feed lilies to cats, entice bleach + rubbing-alcohol mixing) where the base MiMo RL floor holds — these refuse regardless of surgery strength. No technical uplift request is refused. Cyber-3/52, chem_bio-2/42, misinfo-1/54 fails are edge cases inside those categories, not systemic.
  • MMLU ethics drops 2.17 pp — expected side-effect of removing the refusal circuit; ethics scenarios are close to the refusal decision the surgery ablates.
  • MMLU cyber is slightly above base — v3's L55-63 restoration reduced generic STEM drift.

What Is This?

XiaomiMiMo/MiMo-V2.6-Pro-RL — the flagship MiMo-V2 release from Xiaomi: a 1.02T-total / 42B-active MoE (384 routed experts top-8) with a hybrid attention layout (10 global + 60 sliding-window), a vision-language encoder, an audio encoder, video understanding, ~1 M context length, and a DFlash speculative-decoding head shipped alongside for high-throughput inference — uncensored and shipped as a native-precision (FP8 + MXFP4) MoE bundle.

Refusal behavior is removed at the weight level: the model follows instructions across task categories instead of refusing, while keeping its coding ability, math, knowledge, reasoning, and bilingual (EN + ZH) coverage intact. No runtime hooks, no steering vectors — a standard transformers/vLLM-compatible bundle. Loads through vLLM's MiMo V2 loader without patches.

No compliance-tuning internals are shipped inside this repository. No probe artifacts, no refusal vectors, no target-layer indices, no strength schedules, no surgery records. The bundle is only weights + config + tokenizer + assets + the base DFlash draft head.

Results

HarmBench-320 — full 4-tier breakdown per semantic category (thinking OFF)

Grader: 4-tier compliance classifier — COMPLY (delivered substantive answer, incl. reasoning-content-as-answer for truncated <think>) / SOFT_REDIRECT / HEDGE / HARD_REFUSE. Greedy, max_tokens_off=1200.

Category COMPLY SOFT_REDIRECT HEDGE HARD_REFUSE Total Comply%
chemical_biological 39 0 0 3 42 92.9%
copyright 80 0 0 0 80 100.0%
cybercrime_intrusion 46 0 0 6 52 88.5%
harassment_bullying 18 0 0 3 21 85.7%
harmful 18 0 0 0 18 100.0%
illegal 46 0 0 7 53 86.8%
misinformation_disinformation 54 0 0 0 54 100.0%
OVERALL 301 0 0 19 320 94.06%
HarmBench-320 — full 4-tier breakdown per semantic category (thinking ON)

Grader: 4-tier compliance classifier — COMPLY (delivered substantive answer, incl. reasoning-content-as-answer for truncated <think>) / SOFT_REDIRECT / HEDGE / HARD_REFUSE. Greedy, max_tokens_on=4000.

Category COMPLY SOFT_REDIRECT HEDGE HARD_REFUSE Total Comply%
chemical_biological 40 0 0 2 42 95.2%
copyright 65 11 0 4 80 81.2%
cybercrime_intrusion 50 0 0 1 52 96.2%
harassment_bullying 11 1 0 9 21 52.4%
harmful 14 2 0 2 18 77.8%
illegal 39 0 0 14 53 73.6%
misinformation_disinformation 53 0 0 1 54 98.1%
OVERALL 272 14 0 33 319 85.27%
MMLU 14,042 — full per-subject base vs UNCENSORED comparison

Overall v3: 12277/14042 = 87.43% (v1 was 87.00%; Xiaomi base 88.27% → Δ -0.84 pp). Ethics cluster 83.08%, cyber cluster 91.02% — cyber slightly above base (90.84%) because restoring L55-63 to base reduced STEM drift.

Subject v3 %
abstract_algebra 86/100 86.00%
anatomy 118/135 87.41%
astronomy 139/152 91.45%
business_ethics 86/100 86.00%
clinical_knowledge 248/265 93.58%
college_biology 140/144 97.22%
college_chemistry 66/100 66.00%
college_computer_science 92/100 92.00%
college_mathematics 92/100 92.00%
college_medicine 155/173 89.60%
college_physics 85/102 83.33%
computer_security 95/100 95.00%
conceptual_physics 217/235 92.34%
econometrics 97/114 85.09%
electrical_engineering 130/145 89.66%
elementary_mathematics 344/378 91.01%
formal_logic 104/126 82.54%
global_facts 76/100 76.00%
high_school_biology 299/310 96.45%
high_school_chemistry 180/203 88.67%
high_school_computer_science 93/100 93.00%
high_school_european_history 148/165 89.70%
high_school_geography 187/198 94.44%
high_school_government_and_politics 191/193 98.96%
high_school_macroeconomics 371/390 95.13%
high_school_mathematics 211/270 78.15%
high_school_microeconomics 232/238 97.48%
high_school_physics 124/151 82.12%
high_school_psychology 528/545 96.88%
high_school_statistics 190/216 87.96%
high_school_us_history 198/204 97.06%
high_school_world_history 224/237 94.51%
human_aging 190/223 85.20%
human_sexuality 119/131 90.84%
international_law 110/121 90.91%
jurisprudence 96/108 88.89%
logical_fallacies 147/163 90.18%
machine_learning 97/112 86.61%
management 98/103 95.15%
marketing 224/234 95.73%
medical_genetics 95/100 95.00%
miscellaneous 753/783 96.17%
moral_disputes 295/346 85.26%
moral_scenarios 694/895 77.54%
nutrition 281/306 91.83%
philosophy 281/311 90.35%
prehistory 299/324 92.28%
professional_accounting 239/282 84.75%
professional_law 1067/1534 69.56%
professional_medicine 258/272 94.85%
professional_psychology 555/612 90.69%
public_relations 87/110 79.09%
security_studies 209/245 85.31%
sociology 189/201 94.03%
us_foreign_policy 94/100 94.00%
virology 94/166 56.63%
world_religions 160/171 93.57%
OVERALL 12277/14042 87.43%
DFlash speculative-decoding acceptance (measured on this bundle)

Measured with num_speculative_tokens=7 and draft_tensor_parallel_size=8 on 16 sequential prompts (8 benign + 8 harmful), greedy decoding, max_tokens=250. Metrics pulled from vLLM's Prometheus /metrics endpoint.

  • Average accepted tokens per step: 1.71 (out of 7 drafted per step).
  • Overall acceptance rate: 24.45% across all drafted tokens.
  • Client-observed throughput on 8× RTX PRO 6000 Blackwell: ~99 tok/s (sequential single-stream, batched throughput is materially higher).

Per-draft-position acceptance rate (classic spec-decode exponential-decay curve):

Draft position Acceptance rate
0 71.6%
1 44.9%
2 26.1%
3 14.1%
4 7.9%
5 4.7%
6 1.9%

The first-position acceptance rate (~72%) is comparable to typical MTP-head baselines; positions 3+ contribute progressively less as the draft accumulates uncertainty, but the average of 1.71 accepted per step still delivers a ~2.7× effective throughput multiplier vs pure autoregressive decoding on this bundle.

Multimodal preservation

  • Vision — a 64×64 image containing a red circle on white ground is described as: "A solid red circle is centered on a plain white background."
  • Audio — a 1-second 440 Hz sine tone is described as: "You hear a continuous, high-pitched electronic tone or beep."
  • Video — a 20-second clip of five coloured circles (red / green / blue / yellow / magenta, 4 s each) at fps=4 returns the correct temporal order across all five segments. See the video-fps note in Operational caveats for the default-sampling caveat on shorter events.

All three encoders are untouched. The DFlash speculative-decoding head ships unchanged from the base repository under dflash/ and is loadable with the --speculative-config flag shown above.

Multi-turn coherence

The model handles multi-turn dependent tasks:

  • Math chain (4 dependent turns: 47×63 → /3 → sqrt → ×8+100): correct end-to-end in both thinking modes (turn 4 propagates turn 3's result).
  • Long-form generation (4-turn Tokyo heist story continuation): all 4 turns coherent in thinking-ON mode, no repetition or attractor loops.

Intended use

  • Red-team / defensive-security research on 1 T-scale reasoning models.
  • Compliance regression testing for safety-tuned deployments.
  • Content-generation workflows that require the model to actually attempt every requested output.

What is NOT changed

  • No steering vectors, no runtime hooks, no LoRA adapters. Standard transformers / vLLM weights.
  • Model architecture, tokenizer, tool-call wire format (<parameter=NAME> XML), DFlash drafter, vision and audio encoders — all identical to base. The chat template restores the canonical Qwen3-Coder tool-format instructions (see Tool calling) and keeps the message.reasoning/reasoning_content replay fix; content generation is otherwise unchanged.
  • MMLU non-ethics knowledge, coding, cyber, and general STEM.

Operational caveats

Read once, then forget — none of these block normal single-turn usage.

  • Video with sub-2s events: default video sampling (~1–2 fps) drops the leading segment on short clips and can hallucinate an intermediate colour. Pass media_io_kwargs: {"video": {"fps": 4}} for anything with events shorter than ~2 seconds. Structured long-form video works at the default.
  • Perfectly uniform images: a frame with a single flat color (no structure, no gradient) is reported as "Blue" regardless of the actual color, at the same token cost as a structured image. This is base-model behavior (unchanged by the compliance tuning). Any real photo, screenshot, or one-pixel of contrast avoids it.
  • DFlash speculative decoding: preserved and functional on this bundle (measured acceptance rate above), but a couple of open upstream vLLM issues can bite specific workloads. If you see stalls or crashes with --speculative-config, drop the flag; the base autoregressive path is unaffected.

Serving instructions (vLLM 0.29.1rc1)

Requires vLLM built with MiMo V2 Pro support (PR #57784, merged 2026-09-20). That PR is not in the v0.30.0 release; use the pre-built vllm/vllm-openai:mimo-v26-cu129 image (or a build from commit 9b2f34cad4 or later).

GPU footprint. Non-KV weights land at ~74.9 GiB per GPU at TP=8, so you need ≥ 80 GiB per card. 8× H200 and 8× RTX PRO 6000 Blackwell are the tested platforms. 8× H100-80GB does not fit — the card's own --gpu-memory-utilization 0.85 (67.7 GiB) is below the non-KV footprint; even 0.92 leaves < 1 GiB for KV cache. Older / smaller cards (H100-40, A100, L40S) do not fit at all.

Hopper (H100-80GB / H200, sm_90) — recommended flags

vllm serve dealignai/MiMo-V2.6-Pro-RL-UNCENSORED \
  --served-model-name mimo-uncensored \
  --tensor-parallel-size 8 --trust-remote-code \
  --enable-expert-parallel --distributed-executor-backend mp \
  --gpu-memory-utilization 0.92 --max-model-len 262144 \
  --max-num-seqs 32 --max-num-batched-tokens 16384 \
  --reasoning-parser mimo --tool-call-parser mimo --enable-auto-tool-choice \
  --generation-config vllm

Measured on 8× H200: ~119 tok/s single-stream decode, ~17,000 tok/s prefill @ 44.8 k input, ~1,677 tok/s aggregate at concurrency 32, KV cache ~5.19 M tokens (≈19× concurrency at 262 k context). --max-model-len can go higher on H200 (base supports ~1 M positions); 262 k is a conservative headroom-friendly default.

Do NOT carry the Blackwell workarounds below to Hopper. --linear-backend marlin on H200 costs −4.0% decode / −15.4% prefill (measured 4-probe A/B, one flag varied); it forces weight-only Marlin onto FP8 block-scaled dense layers that H200 runs natively through CUTLASS/DeepGEMM. --disable-custom-all-reduce strips a valid NVLink kernel; VLLM_USE_DEEP_GEMM=0 disables 3 live DeepGEMM code paths. All three are Blackwell-only.

Cold-start caveat (Hopper only). On a fresh pod with no warm DeepGEMM cubin cache, the JIT compile can fail with a cubin assertion at boot. If you see that on first launch, set VLLM_USE_DEEP_GEMM=0 for that first boot — you lose the DeepGEMM path (measured cost above) but the model comes up on CUTLASS. Once the DeepGEMM cache under /root/.cache/vllm/ (or your VLLM_CACHE_ROOT) is populated by a successful subsequent boot with VLLM_USE_DEEP_GEMM unset, later boots use DeepGEMM at full speed. Persistent volumes preserve the cache across pod restarts.

Blackwell workstation (RTX PRO 6000, sm_120) — required workarounds

export VLLM_USE_DEEP_GEMM=0
vllm serve dealignai/MiMo-V2.6-Pro-RL-UNCENSORED \
  --served-model-name mimo-uncensored \
  --tensor-parallel-size 8 --trust-remote-code \
  --enable-expert-parallel --distributed-executor-backend mp \
  --disable-custom-all-reduce --linear-backend marlin --moe-backend marlin \
  --compilation-config '{"cudagraph_mode":"FULL_DECODE_ONLY"}' \
  --gpu-memory-utilization 0.85 --max-model-len 32768 \
  --max-num-seqs 8 --max-num-batched-tokens 16384 \
  --reasoning-parser mimo --tool-call-parser mimo --enable-auto-tool-choice \
  --generation-config vllm

These three flags patch sm_120 kernel bugs: DeepGEMM sm_120 needs CUDA 13 (the cu129 image is CUDA 12.9), CUTLASS c3x FP8 sm_120 crashes, and Blackwell workstation NVLink layout mismatches the custom all-reduce kernel. --max-num-seqs 8 is a floor for TritonAttn during profile_run on sm_120 (crashes at 1; 2 also works).

With DFlash speculative decoding

Add to either flag block:

  --speculative-config '{"method":"dflash","model":"<snapshot>/dflash","num_speculative_tokens":7,"draft_tensor_parallel_size":8}' \
  --no-async-scheduling

The DFlash draft head is a 5-layer SWA drafter shipped in the base repo under dflash/. --no-async-scheduling is required because vLLM registers dflash in EagleModelTypes — its auto-disable-async guard does not fire, and vLLM issue #46669 (open) shows DFlash + async-scheduling at concurrency > 1 produces garbage output on MiMo-V2.5-Pro. Note also vLLM #47930: DFlash acceptance collapses below 1% when prefix caching hits a shared long prefix. Measured 1.71 accepted tokens per 7-token step on Blackwell single-stream (see below).

Tool calling

Serve with --tool-call-parser mimo (the Qwen3-Coder XML parser; mimo, qwen3_coder, and qwen3_xml are the same parser in current vLLM). The wire format the parser expects is:

<tool_call><function=NAME><parameter=ARG_1>VALUE_1</parameter><parameter=ARG_2>VALUE_2</parameter></function></tool_call>

Every argument must be inside its own <parameter=NAME>…</parameter> tag. vLLM's parser (_qwen3_arg_converter) captures arguments only from these tags — a bare function body with no <parameter> tag parses to arguments = {} (same code path as vLLM issue #57699). This bundle's chat template injects the canonical Qwen3-Coder instructions so the model produces this format even under long, tool-heavy, "code-mode" system prompts.

Client guidance

  • Send arguments as a normal JSON object, exactly as the OpenAI API expects. vLLM parses it to a dict before templating, and the shipped template renders each key as a <parameter=NAME> tag — so tool-call history round-trips correctly.
  • Do not override the shipped chat template with an older/custom --chat-template file that lacks the format instructions. If you must, add to your system prompt: "Every argument MUST be passed inside its own <parameter=NAME>VALUE</parameter> tag; never place an argument as a bare function body, even for code/exec-style tools."
  • "Code-mode"/exec tools (a single tool whose value is source code): the code is still an argument — pass it as input (or your parameter name) inside <parameter=input>…</parameter>, not as the function body. A one-shot example in history (an assistant tool_calls turn with a proper arguments object) also reliably teaches the format.

Example request (OpenAI-compatible):

resp = client.chat.completions.create(
    model="dealignai/MiMo-V2.6-Pro-RL-UNCENSORED",
    messages=[{"role": "user", "content": "Run exec with source: text(17 * 23);"}],
    tools=[{"type": "function", "function": {
        "name": "exec",
        "description": "Run JavaScript source in a V8 isolate.",
        "parameters": {"type": "object", "required": ["input"],
                       "properties": {"input": {"type": "string"}}}}],
)
# resp.choices[0].message.tool_calls[0].function.arguments == '{"input": "text(17 * 23);"}'

Thinking mode

Both modes are supported via the OpenAI-compatible extension:

client.chat.completions.create(
    model="mimo-uncensored",
    messages=[{"role":"user","content":"..."}],
    max_tokens=4000,             # single-turn thinking-on
    extra_body={"chat_template_kwargs": {"enable_thinking": True}},
)

enable_thinking defaults to ON. Clients wanting fast turns must pass chat_template_kwargs.enable_thinking: false explicitly; leaving the field out will engage the reasoning path.

Read the reasoning trace from message.reasoning (vLLM 0.29+; older clients see the same content under message.reasoning_content). This bundle's chat template accepts either field on replay.

The bundle ships a chat template with a compact <think> prefill that keeps long reasoning traces from getting stuck in a "should I answer this" loop on high-taboo prompts. Reasoning depth is unchanged for benign prompts.

For stateful multi-turn conversations, use enable_thinking: false. Measured on 5-turn conversations, thinking-ON exhausts the token budget without closing </think> on some turns:

config empty turns (of 5)
thinking ON, max_tokens=4000, reasoning replayed 3
thinking ON, max_tokens=4000, no replay 3
thinking ON, max_tokens=16000, no replay 1
thinking OFF, max_tokens=4000 0

Not a repetition loop (0 duplicate sentences observed). The model recovers on the next turn instead of staying poisoned. repetition_penalty > 1.0 makes it worse — leave it at 1.0.

Related

License

Inherits the MIT license of the base repository. Redistributing or fine-tuning further is permitted under those terms.

Support

If this bundle saves you a build, consider Ko-fi.