[Release] Drex Max v1: Open-weight 27B multimodal decision model, 262K context, local inference on Apple Silicon

hey llamas, we open-sourced Drex-Max v1 at Nace.AI. it's a dense 27B multimodal decision model, released under Open RAIL-M. the main difference from a normal LLM is that it doesn't generate anything. no tokens, no JSON to parse. you give it a context state (text, JSON, high-res images) plus one or more named questions, and a 255-way readout head returns probabilities over all the candidate answers in a single forward pass. It runs on NVIDIA GPUs through Python, and on Apple Silicon (Metal) and CPU through our llama.cpp and Ollama forks. latency is around 400ms. Architecture notes no decode loop. one forward pass, and the last hidden state maps straight to probabilities for up to 255 options (via readout.safetensors ). 64-layer hybrid backbone. 48 Gated DeltaNet linear-attention layers (causal, left to right) and 16 full-attention layers, one every 4th layer. the full-attention layers are bidirectional, so every token can see the whole context. context. defaults to 16,384 tokens. you can push it to 262,144 with DREX_MAX_CONTEXT=N or --max-length N . vision. Up to 4,194,304 pixels per image. each image gets encoded once and is shared across every question in the batch. Benchmarks on structured decision tasks it beats our previous, larger Drex v2.0 (35B): Model Params Public Decision Index 0.4 Raw Tools Retrieval Language Knowledge & Reasoning Drex-Max v1 27B 67.52 75.4 81.9 68.8 72.2 57.1 Drex v2.0 35B 61.25 70.5 76.5 63.0 65.3 47.9 Jev 1.13.0 — 57.96 68.5 75.1 55.4 59.2 53.9 Decision Bench v4: 94.30% (1,010/1,071) JevBench: 92.2% (213/231) Public Vision Index is 73.92 overall: InfographicVQA 97.3, KIE (CORD+FUNSD) 92.4, Winoground 85.0, Mind2Web 84.2, CharXiv 80.5, CV-Bench 77.4, RealWorldQA 72.3. Hardware Apple Silicon (Metal / GGUF): the Q8_0 GGUF is ~27.25 GB. On an M5 Pro with 48 GB unified memory we get ~400ms per decision, and the probabilities stay within 0.02 of unquantized bf16 on an H100. CUDA, bf16: ~48.6 GiB VRAM (tested on an H100 80GB). CUDA, 8-bit ( --8bit ): ~25.9 GiB VRAM (tested on an L40S 48GB), within 0.03 of bf16. Running it 1. Python SDK (CUDA, with vision) hf download nace-ai/drex-max-v1 --local-dir weights/drex-max-v1 pip install -r models/drex-max-v1/requirements.txt from drex_max.model import DecisionModel, answer model = DecisionModel("weights/drex-max-v1") # add --8bit for ~26GB VRAM mode question = { "type": "choice", "instructions": "Which team should handle this ticket?", "criteria": { "billing": "Payments, charges, and refunds", "technical": "Bugs and outages", "other": "Anything else" } } row = { "state": {"ticket": "I was charged twice for the same order. Please refund the extra payment."}, "question": question, # "images": ["receipt.jpg"] # Supports up to 4.2M pixels } print(answer(question, model.predict([row])[0])) output looks like this: { "answers": { "team": { "type": "choice", "choice": "billing", "confidence": 0.9982, "probabilities": { "billing": 0.9988, "technical": 0.0003, "other": 0.0009 } } } } 2. llama.cpp fork (Apple Silicon / Metal) the text backbone builds on Metal and serves a /v1/systemone endpoint: git clone --branch drex-max-v1 --single-branch github.com/nace-ai/llama.cpp.git cmake -S llama.cpp -B llama.cpp/build cmake --build llama.cpp/build -j --target llama-server # Pre-quantized GGUF or converted Q8_0 llama.cpp/build/bin/llama-server -m weights/drex-max-v1-Q8_0.gguf \ -np 1 -c 16384 -b 16384 -ub 16384 --no-warmup --port 8000 heads up: since Drex treats the whole prompt as one non-causal state, -b and -ub need to match -c . 3. Ollama fork FROM ./drex-max-v1-Q8_0.gguf CAPABILITY decision PARAMETER num_ctx 16384 PARAMETER num_gpu 40 start the daemon from the drex-max-v1 Ollama branch and POST to /v1/systemone . Links weights + readout safetensors: nace-ai/drex-max-v1 GGUF (Q8_0): nace-ai/drex-max-v1-Q8_0 llama.cpp / Ollama forks: drex-max-v1 branch on the Nace.AI repos license: Nace.AI Open RAIL-M we built this for low-latency routing, agentic tool selection, and multimodal UI automation (Mind2Web-style tasks). because there's no generation step, you don't get the usual non-deterministic outputs or broken JSON you have to repair. happy to answer questions:)

参与讨论