Skip to content

Choose a tag to compare

@cbertucci33 cbertucci33 released this 24 Aug 12:57

1|# 2.0 release notes
2|
3|Release 2.0 is the reviewed dual-DGX-Spark deployment for the DeepSeek V4 Flash abliterated vision checkpoint. It preserves the pinned Anemll 0.1.1 runtime ABI while fixing DSpark integration, prefix-cache behavior, multimodal validation, and distributed deployment identity.
4|
5|## Highlights
6|
7|### Correct DSpark head sharing for multimodal targets
8|
9|The pinned runtime assumed the target model exposed lm_head directly. The custom multimodal wrapper keeps the language head on its unwrapped language model. Release 2.0 applies a fail-closed patch that:
10|
11|- resolves the head from the unwrapped language model with a compatible outer-wrapper fallback;
12|- verifies vocabulary-compatible head sharing;
13|- propagates the target attention backend;
14|- selects the draft quantization configuration explicitly;
15|- refuses unknown source bytes instead of patching a drifting runtime.
16|
17|### Prefix-cache replay fix
18|
19|When prefix caching skips cached prompt tokens, the DSpark sliding-attention state still needs the final draft window from the target model. Release 2.0 backports the relevant cache-manager and scheduler behavior and verifies the exact before/after source hashes.
20|
21|### Fail-closed vision layout
22|
23|Release 2.0 treats checkpoint tile metadata as authoritative. A supplied override must match it; missing metadata requires an explicit verified legacy value. Incomplete or incompatible vision-tower state stops startup rather than leaving randomly initialized or semantically inconsistent vision modules active.
24|
25|### Two-node artifact identity
26|
27|The cluster launcher resolves the image selected by each node's own environment file before launch. It refuses to start either TP rank unless both tags resolve to the same content-addressed image ID. An optional expected image ID provides an additional deployment pin.
28|
29|### Honest DSpark measurements
30|
31|The acceptance collector aggregates all matching Prometheus series and rejects:
32|
33|- counter resets;
34|- concurrent traffic contamination;
35|- non-finite or inconsistent counters;
36|- insufficient draft samples;
37|- malformed per-position acceptance shapes.
38|
39|The default 20% floor is a catastrophic-regression smoke threshold, not a performance target.
40|
41|## Public release boundary
42|
43|The repository publishes source provenance, deterministic build inputs, and validation procedures. It intentionally excludes machine-specific image IDs, hostnames, addresses, paths, logs, and deployment measurements. Every rebuilt image must be identified by its own content-addressed ID and requalified on the target environment.
44|
45|## Build and validation
46|
47|Run the deterministic local gate:
48|
49|bash 50|bash scripts/release-check.sh 51|
52|
53|Then build the overlay from the digest-pinned base resolved through SOURCE_PINS.json:
54|
55|bash 56|export DSPARK_VLLM_BASE_IMAGE="$(python3 scripts/resolve_dgx_spark_base.py)" 57|docker build \ 58| --build-arg DSPARK_VLLM_BASE_IMAGE="$DSPARK_VLLM_BASE_IMAGE" \ 59| -t anemll-dsv4-vision:0.1.1-dspark-headfix1 . 60|
61|
62|A rebuild is a new artifact and normally has a different image ID. Synchronize it across ranks, pin the resulting ID if desired, and repeat every live qualification gate before calling that rebuilt deployment verified healthy.
63|
64|## Not included
65|
66|Release 2.0 does not include the optional expanded DSpark draft-window override (VLLM_DSPARK_SLIDING_WINDOW).
67|