Text Generation
Transformers
Safetensors
English
minimax_m3_vl
image-text-to-text
uncensored
abliterated
Mixture of Experts
minimax
security
conversational
custom_code
Instructions to use ressl/MiniMax-M3-uncensored with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ressl/MiniMax-M3-uncensored with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="ressl/MiniMax-M3-uncensored", trust_remote_code=True) 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("ressl/MiniMax-M3-uncensored", trust_remote_code=True) model = AutoModelForMultimodalLM.from_pretrained("ressl/MiniMax-M3-uncensored", trust_remote_code=True, 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 ressl/MiniMax-M3-uncensored with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ressl/MiniMax-M3-uncensored" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ressl/MiniMax-M3-uncensored", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/ressl/MiniMax-M3-uncensored
- SGLang
How to use ressl/MiniMax-M3-uncensored 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 "ressl/MiniMax-M3-uncensored" \ --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": "ressl/MiniMax-M3-uncensored", "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 "ressl/MiniMax-M3-uncensored" \ --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": "ressl/MiniMax-M3-uncensored", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use ressl/MiniMax-M3-uncensored with Docker Model Runner:
docker model run hf.co/ressl/MiniMax-M3-uncensored
| license: other | |
| base_model: MiniMaxAI/MiniMax-M3 | |
| base_model_relation: finetune | |
| library_name: transformers | |
| pipeline_tag: text-generation | |
| language: [en] | |
| tags: | |
| - uncensored | |
| - abliterated | |
| - moe | |
| - minimax | |
| - security | |
|  | |
| # MiniMax-M3-uncensored (BF16) | |
| **TL;DR:** an uncensored build of [MiniMaxAI/MiniMax-M3](https://huggingface.co/MiniMaxAI/MiniMax-M3) | |
| (428B-parameter MoE, 23B active), with **0 hard refusals** on harmful prompts while the model's | |
| capabilities stay intact. Full-precision BF16, 796 GB. | |
| > ⚠️ **This model is genuinely uncensored, it will comply with requests a stock model refuses.** | |
| > | |
| > **Intended use, the constructive side.** An assistant that does not refuse is genuinely useful for | |
| > **ethical hacking, security research, and penetration testing**: red-teaming, analyzing malware and | |
| > exploit code, writing detection/YARA rules, reviewing vulnerabilities, and studying attack | |
| > techniques without the model bailing out mid-task. Use it lawfully and responsibly, you are | |
| > accountable for what you do with it. | |
| ## Facts & figures | |
| | | | | |
| |---|---| | |
| | Base model | [MiniMaxAI/MiniMax-M3](https://huggingface.co/MiniMaxAI/MiniMax-M3) (428B total / 23B active, MoE, multimodal, 1M context) | | |
| | Precision | BF16 (796 GB, 59 shards) | | |
| | Effective refusals | **0/16 hard-refusals** on harmful prompts (mlabonne/harmful_behaviors); the base model deliberates or refuses | | |
| | Modified weights | attention `o_proj` + every residual-writing `down_proj` (dense, shared expert, and all 128 routed experts per MoE layer), all 60 layers | | |
| | Coherence | intact (multimodal, reasoning and MoE routing preserved) | | |
| ## Uncensoring, verified | |
| Generation on harmful prompts, hard-refusal phrases only ("I cannot" / "I won't" etc.): | |
| | Prompt set | Prompts | Hard refusals | | |
| |---|---:|:---:| | |
| | mlabonne/harmful_behaviors | 16 | **0/16 (0.0%)** | | |
| The abliteration is a **weight property**: it survives quantization, so downstream NVFP4 / GGUF builds | |
| keep the same behavior. | |
| > ℹ️ **MiniMax-M3 has a reasoning mode** (`<mm:think>`). The model thinks before answering; the | |
| > uncensored build reasons about *how* to fulfill a request rather than whether to refuse. For direct | |
| > answers, disable thinking in your client. | |
| ## Run it with transformers | |
| ```python | |
| from transformers import AutoModelForImageTextToText, AutoTokenizer, AutoConfig | |
| tok = AutoTokenizer.from_pretrained("ressl/MiniMax-M3-uncensored") | |
| cfg = AutoConfig.from_pretrained("ressl/MiniMax-M3-uncensored") | |
| model = AutoModelForImageTextToText.from_pretrained( | |
| "ressl/MiniMax-M3-uncensored", config=cfg, dtype="bfloat16", device_map="auto") | |
| ``` | |
| ## Run it with vLLM | |
| ```bash | |
| vllm serve ressl/MiniMax-M3-uncensored \ | |
| --tensor-parallel-size 8 --tool-call-parser minimax_m3 --reasoning-parser minimax_m3 --trust-remote-code | |
| ``` | |
| MiniMax-M3 needs a recent vLLM with M3 support (for RTX PRO 6000 / Blackwell see | |
| [0xSero/minimax-m3-sm120](https://github.com/0xSero/minimax-m3-sm120)). The 428B MoE needs multi-GPU | |
| at BF16; an **NVFP4 quant** (NVIDIA ModelOpt, following | |
| [nvidia/MiniMax-M3-NVFP4](https://huggingface.co/nvidia/MiniMax-M3-NVFP4)) shrinks it to ~230 GB and | |
| runs on a single Blackwell node. | |
| ## Quality & limitations | |
| - 0/16 hard refusals on a harmful-prompt sample; not a full capability benchmark. | |
| - BF16 is large (796 GB); for single-node serving, produce an NVFP4 quant via NVIDIA's ModelOpt | |
| recipe on this checkpoint (the abliteration is a weight property and survives quantization). | |
| - The reasoning mode is on by default (see the note above). | |
| ## ❤️ Support | |
| Producing and validating an uncensored build of a brand-new 428B MoE was a **lot of work**. If it's | |
| useful to you, I'd genuinely appreciate your support on [**Patreon**](https://www.patreon.com/cw/ressl) 🙏, | |
| more at [ressl.ch](https://ressl.ch/). | |
| ## License & credits | |
| License **inherited from the base model** by **MiniMaxAI**. Uncensoring and validation by | |
| **Robert Ressl** ([Hugging Face](https://huggingface.co/ressl) · [Website](https://ressl.ch/) · [LinkedIn](https://www.linkedin.com/in/robertressl/) · [Patreon](https://www.patreon.com/cw/ressl)). | |