Skip to content

About

Open Drex decision models: runtime, docs and model pages

Resources

Stars

68 stars

Watchers

0 watching

Forks

Repository files navigation

Drex decision models

Oct 14, 2026: Drex Max is out. A multimodal 27B decision model that scores 67.52 on the public Decision Index 0.4, and it reads images too. Model page · Weights · Q8_0 GGUF · Performance

Oct 13, 2026: Drex v2.0 is out. A 35B mixture-of-experts decision model that scores 61.25 on the public Decision Index 0.3.1. It also runs on Apple silicon. Model page · Apple silicon · Weights · Q8_0 GGUF · Q4_K_M GGUF

Open decision models from Nace.AI. Pass a state and named typed questions (yes/no, multiple choice or rating scale) and get a probability for every option back; nothing is generated. Drex v2.0, Drex v1.5 and Drex DLM serve the same POST /v1/systemone API as the hosted Drex API and run locally. Drex Max scores the same request format from Python (python -m drex_max), llama.cpp, Ollama, Kapitsa and MLX.

Hosted API docs · Agent skill · Discord

Models

Model Backbone Weights llama.cpp and Ollama branch License
Drex Max dense 27B, multimodal nace-ai/drex-max-v1, Q8_0 GGUF, affine Q4 drex-max-v1 Nace.AI Open RAIL-M
Drex v2.0 Qwen3.6-35B-A3B (35B mixture of experts, about 3B active) nace-ai/drex-v2.0, Q8_0 GGUF, Q4_K_M GGUF drex-v2.0 Nace.AI Open RAIL-M
Drex v1.5 MiMo-V2.6-Distill-Qwen-9B (distilled Qwen 3.5 9B) nace-ai/drex-v1.5 drex-v1.5 Nace.AI Open RAIL-M
Drex DLM Efficient-DLM-8B nace-ai/drex-dlm edlm (llama.cpp), nace-edlm (Ollama) CC BY-NC 4.0

Runners

Drex v2.0, Drex v1.5 and Drex DLM run with Python and answer the same POST /v1/systemone request. Drex Max runs with python -m drex_max. All four also run on llama.cpp and Ollama. For Drex Max those runners serve the text backbone. Drex v2.0 and Drex Max also run on Kapitsa. Drex Max also runs with MLX.

Runner Hardware Use it for
Python (serve.py) NVIDIA GPU; Apple silicon for Drex DLM The reference implementation, batched requests
Kapitsa Apple silicon, Drex v2.0 and Drex Max brew install nace-ai/tap/kapitsa. Drex v2.0 uses a Q4_K_M GGUF (setup). Drex Max Q8_0 needs 48 GB. The affine Q4 checkpoint runs on Apple silicon Macs with 24 GB of memory or more, on Kapitsa v0.2.25 or later (setup).
MLX Apple silicon, Drex Max The affine Q4 checkpoint runs on Apple silicon Macs with 24 GB of memory or more, with drex_max_mlx.py (setup).
llama.cpp fork CUDA, Metal; CPU for Drex v1.5; Metal and CPU for Drex v2.0 and Drex Max A GGUF served by llama-server, including Q8_0
Ollama fork CUDA, Metal, CPU; Metal and CPU for Drex v2.0 and Drex Max ollama create and a local daemon

The Python, llama.cpp and Ollama examples use Drex v1.5. Each model page has the exact steps, build presets and tested hardware.

Python

git clone https://github.com/nace-ai/drex-decision-models.git
cd drex-decision-models
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
hf download nace-ai/drex-v1.5 --local-dir weights/drex-v1.5
python inference.py --model weights/drex-v1.5 --request examples/request.json

To serve it instead:

python serve.py --model weights/drex-v1.5 --port 8000
curl http://127.0.0.1:8000/v1/systemone \
  -H 'Content-Type: application/json' -d @examples/request.json

GET /health returns {"status": "ok", "model": "drex-v1.5"} once the weights are loaded. The same commands run Drex v2.0 and Drex DLM if you change the model directory. Drex Max does not use serve.py. Its page has the python -m drex_max command. To accept requests longer than 16,384 tokens, set KEV_CONTEXT for those three models (Context length).

Checkpoint loading for Drex v2.0, Drex v1.5 and Drex DLM requires safetensors backbone weights and a head.pt containing only tensors and primitive metadata. Python files and custom-code mappings bundled with those checkpoints are not executed. Drex DLM uses the implementation in this repository. Drex Max loads readout.safetensors through python -m drex_max instead. Checkpoints that require other custom Python implementations are unsupported.

Kapitsa

Kapitsa v0.2.25 or later runs Drex v2.0 and Drex Max on Apple silicon. Run these commands from the root of this repository.

brew install nace-ai/tap/kapitsa

Drex v2.0 Q4_K_M:

hf download nace-ai/drex-v2.0-Q4_K_M drex-v2.0-Q4_K_M.gguf --local-dir weights/drex-v2.0-Q4_K_M

kapitsa import weights/drex-v2.0-Q4_K_M/drex-v2.0-Q4_K_M.gguf --name drex-v2.0-q4
kapitsa-drex-pointer weights/drex-v2.0-Q4_K_M/drex-v2.0-Q4_K_M.gguf \
  ~/.cache/kapitsa/models/drex-v2.0-q4/pointer.bin

kapitsa-systemone --model ~/.cache/kapitsa/models/drex-v2.0-q4 --context 65536 --cache-mb 2048

The affine Q4 checkpoint runs on Apple silicon Macs with 24 GB of memory or more (Kapitsa and MLX).

hf download nace-ai/drex-max-v1-affine-q4 --local-dir ./drex-max-v1-affine-q4
kapitsa-systemone --model ./drex-max-v1-affine-q4 --port 8000 --context 2048

In another terminal:

curl --fail-with-body http://127.0.0.1:8000/v1/systemone \
  -H 'Content-Type: application/json' \
  --data-binary @examples/request.json

Drex Max Q8_0 needs 48 GB. Setup.

MLX

MLX runs the affine Q4 checkpoint on Apple silicon. From the repository root:

python3 -m venv .venv-mlx
source .venv-mlx/bin/activate
python -m pip install -r requirements-mlx.txt
hf download nace-ai/drex-max-v1-affine-q4 --local-dir ./drex-max-v1-affine-q4
python drex_max_mlx.py --model ./drex-max-v1-affine-q4 --request examples/request.json

The command prints System One JSON with model, answers, and usage.

llama.cpp

Drex v2.0, Drex v1.5 and Drex DLM run on the llama.cpp fork. Drex Max uses branch drex-max-v1 and the commands on its model page. The example below is Drex v1.5. Add -DGGML_CUDA=ON to the first cmake command on NVIDIA, and -ngl 99 to llama-server to use the GPU.

git clone --branch drex-v2.0 --single-branch https://github.com/nace-ai/llama.cpp.git
cmake -S llama.cpp -B llama.cpp/build
cmake --build llama.cpp/build -j --target llama-server llama-quantize

python llama.cpp/convert_hf_to_gguf.py weights/drex-v1.5 --no-mtp --outtype bf16 \
  --outfile weights/drex-v1.5/drex-v1.5.gguf
llama.cpp/build/bin/llama-server -m weights/drex-v1.5/drex-v1.5.gguf \
  --embedding --pooling none -np 2 -c 32768 -b 16384 -ub 2048 --port 8000

The server takes the same request as serve.py. llama-quantize makes a Q8_0 GGUF; see the model page.

Ollama

The Nace fork of Ollama runs Drex v2.0, Drex v1.5 and Drex DLM as a decision capability and starts llama-server itself. Drex Max uses branch drex-max-v1. Its model page has those commands. Build the fork against the llama.cpp checkout above for the example here. These are the macOS commands. The Drex v1.5 page has the CPU and CUDA presets.

git clone --branch drex-v2.0 --single-branch https://github.com/nace-ai/ollama.git
cd ollama
export OLLAMA_LLAMA_CPP_SOURCE="$PWD/../llama.cpp"
cmake -S llama/server --preset darwin
cmake --build build/llama-server-darwin --target llama-server --parallel 8
GOTOOLCHAIN=auto go build -trimpath -o ollama .
cd ..

Import the GGUF, start the daemon and leave it running:

cat > weights/drex-v1.5/Modelfile <<'EOF'
FROM ./drex-v1.5.gguf
CAPABILITY decision
PARAMETER num_ctx 16384
EOF
OLLAMA_HOST=127.0.0.1:11434 \
OLLAMA_LLAMA_SERVER="$PWD/ollama/build/llama-server-darwin/bin/llama-server" ollama/ollama serve

In another terminal, import the model and send the example. Ollama needs "model" in the request, which the jq filter adds:

OLLAMA_HOST=127.0.0.1:11434 ollama/ollama create drex-v1.5 -f weights/drex-v1.5/Modelfile
jq '. + {model: "drex-v1.5"}' examples/request.json | curl http://127.0.0.1:11434/v1/systemone \
  -H 'Content-Type: application/json' -d @-

Docs

  • Request format: fields, question types, responses and batches.
  • Context length: default 16,384 tokens, up to 262,144 for Drex Max, 131,072 for Drex v1.5 and Drex v2.0, and 32,768 for Drex DLM.

License

Code: Apache-2.0, see LICENSE. Model weights: see the License column in Models.

The Python runtime includes code adapted from Kev by Jared Palmer. See NOTICE and upstream provenance.

About

Open Drex decision models: runtime, docs and model pages

Resources

Stars

68 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages