Instructions to use ubergarm/MiniMax-M2.5-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use ubergarm/MiniMax-M2.5-GGUF with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="ubergarm/MiniMax-M2.5-GGUF", filename="IQ2_KS/MiniMax-M2.5-IQ2_KS-00001-of-00003.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use ubergarm/MiniMax-M2.5-GGUF with llama.cpp:
Install from brew
brew install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K # Run inference directly in the terminal: llama-cli -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K # Run inference directly in the terminal: llama-cli -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K # Run inference directly in the terminal: ./llama-cli -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K # Run inference directly in the terminal: ./build/bin/llama-cli -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K
Use Docker
docker model run hf.co/ubergarm/MiniMax-M2.5-GGUF:Q2_K
- LM Studio
- Jan
- vLLM
How to use ubergarm/MiniMax-M2.5-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ubergarm/MiniMax-M2.5-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ubergarm/MiniMax-M2.5-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/ubergarm/MiniMax-M2.5-GGUF:Q2_K
- Ollama
How to use ubergarm/MiniMax-M2.5-GGUF with Ollama:
ollama run hf.co/ubergarm/MiniMax-M2.5-GGUF:Q2_K
- Unsloth Studio
How to use ubergarm/MiniMax-M2.5-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for ubergarm/MiniMax-M2.5-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for ubergarm/MiniMax-M2.5-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for ubergarm/MiniMax-M2.5-GGUF to start chatting
- Pi
How to use ubergarm/MiniMax-M2.5-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "ubergarm/MiniMax-M2.5-GGUF:Q2_K" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use ubergarm/MiniMax-M2.5-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf ubergarm/MiniMax-M2.5-GGUF:Q2_K
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default ubergarm/MiniMax-M2.5-GGUF:Q2_K
Run Hermes
hermes
- Docker Model Runner
How to use ubergarm/MiniMax-M2.5-GGUF with Docker Model Runner:
docker model run hf.co/ubergarm/MiniMax-M2.5-GGUF:Q2_K
- Lemonade
How to use ubergarm/MiniMax-M2.5-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull ubergarm/MiniMax-M2.5-GGUF:Q2_K
Run and chat with the model
lemonade run user.MiniMax-M2.5-GGUF-Q2_K
List all available models
lemonade list
Testing IQ4_NL
W790E Sage + QYFS + 512G + RTX5090
Tensor blk.61.ffn_down_exps.weight buffer type overriden to CPU
llm_load_tensors: offloading 62 repeating layers to GPU
llm_load_tensors: offloading non-repeating layers to GPU
llm_load_tensors: offloaded 63/63 layers to GPU
llm_load_tensors: CPU buffer size = 120528.00 MiB
llm_load_tensors: CUDA_Host buffer size = 329.70 MiB
llm_load_tensors: CUDA0 buffer size = 3441.36 MiB
....................................................................................................
~ggml_backend_cuda_context: have 0 graphs
===================================== llama_init_from_model: f16
llama_init_from_model: n_ctx = 200192
llama_init_from_model: n_batch = 4096
llama_init_from_model: n_ubatch = 4096
llama_init_from_model: flash_attn = 1
llama_init_from_model: attn_max_b = 512
llama_init_from_model: fused_moe = 1
llama_init_from_model: grouped er = 1
llama_init_from_model: fused_up_gate = 1
llama_init_from_model: fused_mmad = 1
llama_init_from_model: rope_cache = 0
llama_init_from_model: graph_reuse = 1
llama_init_from_model: k_cache_hadam = 0
llama_init_from_model: split_mode_graph_scheduling = 0
llama_init_from_model: reduce_type = f16
llama_init_from_model: sched_async = 0
llama_init_from_model: ser = -1, 0
llama_init_from_model: freq_base = 5000000.0
llama_init_from_model: freq_scale = 1
llama_kv_cache_init: CUDA0 KV buffer size = 19696.65 MiB
llama_init_from_model: KV self size = 19696.62 MiB, K (q6_0): 9848.31 MiB, V (q6_0): 9848.31 MiB
llama_init_from_model: CUDA_Host output buffer size = 0.76 MiB
llama_init_from_model: CUDA0 compute buffer size = 3222.00 MiB
llama_init_from_model: CUDA_Host compute buffer size = 1612.05 MiB
llama_init_from_model: graph nodes = 2361
llama_init_from_model: graph splits = 126
XXXXXXXXXXXXXXXXXXXXX Setting only active experts offload
main: n_kv_max = 200192, n_batch = 4096, n_ubatch = 4096, flash_attn = 1, n_gpu_layers = 99, n_threads = 101, n_threads_batch = 101
| PP | TG | N_KV | T_PP s | S_PP t/s | T_TG s | S_TG t/s |
|---|---|---|---|---|---|---|
| 4096 | 1024 | 0 | 12.206 | 335.58 | 37.231 | 27.50 |
| 4096 | 1024 | 4096 | 12.200 | 335.75 | 30.720 | 33.33 |
| 4096 | 1024 | 8192 | 22.922 | 178.69 | 32.279 | 31.72 |
| 4096 | 1024 | 12288 | 21.965 | 186.48 | 46.059 | 22.23 |
| 4096 | 1024 | 16384 | 23.216 | 176.43 | 47.742 | 21.45 |
| 4096 | 1024 | 20480 | 23.498 | 174.31 | 47.164 | 21.71 |
I love seeing your wild vibe coded creations! Happy lunar new year! ππππ
I am going to ask stupid question and am fine with being slapped!
Why can't I get the model in ik_llama to properly use GPU at full like it happens in vllm / sglang? I love "-sm graph" + p2p get some strong push but still it's still at about half the t/s I am getting in sglang or vllm.
And I am not talking about multiple parallel requests. Nope, single one.
Is it some configuration / ik_llama line parametrization I am doing wrong, or is it architecturally so that *llama can't be that fast (given the lack of true tensor parallelism) and have to move on with my life and accept for what it is?
I'll try to answer you over on your discussion: https://huggingface.co/ubergarm/Qwen3.5-397B-A17B-GGUF/discussions/9
tl;dr; are you using -ngl 999 for full GPU offload? If you add -ot exps=CPU or --cpu-moe or --n-cpu-moe 50 or whatever it won't offload all layers onto GPU.
kind of you to answer @denhaide, ubergarm
I'll try to answer you over on your discussion: https://huggingface.co/ubergarm/Qwen3.5-397B-A17B-GGUF/discussions/9
tl;dr; are you using
-ngl 999for full GPU offload? If you add-ot exps=CPUor--cpu-moeor--n-cpu-moe 50or whatever it won't offload all layers onto GPU.
Nevermind, I have managed to download your IQ4-NL and, of course, on 8x boys it rolling like buttered bread, at about 50toks with -sm graph. Letβs see if it doesnβt crash anymore as it has happened with the IK4-XS quant.
I was looking for a quant compatible with mainline (I'm not using ik) and not much bigger than 128gb. Not sure if I'm reading the numbers correctly, but I see IQ4_NL (approx 130 GB) and has PPL 8.4419. AesSedai has Q4_K_M (140 GB) with PPL 7.173459 so it should be better? Or even the smaller IQ4_XS which has PPL 7.513587...
All the quants you list are mainline compatible. the My mainline IQ4_NL is an experiment to see if using those specific quantization types would run faster on Vulkan backends. Feel free to choose any of those you list depending on how much RAM+VRAM you have and how much context you want to load. PPL and KLD can give some indication to potential quantization performance relative to the full bf16 and isn't an "absolute" measure across different models and such. Have fun with the "paradox of choice" haha
Thanks for the quant. And for putting "paradox of choice" in ironic quotes.
There's no real paradox here; the availability of choices merely exposes our ignorance, and opens up another choice whether to investigate and learn to optimize the initial choice or not.
Depending on our situation and personality we may experience choice as a confrontation or a burden -- we may prefer to delegate authority.
But as long as and insofar as that delegation remains an individual choice, we are not yet reduced to abject serfdom.
a much deeper post than i expected to find here! yes one persons burdensome choice is another's special interest... but there is no free will so i won't worry about it... or will i? ;p
Then I'll share another thought of mine: For centuries we've had no clear definition of "free will" and therefore there's been only nonsense written about it.
I propose a functional definition of free will: the inability of any other person or machine to predict your future actions with 100% accuracy. By this testable metric, most of us have some degree of free will, aka unpredictability.
By that functional definition I'd agree we all have tons of free well ala unpredictability! I don't even know what I'm gonna do next ;p
Its a fun topic at times, and I enjoyed Robert Sapolsky's book "Determined" about it. I also like some advaita vedanta teachers talking about it e.g., "We have free will, but it is an illusion" hah... At some point the dualistic nature of language gets in the way of fussing about it too much hah...
Anyway cheers and hope all is well in your realm!



