Repository navigation
Releases
0.94
0.94 release notes
Pictures, documents and voice
- Pictures are on by default. Paste, drop, screenshot or photograph a picture into the chat, or send one through
the API. On one graphics card they are read on the CPU (no VRAM taken from the model); with multi-GPU on, on the
second card (about 0.4 s a picture). On PCs with less than about 170 GB of RAM the picture reader on the CPU starts
with the first picture (about 7 s once, longer while the model is writing) and stops after 10 idle minutes, so its
~4 GB of RAM is free the rest of the time. If the picture reader cannot start (a broken PyTorch, say), the model
still starts and answers text.Disable Pictures.batturns pictures off. - Chats with pictures can reuse earlier turns instead of re-reading the whole conversation, when the app sends
the pictures back unchanged (it took about a minute a turn in a long agent session). A changed picture is always read
again. - Documents: attach PDF, Word, Excel, PowerPoint, HTML, CSV or text files; the chat shows how many tokens they
are and how long the first read takes. Agents can send document blocks too (Claude Code reading a PDF). - Voice (optional,
Enable Voice.bat): push-to-talk dictation, read-aloud on every answer, and a hands-free talk
mode you can interrupt. Runs on the CPU's efficiency cores or a second card, never on the model's card.
/v1/audio/transcriptionsand/v1/audio/speechfor apps.
Everyday use
- The page opens at once and shows the model loading, with an estimate from your last start.
- Pause / Resume frees the RAM and the graphics card (for a game) and loads again on your next message; optional
auto-pause when a game takes the card. - Chat history (search, pins, rename, export) when you turn on "Save chats in this browser".
- Use it from your phone: one switch sets a key, shows a QR code, and offers the firewall rule; the page can be
added to your home screen. - Downloads you can leave alone: the PC stays awake, stalled downloads restart, one progress line, a notification
when done; a drive check before the big download (free space, drive type, page file, time estimate). - Chat modes (Quick / Think / Code / Write), a "Connect an app" card with copy-ready settings, and a health card with
fixes for common Windows problems.
For coding agents
- Claude Code: its small background calls (titles, command checks, the quota check) are answered quickly and
never push your real request back; tool search keeps hidden tools out of the prompt; WebSearch works when you set a
search provider (off by default). - A cancelled request (Esc) no longer throws the conversation away - the next message continues where it was
instead of re-reading everything. - Loop guard (on by default): when an agent makes the same tool call 4 times in a row, the model gets one short
note to try something else or stop."loop_guard": falsein the run config turns it off. - Structured output and tool controls now work on all three APIs; long reads send keep-alive pings so agents do not
time out;/v1/embeddingsand/v1/rerank(optional), stored Responses withprevious_response_id, and the small
endpoints agents ask for (/tokenize, token counts, a Codex model catalog).
Speed
- Writing is about 5% faster at the default sampling (temperature 1, top-p 0.95): 41.3 vs 0.93's 39.2 tok/s on
UD-IQ2_XXS at 192 GB, and 41.7 vs 40.8 greedy, - Long prompts are read faster: a fresh 60K-token prompt at 811 vs 0.93's 747 tok/s, 30K at 860 vs 758, 7K at 551
short chat prompts read as before. The model's later layers now read only
the last 128 tokens of a prompt, as DeepSeek's own design does. This changes the output slightly but not its quality: our
7-task agent test scores the same with it on and off, and short and long prompts agree with DeepSeek's own model as
often as before. Each conversation keeps its own window, so a short request after a long one is read normally.
STRATA_ENC_BOUND=0turns it off. - The drafter guesses better:
- drafts now stop when the product of the drafter's confidences falls below 0.25 (it used to stop at the first
guess under 0.6): +6.5% writing speed at temperature 1 in agent sessions, the same at greedy; - it keeps the experts the 1017 model's drafter uses most: 112 / 80 / 48 per block on cards of 22 GB or more,
96 / 64 / 32 on smaller cards and on PCs with less than 80 GB of RAM. On 22 GB cards it accepts as many guesses
as keeping all 128 experts, in less VRAM than all 128 (a little more than 0.93's 64 per block); below that it
uses the same VRAM as 0.93; - new installs get a slightly better drafter (the same size, its experts shrunk with an importance matrix): +0.6% of
its guesses accepted at greedy, +0.2-0.3% at temperature 1. See "Updating from 0.93" for existing installs.
The first two are in the writing figure above, which was measured with 0.93's drafter (what an update keeps); the
new drafter adds its small gain on top for new installs.
- drafts now stop when the product of the drafter's confidences falls below 0.25 (it used to stop at the first
- The first answer after a start comes about 2 s sooner: the drafter file is read into memory while the model
loads. - Exact routing for answers (opt-in):
STRATA_ANSWER_ROUTE_BIAS=0keeps the usual route bias while the model
thinks and routes exactly in the answer after it (another value sets another bias there). Off by default: it cost
10-13% of writing speed in agent sessions, and its quality gain is not measured yet.
Security and privacy
- The server refuses to listen on your network without an API key (it used to warn);
"allow_no_key": true
keeps the old behaviour on a network you trust. - Picture URLs are never fetched from inside your PC or home network (
STRATA_IMAGE_FETCH_PRIVATE=1allows it).
The check covers the address each connection really reaches, so a web name that changes its answer (DNS
rebinding) cannot get around it. Web fetch has the same check. - Pictures by file path are read only up to 32 MiB. A server that listens beyond this PC (the phone page, a LAN)
no longer reads them at all, unless"image_local_files": trueis in the run config; an app on your network should
send the picture itself (a data: URL) instead. - Documents: an Office file that would unpack to a huge size (a "zip bomb") is refused, and the document reader
runs with a 2 GB memory limit and a cap on the text it returns. Web fetch reads PDFs in that same reader, not
inside the server. - Patterns with a time limit: tool search and JSON-schema
patternchecks stop after a short time, so a pattern
that never finishes cannot freeze the server (one that runs out of time counts as no match). - Voice: the speech helpers refuse requests from other web sites and take only the server's own.
- No framing: other web sites cannot show the chat page or the request monitor inside a frame to trick a click.
- Hugging Face usage reports are off in every launcher and download script.
- Pictures are decoded only as JPEG, PNG, GIF, BMP or WebP (TIFF and AVIF no longer open), and Pillow is 13.0.0 on
Python 3.11 and newer: 0.93's Pillow 12.3.0 has published advisories reachable through pictures. Python 3.10 keeps
12.3.0 with the format list. - certifi 2026.10.23: downloads no longer trust a certificate authority whose keys were compromised.
- An update whose package step fails (offline, for example) now starts with the packages already installed and
says so, instead of stopping; the next start tries again. - These change what worked in 0.93: the API-key refusal, the picture URL check, and pictures by file path on a
server that listens on your network.
Models
- New downloads of UD-Q2_K_XL get Unsloth's re-made file (the same quality in our tests); every other file was
already their latest.
Updating from 0.93
- Update as usual (
git pullorUPDATE.bat, or unpack the new ZIP), then double-clickStart DeepSeek.bat. The
first start:- updates the Python packages;
- asks to download the 0.94 engine (under 1 GB);
- asks about the picture reader (0.97 GB, plus PyTorch 124 MB). If you say N it starts text-only, but the question
comes back at every start until you runDisable Pictures.bat; - keeps your drafter. The slightly better one is optional:
setup-ds41-models.bat drafter-imxmakes it (it
downloads 7.9 GB once). If the full-size drafter files are still in your model folder, the first start makes it
from them, with no download; - leaves your model files as they are.
- A ZIP copy: keep your
ds41-paths.bat(copy it back after unpacking), or enter your model folder again when asked.
Fixed
- Speculative sampling is now exact when n-gram lookup and sampled drafts mix (it slightly changed the output
distribution at temperature > 0). - Tool calls: a stray word where the model writes the tool-call marker no longer turns a call into plain answer
text (which ended an agent's run). - Tool calls: parameters are read by the tool's schema, so a number that may also be empty arrives as a number,
and a number in a text parameter stays text. - Streamed tool calls never carry
"name": nullor an emptytool_callslist (OpenCode reportedly failed on
them). - A client that closes the connection right after an answer's last byte no longer has that answer marked as
disconnected. - Windows handle leak: the engine no longer leaks a Windows handle for each short-lived reader thread (7,596 ->
629 handles in a test session). - GPU faults: a GPU fault now ends the engine, and the next request starts a fresh one. Before, every later
request failed until a restart by hand. - GGUF files without
engram.compressed_vocab_size(ISTA's GSQ-RCO...
0.93
Delta Inference Engine 0.93
New: a model picker at first start, and a Setup tab. The first start now asks which model you want and offers the one that suits your RAM, so nobody has to read a table before a 300 GB download. The Setup tab in the chat page changes the model and the settings without a batch file or a text editor.
New: the default from 128 GB of RAM up is Unsloth's UD-IQ2_XXS. At 192 GB it writes about as fast as the ds4 Q2 GGUF, and at 128 GB about 5% slower (34.0 vs 35.9 tok/s). It agrees with DeepSeek's own model more often and gets more of the hard questions right, from a 65 GB smaller download. The first start offers it on 120 GB or more. ds4 Q2 stays one answer away.
More models, all measured the same way. Unsloth's UD-IQ1_S, UD-IQ2_XXS, UD-Q2_K_XL and UD-IQ3_XXS each run at full speed for their size. Each one needed its own work: faster CPU kernels for the 1-bit files, the Q5_K Engram tables read as they are, and memory settings per model.
Writing speed in tok/s on an RTX 3090, greedy, and agreement with DeepSeek's own model at the settings that ship:
| Model | Size | 192 GB | 128 GB | 96 GB | 64 GB | General | Code + maths | Agentic |
|---|---|---|---|---|---|---|---|---|
| Unsloth UD-IQ2_XXS | 301 GB | 41 | 34.0 | 29.3 | 21.0 | 91.1% | 94.5% | 95.9% |
| ds4 Q2 | 366 GB | 40.7 | 35.9 | 27 | 20 | 89.9% | 93.1% | 95.1% |
| Unsloth UD-IQ1_S | 233 GB | 41.0 | 40.6 | 36.5 | 30.6 | 89.1% | 91.5% | 95.3% |
| Unsloth UD-Q2_K_XL | 335 GB | 31.3 | 26.6 | 22.9 | 15.2 | 92.5% | 95.3% | 97.0% |
| Unsloth UD-IQ3_XXS | 395 GB + the default | 28.2 | 22.8 | 18.3 | 11.7 | 92.7% | 95.9% | 97.4% |
At the default sampling (temperature 1, top-p 0.95) UD-IQ2_XXS writes 39.7 tok/s and ds4 Q2 40.3.
On 99 hard questions, greedy: UD-IQ2_XXS 57, ds4 Q2 52, DeepSeek's API 59, Flash-Next 44. The method is in BENCHMARKS.md.
New: 64 and 96 GB of RAM are supported. Under about 110 GB the first start offers UD-IQ1_S. The launcher's memory reserve, SSD read-ahead and prompt reading were all tuned for these PCs. New prompts take longer there: about 4.3 s for 180 tokens at 96 GB and 8.3 s at 64 GB.
Sampling is faster. The drafter's guesses are now sampled instead of taken as its top pick, which cut the slowdown at the default sampling from about 12% to about 1% on ds4 Q2 and 3% on UD-IQ2_XXS. The answers' distribution is unchanged.
New: a second GPU. A Multi-GPU switch on the Setup tab runs a helper on a second card of 8 GB or more. With an RTX 3060 beside the 3090 it adds about 7% writing speed. It does not split the model across cards, so for two or more big cards use Project Maya.
New: EXL3 2.5 bpw as an option. It is in Choose Model.bat, for 192 GB of RAM and an internal NVMe, and its GPU kernel is about twice as fast as the first version. UD-Q2_K_XL agrees more and writes faster, so prefer that one.
The route bias is 0.28 on every PC. It was tested at 0.10, which costs about 18% of writing speed at 192 GB and more on smaller PCs. The agreement numbers above are at 0.28.
Reading long prompts. On UD-IQ2_XXS, long prompts read at up to 740 tok/s at 192 GB and 600 at 128 GB (at ~64K tokens).
The engine is now built in public. The release zips come from .github/workflows/release.yml on GitHub's Windows runners, so anyone can read how they were made. Each zip has a build attestation:
gh attestation verify build-ds41-portable.zip --repo musicurgy/delta-inference-engine
Fixed and changed:
- Tool calls that a low-bit model spells oddly are now read as calls, not text.
- A turn cut off inside a tool call no longer sends raw tool-call text.
- A
</think>the model writes in prose no longer ends the reasoning. - Long contexts past 65,535 tokens are padded correctly.
- A failed image encoder no longer stops the model.
- A blank replayed reasoning no longer breaks the cached prompt.
- Streamed replies are sent straight away instead of waiting in the network buffer.
- The server no longer misses a queued request's wake-up.
- The engine survives a long pause between turns (a CUDA graph fix from llama.cpp).
- UD-IQ3_XXS no longer runs out of memory on its first prompt.
- Short prompts read about 40% faster on 192 GB PCs, and turns of 64 or more new tokens take the faster path.
- The README now shows a Windows Defender exclusion for the model folder and the engine: about 20% faster random reads from the model drive, which helps most on 64 and 96 GB PCs.
If you already have UD-IQ1_S: Unsloth re-made these files on 10-28, and the new ones agree 1.3-1.6 points more at the same size. Your older files keep working. To get the new ones, delete files 1 to 4 in models\unsloth\UD-IQ1_S with their .ok files, then pick the download in Choose Model.bat. File 5 is the same in both, so keep it.
Upgrading from 0.92: git pull in the folder (or download the new ZIP and unpack it over the old one), then double-click Start DeepSeek.bat. It offers this release's engine by itself. Your model files stay as they are.
SHA-256 checksums are in SHA256SUMS.txt. The zips include NVIDIA CUDA runtime libraries (cudart, cublas, cublasLt), redistributed under the NVIDIA CUDA Toolkit EULA.
Which zip? Almost every PC wants build-ds41-portable.zip (any CPU with AVX2: Intel 2013+, every AMD Ryzen). build-ds41-compat-avx.zip is for Sandy / Ivy Bridge, build-ds41-compat.zip for anything older. You only need one if you set up by hand: download the source code (or git pull) and double-click Start DeepSeek.bat, and it fetches the right engine for your CPU by itself.
0.92
Delta Inference Engine 0.92
New: pictures (off by default). Double-click Enable Pictures.bat (or set DS41_VISION=cpu) and restart, then
attach a picture in the chat page (or paste or drop it), or send one through the OpenAI or Anthropic API, and DeepSeek
sees it, with DeepSeek's own vision tower. The encoder runs on the CPU, so it takes no VRAM: a 1024x701 photo encodes
in about 8 s. Turning it on downloads the vision file (0.97 GB, from the default model's repository, SHA-256-checked)
and PyTorch's CPU build (124 MB).
Fixed: the model setup failed at its last step with the prebuilt engine. The drafter step needed a Python package
(gguf) that only a source build brought along, so a normal install stopped with "No module named 'gguf'" after the
366 GB download, and the server never started. The package is now installed with the others; a .venv from an
earlier version gets it at the next start. The drafter is also built before the big download now, so a problem there
shows up in minutes, not hours.
Folders with any name. The engine could not open its files when the project or model folder's path had a letter
outside A-Z: a Windows user name with an accent (C:\Users\José\...), or one in Cyrillic, Thai, Chinese and so on.
It now opens them (Windows 10 version 1903 or newer). If your install is in such a folder, Start DeepSeek.bat
offers this release's engine by itself. Other installs keep working with 0.91's engine and need no new download.
The engine's output is unchanged: its logits on a 4K-token prompt are identical to 0.91's.
Clearer before anything is downloaded:
- A GTX 10 series card (or older) is named as too old: CUDA 13 runs on RTX 20 / GTX 16 and newer. Before, the
launcher only asked for a newer driver, which does not help. - Under 12 GB of VRAM, or under 128 GB of RAM, a note says so before the download offer.
- Under 14 GB of VRAM the drafter is not set up, since the launcher does not use it there. If only the drafter is
missing, answering N starts DeepSeek without it.
Fixed and changed:
- A cancelled turn keeps the conversation's cache. When an agent tool stops a turn and sends the conversation again,
DeepSeek no longer reads all of it from the start: a 9,566-token conversation took 16.8 s before, now 0.5 s. (From
upstream Xolotl.) - A folder whose name has parentheses, such as
delta-inference-engine-main (1)from a second ZIP download, stopped
Start DeepSeek.batwith "... was unexpected at this time." START-HERE.bat,SETUP.batandUPDATE.batwere upstream Strata's and set up a different model. They now start
DeepSeek, openChoose Model.bat, and update this project.- The engine download is checked against the release's
SHA256SUMS.txtbefore it is unpacked. - The port is a setting (
DS41_PORTinds41-paths.bat). A port that is already in use, and an engine that stops
while starting, now get a plain message instead of a Python traceback. - The chat page is Delta's: name, logo, and the model that is actually loaded (a GSQ or Unsloth pick showed as the
default before).
New: Start DeepSeek (debug).bat. If something goes wrong, run this instead of Start DeepSeek.bat. It checks
the PC and the install, runs DeepSeek in a second window with all of its output saved, and when you close that window
it packs everything into one zip (logs\debug-<time>.zip) to attach to an issue. The zip holds no prompts or
answers, and your Windows user name is replaced by <user>.
Tested for this release:
- A full install on a second PC (GTX 1070, Japanese Windows), which found the drafter problem above.
- An hour of mixed requests: tool calls, JSON schema, parallel and cancelled requests, new long documents and a
growing conversation. 400 requests, no failures, memory flat after the conversation cache filled. - A ZIP download in a folder with spaces and parentheses, a folder with an accented name, an upgrade from 0.9, and the
debug launcher on a broken install, closed with Ctrl+C and closed by its window.
Measured (see the README): with 128 GB of RAM, Unsloth's UD-IQ1_S writes at 37.5 tok/s against 33 for the default,
at 2 points less agreement with DeepSeek, so it is the pick for 128 GB. It also reads long prompts about 13% faster.
Upgrading from 0.91: git pull in the folder (or download the new ZIP and unpack it over the old one), then
double-click Start DeepSeek.bat. It installs what the new version needs first. Your model files stay as they are.
Downloads: Start DeepSeek.bat picks the right zip for your CPU by itself.
| File | CPU |
|---|---|
build-ds41-portable.zip |
AVX2: Intel 2013+ (Haswell on), every AMD Ryzen / Threadripper / EPYC |
build-ds41-compat-avx.zip |
AVX without AVX2 (Sandy / Ivy Bridge) |
build-ds41-compat.zip |
anything x86-64 with SSE4.2 (slower) |
SHA-256 checksums are in SHA256SUMS.txt. The zips include NVIDIA CUDA runtime libraries (cudart, cublas,
cublasLt), redistributed under the NVIDIA CUDA Toolkit EULA.
Delta Inference Engine v0.91
Delta Inference Engine 0.91
One model download instead of two. The engine now reads DeepSeek's Engram tables straight from
nazeshinjite's ds4 Q2 GGUF, which carries
them inline, byte for byte DeepSeek's own. Setup no longer downloads DeepSeek's two Engram shards or makes a slimmed
copy:
- ~375 GB to download (was ~565), ~385 GB free needed while it runs, ~371 GB kept.
- Same output: the Engram rows, and the model's logits on a 4K-token prompt, are identical to reading DeepSeek's
shards. Prompt reading is a few percent faster (one disk read per Engram row group instead of two). - An install from 0.9 (the slimmed GGUF + the Engram shards) keeps working as it is.
The three most-downloaded quants of 1017 all run. Besides nazeshinjite's ds4 Q2 (the default) and ISTA-DASLab's
GSQ-RCO, the engine now reads Unsloth's GGUFs as they
are: UD-IQ1_S up to UD-Q8_K_XL (llama.cpp's own layout: split files, the Engram tables in one tensor, IQ4_NL or
DeepSeek's exact FP8). All nine load, and every expert type they use is checked against ggml's reference on real
weights. Measured on an RTX 3090 + 192 GB:
| Download | Writing speed | Agreement with DeepSeek (general / code+maths) | |
|---|---|---|---|
| ds4 Q2 (default) | 366 GB | ~41 tok/s | 91.5% / 93.0% |
| Unsloth UD-IQ1_S | 233 GB, nothing else needed | 41 tok/s | 89.3% / 91.1% |
| GSQ IQ2_XS | 159 GB + the default | 38 tok/s | 90.0% / 92.9% |
The bigger Unsloth quants are not measured yet; once their experts outgrow the RAM they write slower.
New: Choose Model.bat. It lists the models you have and the ones you can add, with size, speed and agreement:
it builds a GSQ quant from ISTA-DASLab's files, or downloads an Unsloth quant (every file SHA-256-checked). The
launcher loads your pick. To use only an Unsloth quant (no 366 GB default): answer N when Start DeepSeek.bat offers
the default model's download, run Choose Model.bat, then start again.
Also:
- The drafter setup step works with the engines for older CPUs too.
- A DSpark drafter fix from upstream Xolotl (be8f039): a short final prompt batch seeded the drafter with empty rows
(output was exact; acceptance was lower). - The engine zips now include
LICENSE.txtandTHIRD-PARTY-NOTICES.txt.
Upgrading from 0.9: pull the new code, then double-click Start DeepSeek.bat. It sees that the 0.9 engine is out
of date and offers to download this release's engine.
Downloads: Start DeepSeek.bat picks the right zip for your CPU by itself.
| File | CPU |
|---|---|
build-ds41-portable.zip |
AVX2: Intel 2013+ (Haswell on), every AMD Ryzen / Threadripper / EPYC |
build-ds41-compat-avx.zip |
AVX without AVX2 (Sandy / Ivy Bridge) |
build-ds41-compat.zip |
anything x86-64 with SSE4.2 (slower) |
SHA-256 checksums are in SHA256SUMS.txt. The zips include NVIDIA CUDA runtime libraries (cudart, cublas,
cublasLt), redistributed under the NVIDIA CUDA Toolkit EULA.
Delta Inference Engine v0.9
DeepSeek-V4.1-Flash-1017 on one NVIDIA GPU, natively on Windows.
You don't need to download these by hand: Start DeepSeek.bat picks the right engine for your CPU and downloads it on the first start.
| File | For |
|---|---|
build-ds41-portable.zip |
CPUs with AVX2 - Intel 2013+ (Haswell), any AMD Ryzen / Threadripper / EPYC. Almost everyone. |
build-ds41-compat-avx.zip |
CPUs with AVX but not AVX2 (Sandy / Ivy Bridge Xeons) |
build-ds41-compat.zip |
Older CPUs (SSE4.2 only) |
All three: NVIDIA RTX 20 / 30 / 40 / 50, driver 580 or newer. SHA256SUMS.txt has the checksums.
Measured on an RTX 3090 + 192 GB RAM: ~41 tok/s writing, ~610 tok/s reading long prompts. 12 GB cards and up, 128 GB RAM and up - see the README.