Instructions to use darthcrawl/EVA-Qwen2.5-32B-v0.2-mlx-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use darthcrawl/EVA-Qwen2.5-32B-v0.2-mlx-4bit with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("darthcrawl/EVA-Qwen2.5-32B-v0.2-mlx-4bit") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- MLX LM
How to use darthcrawl/EVA-Qwen2.5-32B-v0.2-mlx-4bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "darthcrawl/EVA-Qwen2.5-32B-v0.2-mlx-4bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "darthcrawl/EVA-Qwen2.5-32B-v0.2-mlx-4bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "darthcrawl/EVA-Qwen2.5-32B-v0.2-mlx-4bit", "messages": [ {"role": "user", "content": "Hello"} ] }' - Atomic Chat
EVA-Qwen2.5-32B-v0.2-mlx-4bit
MLX 4-bit quant of EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2. Qwen2.5-32B creative-writing finetune. Disk: ~17 GB. Active memory: ~19 GB plus KV cache.
Quantization
mlx_lm.convert --hf-path EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2 \
--mlx-path ./EVA-Qwen2.5-32B-v0.2-mlx-4bit -q --q-bits 4
REQUIRED: EOS patch before serving
The published EVA finetune ships generation_config.json with eos_token_id: 151643 (single-int, <|endoftext|>) but emits ChatML turn boundaries that use <|im_end|> (151645). Without patching, the server doesn't recognize turn ends and <|im_end|> leaks into responses as raw text.
After conversion, fix it:
python3 -c "
import json
p = './EVA-Qwen2.5-32B-v0.2-mlx-4bit/generation_config.json'
g = json.load(open(p))
g['eos_token_id'] = [151643, 151645]
json.dump(g, open(p, 'w'), indent=2)
"
This quant has the patch applied.
Recommended sampling (RP)
temperature: 1.0
min_p: 0.05
repetition_penalty: 1.05
repetition_context_size: 2048
EVA's natural temperature is higher than typical (training data is creative-writing biased). Drop to 0.9 if outputs ramble or get incoherent; raise to 1.1 if too rigid.
Speculative decoding
No public Qwen2.5-3B (or smaller) draft model with matching tokenizer is widely deployed in MLX format. Spec-dec disabled by default. If you find one, it should drop in cleanly.
Known mlx_lm.server bugs
xtc_special_tokensflatten bug crashes XTC sampling on Qwen2.5 tokenizers. The server passestokenizer.encode("\n")(a list) inside a list withtokenizer.eos_token_id(an int), producing a mixed-rank index that fails MLX. Patch in your launcher (or wait for upstream fix). Until then, do not enable XTC with this model.seedparameter silently ignored in mlx-lm 0.31.3.- Prompt-cache KV grows unbounded; set
--prompt-cache-size 12or lower.
EVA's known wallowing tendency
EVA-Qwen2.5 has a documented tendency to "wallow" in emotional beats and not progress narrative. Counter via Author's Note pinned at depth 2:
[{{char}} advances the scene each turn with concrete decisions or actions. Avoid looping back to feelings or topics already established.]
License
Apache-2.0 from base.
- Downloads last month
- 36
4-bit