Dory-Beam-4B GGUF

GGUF builds of Dory-Beam-4B and Dory-Beam-4B-Accurate, for running locally with llama.cpp. Dory-Beam-4B is NVIDIA's looped Dory1.0-4B, distilled from Reflection's Beam-1.0-501B-A23B, with Beam's reasoning-effort setting. Pass reasoning_effort = low, medium or high, and it thinks 1.9โ€“4ร— less than base Dory. The Accurate variant ties base Dory on every benchmark with 1.8ร— fewer tokens. See the model repos for the method and full results.

Real time on an Apple M4 Max with the command below: base Dory (NVIDIA's Q5_K_M) and Dory-Beam-4B at low, default and high effort, on the same MATH-500 problem. Per-token speed is the same for all four, but Dory-Beam finishes in 13โ€“19 s against 53 s, because it writes 2.9โ€“4.2ร— fewer tokens.

File Size Notes
dory-beam-4b-q5_k_m.gguf 3.42 GiB Dory-Beam-4B v2, with reasoning_effort. Same per-tensor policy as NVIDIA's reference Q5_K_M: embeddings and output kept in BF16
dory-beam-4b-q8_0.gguf 3.94 GiB Dory-Beam-4B v2, standard Q8_0
dory-beam-4b-accurate-q5_k_m.gguf 3.42 GiB Dory-Beam-4B-Accurate, same policy as above
dory-beam-4b-accurate-q8_0.gguf 3.94 GiB Dory-Beam-4B-Accurate, standard Q8_0

Checksums are in SHA256SUMS. The first release's files (v1, without the effort setting) are under the v1 tag.

Run it

Dory needs NVIDIA's llama.cpp fork (ggml-org/llama.cpp#30306) until it lands upstream. Use revision 3834b4ae1ee6f63b8bf314a07dfb9c45407975b9 of the fork's dory-support branch or newer. On Apple Silicon it is about 6ร— faster than the revision pinned in NVIDIA's model card, because a fix there keeps every layer on the GPU (2 graph splits per token instead of 675). Build it with NVIDIA's instructions, fetching that revision instead. Then start the server:

./build/bin/llama-server -m dory-beam-4b-q5_k_m.gguf --alias dory-beam \
    --host 127.0.0.1 --port 8080 -ngl 999 -c 16384 -np 1 -b 512 -ub 512 \
    -t 1 --threads-batch 1 -fa on -ctk f16 -ctv f16 --no-context-shift \
    --jinja --reasoning on --temp 1.0 --top-p 0.95 --top-k 0 --min-p 0 --repeat-penalty 1 \
    --override-kv "dory.num_loops=int:2,dory.recurrent_kv_cache_mode=str:per_loop"

Open http://127.0.0.1:8080 for a chat UI, or use the OpenAI-compatible API at /v1. To set the effort per request, pass it as a chat template argument:

curl http://127.0.0.1:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
  "messages": [{"role": "user", "content": "How many positive divisors does 2024 have? Put your final answer within \\boxed{}."}],
  "chat_template_kwargs": {"reasoning_effort": "low"}}'

Or set a server-wide default with --chat-template-kwargs '{"reasoning_effort":"low"}', which also covers the chat UI. Without it, the model uses its default effort.

Always set dory.num_loops explicitly: 2 is the recommended default. The files store 4 as the default, matching NVIDIA's reference GGUF. One CPU thread and flash attention on were the fastest settings.

Speed

Decode speed on an Apple M4 Max (Metal, median of 3 runs, 16k context):

1 loop 2 loops 4 loops
Q5_K_M 66.8 tok/s 45.5 tok/s 27.5 tok/s
Q8_0 66.6 tok/s 45.4 tok/s 27.6 tok/s
NVIDIA's base Dory Q5_K_M (same settings) 64.3 tok/s 44.0 tok/s 26.1 tok/s

These were measured on v1. The architecture is unchanged, and a v2 Q5_K_M check ran at 47.7 tok/s at 2 loops. Per token, Dory-Beam is as fast as base Dory; its advantage is writing fewer tokens. On MATH-500 it averages about 1.5k tokens at the default effort and 1.0k at low, roughly 30 and 20 seconds at 2 loops on this machine.

Validation

First 10 MATH-500 problems, Q5_K_M, 2 loops, temperature 1.0, graded on the text after </think>:

Model and effort Correct Mean tokens
Dory-Beam-4B, low 10/10 680
Dory-Beam-4B, default 10/10 923
Dory-Beam-4B, high 10/10 1,065
Dory-Beam-4B-Accurate 10/10 1,199
  • Effort setting: the embedded chat template is byte-identical to the model repo's. llama-server's /apply-template confirms the effort tag reaches only the last user turn, and no tag is added by default.
  • Perplexity (an excerpt of Alice's Adventures in Wonderland, 3,072 tokens scored, 2 loops): BF16 10.36 ยฑ 0.43, Q5_K_M 10.71 ยฑ 0.45.
  • Tensors: all 507 tensor names and shapes match NVIDIA's reference GGUF. Q5_K_M uses the reference per-tensor types: 252 Q5_K, 36 Q6_K and 219 BF16.

Conversion. The original pinned converter does not accept the published checkpoint's config, so conversion/dory.py came from the fork's commit 57b70d02f084d7640d17260a179ef73616d9a438, NVIDIA's fix for published checkpoints. The converter at the recommended revision is byte-identical.

License

OpenMDW-1.1, inherited from Dory1.0-4B; a copy is in LICENSE. Base model ยฉ NVIDIA.

Downloads last month
432
GGUF
Model size
4B params
Architecture
dory
Hardware compatibility
Log In to add your hardware

5-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for ProCreations/Dory-Beam-4B-GGUF

Quantized
(1)
this model