Skip to content

Engine sparkglm/atlas-20261009: copy drafts on, streamed GLM text keeps tool/user/assistant, opt-in KV shard - #39

Merged
data-angel merged 2 commits into
mainfrom
release/pin-1009-rc
Oct 9, 2026
Merged

data-angel merged 2 commits into
mainfrom
release/pin-1009-rc

Conversation

@data-angel

Copy link
Copy Markdown
Contributor

Pins Enntity/atlas sparkglm/atlas-20261009 @ e034500d (the 10-07 engine plus 9 cherry-picks; the generic ones are also on upstream/glm53-flash-20261009).

Fixes

  • Streamed GLM replies lost the words "tool", "user" and "assistant." A Qwen-only role-leak filter ran for every model and dropped any streamed delta that was just one of those words; GLM streams " tool" as one token. In the MLPerf BFCL outputs, SparkGLM's streamed text had "tool" 15 times against 156 for another GLM-5.3-Flash server ("I don't have a that can ..."). Non-streaming was fine. The filter now runs only for ChatML tokenizers.
  • Poolside tool-call headers are held until the call validates (sparkqwen/rc15-fixes 25d14fcb): streaming no longer announces calls the blocking path would drop (unregistered names, truncated calls); clears the two glm_tool_boundary test failures.

Speed

  • Copy (prompt-lookup) drafts on by default, COPY_REPLY_MATCH=16, COPY_MISS_MAX=3. On the pair, same binary on/off: full-file edits 63.0 / 61.9 -> 79.5 / 77.5 tok/s (+26%); RigMark code / prose / structured 66.5 / 36.0 / 92.6 -> 66.3 / 36.6 / 91.7; greedy text byte-identical with the verify width pinned; quality probe 40/40 arithmetic + 12/12 needles on and off.
  • KV shard, opt-in (KV_SHARD=1, start-node.sh --kv-shard): each Spark stores half the latents. At 0.89 with the carveout: 120,186 blocks (~1.92M tokens) against 67,608, idle free memory 8.4 GB on both arms, C1 decode 42.9 vs 42.0 tok/s, C2 54.5 vs 54.1, C4 69.8 vs 71.8. Cannot be combined with PREFIX_CACHE_DIR (refused at launch).

Release checks and the image tag follow in this PR.

🤖 Generated with Claude Code

data-angel and others added 2 commits October 8, 2026 19:48
…ps tool/user/assistant, opt-in KV shard

- Pin Enntity/atlas sparkglm/atlas-20261009 @ e034500d: the 10-07 engine plus
  copy (prompt-lookup) drafts beside DFlash2, the bare role-literal strip
  limited to ChatML models (streamed GLM replies lost the words "tool",
  "user" and "assistant"), Poolside tool-call headers held until the call
  validates, and sharded latent pools placed in the display carveout.
- Profiles turn copy drafts on with ATLAS_DFLASH_COPY_REPLY_MATCH=16 and
  ATLAS_DFLASH_COPY_MISS_MAX=3. On the pair: full-file edits 63 -> 79 tok/s
  (+26%), RigMark code / prose / structured unchanged (66.3 / 36.6 / 91.7
  against 66.5 / 36.0 / 92.6), greedy text byte-identical at a pinned verify
  width, quality probe 40/40 + 12/12 on and off.
- KV_SHARD=1 (start-node.sh --kv-shard, SPARKGLM_KV_SHARD) splits the KV
  latents between the Sparks: 120,186 blocks against 67,608 at 0.89 with the
  carveout, single-request decode unchanged, four at once -3%. Opt-in; it
  cannot be combined with PREFIX_CACHE_DIR.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- start.sh turns the KV shard on unless KV_SHARD=0 or PREFIX_CACHE_DIR is
  set (the disk tier cannot run beside it yet). With the display carveout at
  0.91 the pool is 163,680 blocks (~2.62M tokens, 1.36M unsplit); a four-
  session 204K fill passes 12/12 and 8/8 with rank 0 at 4.5 GB free at worst.
- install/profiles/4x1m.json: the 4x512k profile with --max-seq-len=1048576,
  the model's full window, four requests sharing one pool. Default profile.
  A 925,096-token needle prompt is found (prefill 486 s, ~1,900 tok/s; 5.05 GB
  free at worst).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@data-angel

Copy link
Copy Markdown
Contributor Author

Release checks, image bcde3c97e22c (engine e034500d; launcher defaults: KV shard on, 4x1m, 0.91, carveout, no disk tier):

  • logprob hash a26c76e6ac39 (reproducible). It differs from 8c75d2886794 because the shard merges split attention in FP32: over 48,875 prompt tokens the sum moves -38741.28 -> -38741.50. With the shard off (pin9 check, same engine) the hash is 8c75d2886794.
  • pool with the shard at 0.91 + carveout (clean boot): 163,680 blocks, ~2.62M tokens (1.36M unsplit); four-session 204K fill 12/12 + 8/8, rank 0 at 4.53 GB free at worst, rank 1 5.50 GB.
  • 4x1m: a 925,096-token needle prompt answered correctly (prefill 486 s), 5.05 GB free at worst.
  • copy drafts: edits +26%, RigMark unchanged, byte-identical at a pinned width, quality probe 40/40 + 12/12 on and off.
  • pin9 (shard off): vision 6/6, decode C1 ~43 tok/s, prefill 32K 12.36 s / 64K 23.65 s, 0 errors.
  • tool arguments keep string types; streamed text keeps "tool" / "user".
  • image build + start at 10 jobs: 180 s.
    Image pushed to GHCR.

@data-angel
data-angel merged commit 0861f6b into main Oct 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant