Skip to content

minimax_m3: a CUDA backend for MiniMax-M3.1-Flash at TP over GB10s, from the release's own formats - #1388

Merged
ashhart merged 6 commits into
ashhart:mainfrom
BobClawblaw:minimax-m3-cuda
Oct 31, 2026
Merged

ashhart merged 6 commits into
ashhart:mainfrom
BobClawblaw:minimax-m3-cuda

Conversation

@BobClawblaw

@BobClawblaw BobClawblaw commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What this changes

A CUDA backend for the minimax_m3 family: MiniMax-M3.1-Flash at tensor parallel over GB10s, served from a published
EXL3 pack read as published, through the lane core (kept prompt states, the release's DSpark drafts, the keyed sampler,
tools, structured output, images). It stacks on #1235 (the Metal backend, whose config, tokenizer handling, chat template
and tool markup it shares), now on its head 5555d1550.

Rebased onto #1235's 5555d1550 (which is on main e4cc630f5). Two registration lines met main's new entries and
keep both: the contract runner creates the plan_finish group beside main's NVFP4 fact group (whose create now takes
the SM list), and nvcc 13.2's records list MiniMax's after main's NVFP4 fact records. Main has since moved to
dd0a9cc5e; the branch merges with it without conflicts, and was left on the base every check ran on.

On the previous rebase (onto #1235's 505cdd534) the CUDA backend's files were unchanged; two things moved to fit:

  • The engine's build line moved to main's new zig/build/cuda_engines.zig, beside GLM's (cuda.zig is now 549 lines).
  • The family's config reader is minimax_m3: serve MiniMax-M3.1-Flash (428B-A23B MoE, images) natively on Metal #1235's single reader: the release's minimax_m3_vl form with the language model under
    text_config, which is the form the EXL3 pack publishes. This PR's fallback for the flat form, and its test, are gone.

On two GB10s at TP=2, every row's logits (the 2,406 teacher-forced rows below, both ranks) are byte-identical between
fe51fbd1e, 3ea3e6e55 (this PR's previous heads) and this head, and identical to the rows the KL below was computed from.

Three commits:

  1. cuda exl3: SwiGLU-OAI in the grouped experts. act_mode 2 in tf_exl3_plan_finish (the shared grouped
    experts' gate/up epilogue): (clamp(up) + 1) g sigmoid(alpha g), g = min(gate, limit), in transformers' bf16 steps,
    with alpha appended to the stage arguments. Grouped refuses mode 2 without a positive clamp and alpha, and
    Experts.run (the other route) refuses it outright. The kernel's body moves into exl3_plan.cuh unchanged (every
    exl3_experts symbol's SASS identical), main's kernel stays in contract_controls.cu as the contract's baseline, and
    contract_exl3_finish.zig registers it (below).
  2. kernel contract: the runner's two embedded images in one struct (same bytes), so contract_tests.zig stays under
    the lean limit with the two registrations this PR adds.
  3. minimax_m3: the CUDA backend. The family's loader, forward, engine, lanes and glue kernels (in the family's
    folder), on Mia-AiLab/MiniMax-M3.1-Flash-EXL3-EAQ-v1-3.06-bpw
    at c33e7a6619f0f12ac99098e07ec5e56acb7eeda9. Admitted only as it was run: GB10 (sm_121) at two ranks; any other
    GPU is refused (MiniMaxM3RequiresSm121), and so is one rank or any other world (MiniMaxM3RequiresTwoRanks). The
    tower's memory is sized from the checkpoint's tower tensors plus its scratch at the largest image.

The checkpoint (lossy, third party)

Two GB10s do not hold the release (its routed experts alone are 216 GiB of NVFP4), so this serves the EXL3 pack the
review suggested, as published: exllamav3 1.6.1, mul1; attention 6 bits, dense and shared MLPs 5, routed experts 3,
head 8; the indexer fp16, the router fp32, the DSpark drafter and the tower copied from the release byte for byte. It
is a lossy quantization by a third party, not MiniMax's weights
; its fidelity against the release is measured below.
No conversion ships: the loader reads the pack's own tensors (config.json under text_config, the trellis, markers and
scales), cut to each rank at 128-column blocks, and refuses anything it does not read as stored. The fp16 indexer loads
as bf16 exactly (each value is a dequantized e4m3 times a power of two; the loader refuses one bf16 does not hold). The
release's own MXFP8/NVFP4 tensors are not read on CUDA. The model's licence is MiniMax's
community licence (non-commercial free;
commercial use needs a notice to, or above a revenue threshold an authorization from, MiniMax).

Measured (two DGX Sparks, GB10, TP=2; this branch's head)

Fidelity against the release (Ash's point 5): 2,406 tokens of a three-turn chat (prose, code, math, German, Chinese,
JSON), teacher-forced; the served engine's logits for every row (tf-minimax-cuda ... rows on both ranks) against the
release's (tools/zig/minimax_m3_ref.py --logits: its MXFP8 and NVFP4 decoded exactly, in transformers' order),
compared by tools/zig/minimax_m3_kl.py, which lists every miss with both sides' top-5 and the margins:

KL(release ‖ served) mean median p99 top-1 agreement
all 2,406 rows 0.0788 0.0076 0.97 89.90% (243 misses)
rows past 2,048 keys (the indexer selecting) 0.0674 89.66%
the release in this engine's MoE order (fp32 pick sums) vs transformers' 0.0120 97.13%

The last row is the floor the rounding order alone gives; the rest is the pack's quantization.

Served checks (recipe harness on this build): soak 60/60, concurrent 12/12, streaming 4/4, multi-turn 8/8, stop 3/3,
max-tokens 3/3, thinking 10/10, copy 2/2; DSpark drafted == plain 12/12; structured output 18/18 (drafted == plain
12/12); tools 5/5; seeded sampling 9/9; a resumed turn equals the same turn cold after a restart. Images: shapes, text
and counting read right, and 16 image requests at once equal each alone 16/16; video is not served (refused).
Speed (recipe harness ruler, DSpark drafts): one stream prose 24.3-24.4, code 38.1-39.4, structured 27.6-29.7, list
29.8-30.4 tokens a second (first token 0.60-0.65 s); two streams 31.0 / 44.9 / 35.7 / 52.0 in total. These numbers are
from the build of fe51fbd1e (binary sha256 adfa4266…), the head before the rebase.
This head (7251cb1ca, two GB10s at TP=2, the recipe harness): every row's logits byte-identical to fe51fbd1e's
and 3ea3e6e55's (both ranks); structured 18/18 (drafted == plain 12/12), tools 5/5, seeded sampling 9/9, a resumed
turn equal to the same turn cold after a restart (4,096 of 4,725 cached), soak 60/60, drafts 12/12, concurrent 12/12,
streaming 4/4, multi-turn 8/8, stop 3/3, thinking 10/10, copy 2/2, max-tokens 3/3; images: 16 at once each equal alone.
One stream with DSpark: 24.3-24.7 / 39.3 / 29.4-29.6 / 30.1-30.3 tokens a second (first token 0.59-0.64 s).

The 28 Oct review

  1. Rebased onto minimax_m3: serve MiniMax-M3.1-Flash (428B-A23B MoE, images) natively on Metal #1235's head (above): no converter, and minimax_m3: serve MiniMax-M3.1-Flash (428B-A23B MoE, images) natively on Metal #1235's single config reader.
  2. Admission as run: sm_121 and two ranks only, at open on every rank before NCCL or a load (admit, with its
    test). visionBytes is the checkpoint's tower tensors as stored (1,734,145,024 bytes in this pack, each one uploaded
    by Tower.load) plus load's scratch at the largest image (183,785,472 bytes, with its test).
  3. plan_finish's contract, on an RTX 5090 (sm_120), the CUDA kernel contract through these entries:
    • modes 0 (bf16, clamped) and 1 (fp32), the fp32 down and the bf16 down: gates 1-4 pass, gate 3 bit-equal to main's
      kernel at every served shape (MiniMax-M3.1-Flash's and the Qwen3.5 EXL3 pack's widths);
    • mode 2 (SwiGLU-OAI): gates 1-4 pass, gate 3 within the float64 bound at its rounding points;
    • controls: the up without its + 1, and alpha 1, both red at gate 3.
      The served kernel's SASS is unchanged by the move into exl3_plan.cuh (all 12 exl3_experts symbols identical on
      sm_80, sm_86, sm_120 and sm_121, nvcc 13.3), so its records stand.
  4. The 243 misses, with both sides' top 5 and the margins, are in a comment below.

The 27 Oct review's points

  1. Weights: converter, requant study and nvfp4_mix removed; the pack as published (above). The f32 patch
    embedding stays f32 (tf_mm3_patch_embed, one fp32 fma chain a output in k order, rounded once).
  2. Contract: gates 1-4 for every MiniMax kernel, 26 registrations through tf-cuda-test minimax-contract:
    SUMMARY minimax: 26 kernels, 26 pass gates 1-4, 0 fail; 8 controls: 8 red as planted, 0 missed. The glue kernels'
    bounds come from float64 at each kernel's own rounding points; controls: route's ties to the higher id, moe_partial
    with the next pick's weight, SwiGLU-OAI without its + 1, RoPE a position late, the Markov head a pick late, plus the
    attention and indexer ones. Gate 5: records for nvcc 13.0, 13.2 and (new) 13.3 for all 20 launches; against 13.0 and
    13.2 fatbins for sm_80/86/89/120/121, kernel-contract-limits finds no MiniMax or EXL3 record off (it reports other
    families' that this branch does not touch). The EPI-4 instances in the shared NVFP4/affine3 images are gone with
    those formats.
  3. Shared images: the shared expert images (experts.cuh and its eleven) are back to main's: untouched. In
    exl3_experts only tf_exl3_plan_finish changes: cuobjdump -sass of the image before and after, sm_80, sm_86,
    sm_120 and sm_121 (nvcc 13.2), 11 of 12 symbols identical. Its records: 40 registers on every SM under 13.0, 13.2 and
    13.3, so the 13.2 and 13.3 overrides (42 on sm_120/121, the old code's) are dropped. The image's other grouped user,
    Qwen3.5-MoE EXL3 (Ornith-1.5-122B, Mia-AiLab/Ornith-1.5-122B-EXL3-EAQv1-4-bpw at 9c5c913b) on one GB10, before
    and after: five greedy replies byte-identical, at the same speed (29.4, 29.5, 27.9, 29.0 and 29.5 tokens a second
    each, both; earlier pairs in either order were within 0.5 of each other). GLM's EXL3 path does not reach
    plan_finish.
  4. Row arithmetic: one index-score kernel (tf_mm3_index_scores_tc) for prompt chunks and decode windows (17.3
    against 16.8 tokens a second at 9.7k with the two, replies identical); the routed experts take the grouped path with
    fp32 down rows for both, and the grouping (64 pairs for a prompt chunk, 16 for a window) is checked bit-equal
    (exl3.grouped.oai.rows). Resumed equals fresh: a 9,733-token prompt cached at 8,192 and replayed gives the same
    reply as cold (tail of 1,541 rows), and the harness's turns check (cached 4,096 of 4,725) likewise.
  5. Fidelity: above.
  6. Smaller: the sigmoid is torch's 1 / (1 + e^-x); the NCCL variables are the launcher's (the doc names them); drafts
    follow --no-drafts only; the licence is stated. Every TF_MINIMAX_* debug switch is gone (rank and world remain,
    as GLM's).

Not covered

  • Only TP=2 on two GB10s was run.
  • Video is not served. A two-image prompt can name a borderline yellow as orange or green; an earlier build on
    a mix of the release's NVFP4 and 3-bit experts did the same, and single images read it right.
  • Thinking-on quality and the quality suites were not run on this build.

@ashhart

ashhart commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Thanks @BobClawblaw, this is the CUDA backend we hoped for. It's one minimax_m3 family served through the lane core, with TP over hosts, kept states, DSpark drafts, the keyed sampler and images. The SwiGLU-OAI epilogue comes in as new template instances rather than runtime branches. We rebased it, with #1235, onto main b30d5b9d3. The conflicts are additive. zig build test, the Linux compiles and the Metal host steps pass, and lean adds one finding: build/cuda.zig is at 605 lines.

What stops it landing:

  1. Weights. The engine opens only a folder written by tools/zig/minimax_m3_nvfp4_mix.py: a flattened config with nvfp4_mix (cuda_weights.zig:37), with 42 of the 57 MoE layers refit to 3-bit affine. TensorFold won't make or ship conversions, so please:
    • Remove the converter, the requant study and the nvfp4_mix format.
    • Have the backend open the release as published (its config.json under text_config), and published packs in their own formats. The release needs TP=4 on GB10s. A published EXL3 pack through the shared EXL3 experts would serve two GB10s; the one New model family: MiniMax-M3.1-Flash VL (minimax_m3_vl) EXL3, CUDA, TP2-served #1281 used fits.
    • Keep the f32 patch-embedding weight as stored. cuda_vision.zig:104-109 rounds it to bf16 at load, while Metal keeps it in fp32.
  2. Contract.
    • 18 of the 25 tf_mm3_* kernels have no gates 1-4, including router, route, norm, add_norm, swiglu_oai, moe_partial, prep and embed.
    • The six new EPI-4 instances in the shared expert images have no registration, records or f64 check.
    • Gate 5 has no nvcc 13.3 records.
  3. Shared images. experts.cuh builds into eleven images, and store_tile changed. Please attach a cuobjdump -sass comparison of every existing symbol against main. Grouped should also refuse oai on formats without an OAI instance, and a limit of 0 or below.
  4. Row arithmetic.
    • indexScores switches to the tensor-core kernel above 16 rows (cuda_kernels.zig:136), so a prompt row's block selection can depend on its chunk's size.
    • Prompt rows sum the experts' down projection in bf16, where decode sums in fp32 (cuda_forward.zig:248, :251).
    • Please use one kernel for the index scores, or show the two give the same bits. Show resumed equal to fresh with prompt tails of 16 rows or fewer, and of more than 16.
  5. Fidelity on what's served. We need a full-model teacher-forced comparison against the release: KL, plus every miss with its contenders and margins. The current check is 20 layers at TP=1.
  6. Smaller.
    • The sigmoid's 1 - 1/(1+e^-|x|) for negative x (minimax_m3.cuh:17) isn't torch's 1/(1+e^-x). The bf16 results differ for gate values below about -5.4.
    • NCCL variables are set and unset process-wide (cuda_native.zig:157-160).
    • Only TF_MINIMAX_DRAFTER=0 turns drafts off.
    • Please state the model's licence.

#1235's open points carry into this stack too.

@BobClawblaw

Copy link
Copy Markdown
Contributor Author

Thanks for the review. The branch is reworked and rebased onto #1235's head (cb35b7c28), and the description is rewritten. In short, point by point:

  1. Weights: the converter, the requant study and nvfp4_mix are gone. The backend reads Mia-AiLab's EXL3 pack as published (config.json under text_config) through the shared EXL3 projections and grouped experts, at TP=2 on two GB10s. The pack is a lossy third-party quantization; its KL against the release is in the description. The f32 patch embedding stays f32.
  2. Contract: gates 1-4 for every MiniMax kernel (SUMMARY minimax: 26 kernels, 26 pass gates 1-4, 0 fail; 8 controls: 8 red as planted, 0 missed), and nvcc 13.0, 13.2 and 13.3 records. kernel-contract-limits against 13.0 and 13.2 fatbins finds no MiniMax or EXL3 record off. The EPI-4 instances are gone with the NVFP4/affine3 expert path.
  3. Shared images: experts.cuh and its images are back to main's. SwiGLU-OAI is act_mode 2 in tf_exl3_plan_finish, the only symbol that changes in exl3_experts (SASS of the other 11 identical on sm_80/86/120/121). Its other grouped user, Ornith-1.5-122B EXL3, gives identical replies at the same speed before and after. Grouped refuses mode 2 without a clamp and alpha.
  4. Row arithmetic: one index-score kernel for chunks and windows; one grouped path with fp32 down rows, its 64- and 16-pair groupings checked bit-equal; resumed equals fresh across a 1,541-row tail.
  5. Fidelity: full model, teacher-forced, 2,406 tokens against the release in transformers' order: KL 0.0788, top-1 89.90%, with every miss listed by tools/zig/minimax_m3_kl.py. For scale, the rounding order alone gives 0.012.
  6. torch's sigmoid; no process-wide NCCL variables; drafts off only by --no-drafts; licence stated; no debug switches left.

#1426 will be rebased onto this once it settles.

BobClawblaw added a commit to BobClawblaw/TensorFold that referenced this pull request Oct 28, 2026
Drafter.blocks takes as many streams' blocks as a decode window's rows hold (two blocks of 7): their rows go
through the projections, MLPs and head together, so the drafter's weights are read once a pass, while each block
runs prep and attention on its own stream's cache and walks its own picks (256-byte pick sets keep the RoCE
gathers aligned). draftBlock absorbs every request's kept rows first, then runs the blocks in groups; one stream
is unchanged.

Two GB10s, ashhart#1388's EXL3 pack, recipe harness: one stream 24.4/39.2/29.7/30.1 -> 24.3/38.5/29.5/30.3 tok/s
(prose/code/structured/list), two streams 31.0/44.9/35.7/52.0 -> 33.3/49.0/39.4/55.3 in total; the quick plan
passes (drafted == plain, concurrent, soak, seeded sampling).
@ashhart

ashhart commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Thanks @BobClawblaw, this rework covers most of our list:

  • the published EXL3 pack through the shared operators;
  • every tf_mm3_* kernel in gates 1-4, with eight controls and 13.3 records;
  • experts.cuh back to main's;
  • one index-score kernel, and fp32 down rows for prompts and windows;
  • the full-model comparison with the release;
  • torch's sigmoid, no process-wide NCCL variables, drafts off only by --no-drafts, and the licence.

Before our run:

  1. Please rebase onto minimax_m3: serve MiniMax-M3.1-Flash (428B-A23B MoE, images) natively on Metal #1235's new head (114cc80). This branch sits on cb35b7c, so it still carries
    tools/zig/minimax_m3_convert.py and its hashes, and its config.zig still accepts the flat form, which minimax_m3: serve MiniMax-M3.1-Flash (428B-A23B MoE, images) natively on Metal #1235 now
    refuses. It also conflicts with main in eight files, which is why no CI has run.
  2. Admission should match what was run, as on MiMo-V2.6-Flash on CUDA: EXL3, DFlash, two GPUs #728 and Muse Spark Open on CUDA: EXL3, DFlash2, two GPUs #1295: please refuse any GPU but sm_121, and any world but two
    ranks, by name for now. place() (cuda_native.zig:66-75) admits one to four ranks, and nothing checks the GPU.
    While you're there, visionBytes (:60) returns a fixed 1,734,000,000; please size it from the checkpoint's tower
    tensors.
  3. tf_exl3_plan_finish is shared, and its SASS changes for modes 0 and 1 as well. Please keep main's plan_finish
    as a contract-only baseline and register the new one as its replacement, as exl3 cuda: the grouped experts kernel loads a tile ahead #1505 does for the grouped loop. Modes
    0 and 1 should be bit-equal to the baseline. Check mode 2 against float64, with your two wrong formulas as planted
    controls.
  4. Please attach minimax_m3_kl.py's list of the 243 misses, with both sides' top 5 and the margins.

Then, on two GB10s, we'll run the contract and limits. Ornith-1.5-122B EXL3 on one GB10 against main covers
plan_finish. For MiniMax at TP=2 we'll check:

  • DSpark drafted against plain;
  • two streams against one;
  • resumed against fresh, with prompt tails of 16 rows or fewer and of more than 16;
  • tools, structured output and images.

#1426 follows this one.

@BobClawblaw

Copy link
Copy Markdown
Contributor Author

Thanks @ashhart. All four points are done; the branch is now three commits on #1235's new head, and the PR body is updated.

  1. Rebased onto minimax_m3: serve MiniMax-M3.1-Flash (428B-A23B MoE, images) natively on Metal #1235's head (505cdd534, on main db3fd5aba). The converter and the flat-form config are gone with it: config.zig is minimax_m3: serve MiniMax-M3.1-Flash (428B-A23B MoE, images) natively on Metal #1235's single reader, and the EXL3 pack already publishes the release form. The engine's build line moved to main's zig/build/cuda_engines.zig. On two GB10s at TP=2, every row's logits (the 2,406 teacher-forced rows, both ranks) are byte-identical between fe51fbd1e and this head, and to the rows the KL was computed from.

  2. Admission matches what was run: admit(sm, world) refuses any GPU but sm_121 (MiniMaxM3RequiresSm121) and any world but two ranks (MiniMaxM3RequiresTwoRanks), on every rank before NCCL or a load; place() no longer admits one, three or four ranks. Its test covers sm_120, sm_90, one rank and four. visionBytes is now Tower.bytesFor: the checkpoint's tower tensors as stored, which load uploads one for one (1,734,145,024 bytes in this pack), plus load's scratch at the largest image (183,785,472 bytes, with a test). The fixed 1,734,000,000 was the tensors rounded down, without the scratch.

  3. plan_finish: main's kernel is kept verbatim in contract_controls.cu (tf_ctl_exl3_plan_finish_old) as the baseline. The served body moved into exl3_plan.cuh as a template whose planted faults build the controls. The move changes no code: cuobjdump -sass of all 12 exl3_experts symbols is identical before and after on sm_80, sm_86, sm_120 and sm_121 (nvcc 13.3), so the records are unchanged. contract_exl3_finish.zig registers five entries and two controls, and all seven ran in the CUDA kernel contract on an RTX 5090 (sm_120):

    • modes 0 (bf16, clamped) and 1 (fp32), the fp32 down and the bf16 down: gates 1-4 pass, gate 3 bit-equal to main's kernel at every served shape (6, 6, 5 and 5 shapes);
    • mode 2 (SwiGLU-OAI): gates 1-4 pass, gate 3 within the float64 bound at its rounding points (interval arithmetic through the split sums, the Hadamard transform, the scales and the bf16 steps);
    • controls: the up without its + 1, and alpha 1, each red at gate 3, as planted.

    That run stopped after these entries. The 48 FAIL lines before it were all planted controls going red, with no kernel failure and no control missed. The interval helpers moved from MiniMax's glue reference into contract_interval.zig, which both use. The runner's two embedded images now share one struct, so contract_tests.zig stays under 600 lines; that is its own commit.

  4. The 243 misses are in the next comment, with both sides' top 5 and the margins.

Re-checked on this head, two GB10s at TP=2 (recipe harness):

  • quick: structured 18/18 (drafted == plain 12/12), tools 5/5, sampling 9/9, and turns: resumed == cold after a restart, 4,096 of 4,725 cached. The suite: soak 60/60, drafts 12/12, concurrent 12/12, streaming 4/4, multi-turn 8/8, stop 3/3, thinking 10/10, copy 2/2, max-tokens 3/3. One stream with DSpark (prose / code / structured / list): 24.2 / 38.5-38.7 / 28.9-29.1 / 30.1 tokens a second (first token 0.60-0.66 s).
  • glm-vision: 16 image requests at once each equal their reply alone. The two-image case answers "red and green", as before.

Repository: fmt, zig build test and compile-cuda-tests pass, and every commit builds. Lean finds 427 problems, the same as #1235's head.

@BobClawblaw

Copy link
Copy Markdown
Contributor Author

Every top-1 miss of the 2,406 teacher-forced rows (243 rows): the release's top 5 and the served engine's (log-probabilities), each side's margin between its first and second, and the row's KL(release ‖ served). From tools/zig/minimax_m3_kl.py --top 5; the served logits are byte-identical on this head.

row next token release top 5 release margin served top 5 served margin KL
6 is il -5.803
c -5.928
updated -6.021
\n -6.053
/ch -6.084
0.125 \n -5.628
il -5.721
c -5.784
updated -5.846
: -5.878
0.0938 0.01388
8 Max - -3.883
il -4.133
I -5.101
/ -5.101
-st -5.320
0.25 il -3.672
- -4.422
-st -5.016
ix -5.266
I -5.359
0.75 0.04596
13 , / -2.067
\n -2.067
- -2.754
� -3.817
, -4.067
0.0 \n -1.581
/ -2.393
- -3.018
� -3.643
\n\n -3.830
0.8125 0.05937
21 : \n -1.813
� -4.563
- -4.751
\n\n -5.001
M -5.063
2.75 c -5.164
co -5.914
f -5.914
il -6.039
n -6.133
0.75 2.95627
25 6 ex -4.768
热 -4.830
长 -4.830
$\\ -4.893
-5.018
0.0625 \n -2.759
-4.072
us -4.259
v -4.947
c -5.290
1.3125 2.40214
26 . c -4.606
\n -4.888
v -5.044
ur -5.294
us -5.388
0.2812 \n -4.325
c -4.887
v -5.294
us -5.325
ur -5.387
0.5625 0.01999
28 in \n -5.088
c -5.400
f -5.400
static -6.025
not -6.088
0.3125 f -5.466
c -5.498
\n -5.748
il -5.966
2 -6.029
0.0312 0.03087
29 early us -5.003
\n -5.097
c -5.222
ch -5.566
v -5.909
0.0938 \n -4.524
us -4.899
c -5.086
ch -5.367
v -5.555
0.375 0.02139
34 Mini invoke -5.938
diplom -6.282
Parkway -6.813
是靠 -7.157
Pooling -7.220
0.3438 diplom -6.115
invoke -6.177
Parkway -6.896
securely -7.177
Sponsored -7.240
0.0625 0.00484
40 foundation us -5.308
\n -5.433
c -5.683
no -5.839
é -5.870
0.125 \n -5.250
us -5.375
c -5.593
no -5.687
é -5.875
0.125 0.0099
49 AI -1.735
\n -1.923
- -4.298
in -4.485
\n\n -4.985
0.1875 \n -1.769
-1.832
- -4.332
in -4.394
\n\n -4.832
0.0625 0.01543
55 thinking with -3.559
-4.059
\n\n -4.684
nod -4.871
$\\ -5.059
0.5 nod -3.617
with -3.929
热 -4.117
\n\n -4.429
-coll -4.679
0.3125 0.3019
56 _inst dual -3.218
这颗 -3.593
拟 -3.655
Dual -3.843
enabled -4.218
0.375 这颗 -3.658
拟 -3.908
dual -3.971
WI -4.158
upu -4.408
0.25 0.06295
61 a with -3.331
鉴 -3.393
热 -3.956
to -4.019
-4.081
0.0625 鉴 -3.327
with -3.390
热 -4.015
to -4.077
no -4.140
0.0625 0.00674
64 that 1 -5.503
c -5.503
= -5.597
updated -5.847
Meta -5.847
0.0 c -5.502
1 -5.596
2 -5.783
= -5.783
updated -5.783
0.0938 0.00548
68 reason \n -4.122
kc -4.247
invisible -4.247
无形 -4.372
不上 -4.559
0.125 kc -4.110
\n -4.110
invisible -4.235
无形 -4.360
不上 -4.735
0.0 0.00821
80 wrap 不上 -3.586
\n -3.899
-y -4.836
ig -4.899
kc -5.024
0.3125 \n -3.737
不上 -3.800
ig -4.800
-y -4.800
kc -5.050
0.0625 0.01198
85 <mm:think> 不上 -3.729
\n -3.917
kc -4.917
-y -5.104
ig -5.292
0.1875 \n -3.698
不上 -3.823
kc -4.761
invisible -5.261
pulsed -5.261
0.125 0.01169
94 is 非 -4.053
\n -4.116
non -4.428
, -4.491
中之 -4.866
0.0625 \n -3.704
非 -4.204
non -4.891
达 -4.954
中之 -4.954
0.5 0.03388
98 your c -5.226
2 -5.288
1 -5.570
Meta -5.945
im -5.976
0.0625 2 -5.261
c -5.293
1 -5.543
Meta -5.980
im -6.136
0.0312 0.0063
99 response 鉴 -4.057
\n -4.057
技师 -4.370
still -4.682
weird -4.807
0.0 \n -3.980
鉴 -4.230
技师 -4.605
invisible -4.792
weird -4.917
0.25 0.01169
100 directly ### -4.461
本页 -4.711
(“ -4.711
Wallet -4.836
afterward -4.899
0.25 (“ -4.215
### -4.403
Wallet -4.778
本页 -4.965
## -5.028
0.1875 0.08063
109 is Non -3.440
deliberately -3.565
non -4.253
/non -4.253
non -4.253
0.125 deliberately -3.341
Non -4.029
maybe -4.404
hybrid -4.466
non -4.654
0.6875 0.03822
120 the \n\n -4.058
热 -4.121
-4.621
. -5.058
AE -5.121
0.0625 热 -3.967
\n\n -4.217
-4.717
. -4.967
compiled -5.029
0.25 0.00725
137 decision 2 -4.846
yz -4.908
c -5.002
il -5.127
1 -5.377
0.0625 c -4.868
2 -4.930
yz -5.055
il -5.212
1 -5.368
0.0625 0.00628
139 , nonin -4.003
-non -4.128
非 -4.191
-f -4.503
YO -4.566
0.125 非 -3.812
-non -3.938
nonin -4.062
non -4.562
, -4.625
0.125 0.03538
140 multi invisible -4.380
Xml -4.505
无形 -4.505
得其 -4.880
cal -4.943
0.125 Xml -4.431
invisible -4.431
无形 -4.618
得其 -4.931
kc -4.993
0.0 0.00772
141 -step nonin -3.794
\n -3.982
或多 -4.231
把关 -4.731
中之 -4.794
0.1875 \n -3.404
nonin -4.154
或多 -4.279
把关 -4.841
达 -4.966
0.75 0.0222
146 analyzing -1.870
- -2.370
> -2.932
\n -4.495
in -4.620
0.5 - -2.017
-2.329
> -2.767
\n -4.454
in -4.704
0.3125 0.04831
148 /tool nonin -3.817
非 -3.817
-non -3.942
中之 -4.067
domains -4.317
0.0 \n -4.024
-f -4.462
weird -4.587
中之 -4.587
domains -4.712
0.4375 0.15884
153 _inst -coll -3.847
nod -4.097
\n\n -4.222
ex -4.284
coll -4.597
0.25 ex -3.878
-coll -4.003
nod -4.128
\n\n -4.378
with -4.815
0.125 0.01217
158 _id API -1.023
likely -1.023
APIs -1.773
/API -4.523
many -4.835
0.0 likely -0.710
API -1.085
APIs -2.647
/API -4.897
\n -5.085
0.375 0.07768
161 bb ba -0.775
byn -1.775
da -2.775
uy -3.275
gz -4.275
1.0 byn -2.544
ba -2.919
edd -2.981
gz -3.106
da -3.106
0.375 1.04351
162 814 WLAN -4.306
`` -4.306
PW -5.056
`不曾` -5.118
` ."\n\n` -5.118
0.0 `` -4.559
WLAN -4.559
`两根` -5.246
` ."\n\n` -5.434
`/人` -5.496
0.0 0.03518
166 model resource -2.523
option -2.523
posthum -2.773
aille -3.398
file -3.710
0.0 posthum -2.132
aille -2.945
dt -3.132
resource -3.195
option -3.195
0.8125 0.15681
167 _id securely -5.513
diplom -5.576
invoke -5.982
tie -6.513
reap -6.701
0.0625 diplom -5.463
securely -5.463
invoke -5.994
tie -6.463
reap -6.650
0.0 0.00274
169 `` recl -3.918
Edit -3.980
to -3.980
Be -3.980
vs -4.105
0.0625 vs -3.505
Edit -3.817
recl -4.005
Be -4.130
andir -4.255
0.3125 0.04487
178 assistant and -4.117
\n -4.367
\n\n -4.805
for -4.805
us -5.055
0.25 lay -4.410
and -4.472
for -4.535
\n -4.660
cooper -4.847
0.0625 0.07604
184 \n Pir -3.698
IGA -3.823
掌上 -4.510
'affiche -4.885
RPA -4.948
0.125 IGA -3.666
RPA -4.541
.Push -4.854
近平 -4.979
不打 -5.104
0.875 0.11496
185 I'm re -3.879
地 -4.379
按 -4.442
hr -4.567
RE -4.629
0.5 按 -2.975
re -3.288
RE -3.913
that -4.225
hr -4.475
0.3125 0.23542
192 l I -1.212
the -2.087
why -2.524
\" -3.149
and -3.274
0.875 why -2.568
the -2.693
I -3.506
my -4.131
you -4.256
0.125 0.85608
203 . . -1.016
and -1.141
, -1.891
( -1.891
.\n\n -5.641
0.125 and -0.851
, -1.101
. -2.101
( -2.476
\n\n -4.726
0.25 0.26376
206 draft help -0.877
could -2.127
Could -3.252
be -4.189
call -4.689
1.25 could -1.185
help -1.748
Could -2.248
Could -4.498
be -4.498
0.5625 0.43667
212 ? yourself -3.230
in -4.667
you -4.855
invoke -5.074
essay -5.074
1.4375 ( -2.490
you -2.615
with -2.865
a -3.052
, -3.115
0.125 2.44131
215 thoughtful too -1.673
only -1.861
to -2.173
like -3.048
or -3.236
0.1875 to -0.940
too -2.190
only -3.190
or -3.253
keep -3.690
1.25 0.45654
217 not but -1.578
the -1.641
what -2.203
human -3.703
though -3.953
0.0625 the -1.400
but -2.525
what -2.650
though -3.587
thoughtful -4.088
1.125 0.29678
220 `` Thought -1.297
not -1.297
Thought -1.422
thoughtful -1.922
thought -3.297
0.0 not -0.232
thoughtful -2.607
Thought -2.732
Thought -3.357
thought -4.420
2.375 0.72683
223 ai optic -1.614
optics -1.739
character -2.176
light -2.364
flash -2.739
0.125 light -1.808
optic -1.808
optics -2.183
optical -2.370
aid -2.433
0.0 0.36826
224 \n \" -2.463
\n -3.213
's -3.463
materials -3.713
0 -3.901
0.75 `` -4.098
point -4.536
` essay` -4.786
` angle` -4.848
`invoke` -4.880
0.4375 4.56604
229 are persist -1.404
have -1.654
were -1.654
began -1.654
occupy -2.654
0.25 were -1.313
are -1.688
began -1.813
have -1.938
occupy -2.188
0.375 0.20964
230 easy often -0.818
easy -1.068
, -2.193
sometimes -2.818
the -4.568
0.25 easy -0.472
often -1.347
, -2.972
sometimes -3.597
not -4.597
0.875 0.18437
235 . , -0.517
. -1.517
— -2.392
: -3.142
of -3.142
1.0 . -0.254
, -2.004
: -3.004
— -3.879
of -4.129
1.75 0.78928
237 modern concrete -1.417
fixed -1.417
satellite -1.917
light -2.042
rotating -2.917
0.0 satellite -1.022
fixed -1.772
light -2.022
ship -2.647
concrete -2.772
0.75 0.29972
240 carries crosses -0.623
receives -2.248
finds -2.373
fixes -2.623
pins -3.248
1.625 doesn't -1.477
receives -1.602
finds -1.727
crosses -1.977
carries -2.977
0.125 0.64088
242 independent satellite -0.448
independent -1.198
GPS -3.073
inertial -5.448
or -5.948
0.75 independent -0.430
satellite -1.180
GPS -3.555
or -5.305
certified -5.305
0.75 0.26308
245 , , -0.563
and -0.938
running -3.688
; -4.813
feeding -6.063
0.375 and -0.644
, -0.769
; -4.644
running -7.269
feeding -8.269
0.125 0.10316
253 automatic chart -0.353
GPS -2.103
AR -2.603
target -3.353
its -3.853
1.75 GPS -0.251
a -2.251
chart -3.251
AR -3.751
its -4.376
2.0 1.9407
254 target radar -0.907
plotting -1.157
target -1.782
collision -2.532
identification -3.657
0.25 target -0.583
radar -1.208
identification -2.583
collision -2.958
plotting -4.458
0.625 0.97609
255 tracking tracking -0.251
plotting -2.001
identification -2.751
acquisition -4.751
averaging -5.376
1.75 identification -0.841
plotting -1.216
tracking -1.341
acquisition -5.591
discrimination -6.091
0.375 0.6418
281 has seems -1.084
has -1.084
solves -1.459
adds -3.084
appears -3.959
0.0 solves -1.104
seems -1.104
has -1.604
adds -2.604
appears -3.854
0.0 0.07052
285 contribute contribute -0.465
offer -1.090
prove -3.965
add -4.215
say -7.715
0.625 offer -0.675
contribute -1.175
add -1.925
prove -3.675
say -5.050
0.5 0.26511
295 maintain service -0.572
maintain -1.321
run -2.696
operate -2.946
build -3.696
0.75 maintain -0.765
service -1.515
build -1.640
operate -2.640
staff -4.015
0.75 0.49686
302 reasons reasons -0.856
arguments -1.356
reason -1.981
argument -2.856
reasoning -3.356
0.5 arguments -0.817
reasons -1.442
number -2.317
reason -2.442
argument -3.817
0.625 0.27897
331 time standards -0.089
time -2.464
distance -9.339
standards -10.089
measures -10.214
2.375 time -0.349
standards -1.224
distance -8.599
measures -9.849
distances -10.349
0.875 0.85781
334 the the -0.129
a -2.129
sea -6.879
an -7.754
open -9.254
2.0 a -0.435
the -1.060
sea -5.185
an -8.060
open -8.685
0.625 0.61584
360 transmitters electronics -1.109
hardware -1.484
radio -2.109
commercial -2.484
j -2.609
0.375 hardware -0.633
electronics -1.383
equipment -2.259
j -3.634
electronic -3.759
0.75 0.49238
362 spoof spoof -0.700
degraded -1.075
blocked -2.700
disrupted -3.075
obscured -4.200
0.375 blocked -0.862
degraded -1.736
spoof -1.861
disrupted -1.986
obscured -3.361
0.875 0.59767
366 sophisticated capable -0.112
sophisticated -2.612
expensive -3.487
deliberate -7.112
elaborate -7.362
2.5 sophisticated -0.656
capable -1.281
expensive -1.656
elaborate -5.031
deliberate -5.531
0.625 0.84306
388 showing producing -0.694
reporting -1.444
outputting -1.569
displaying -3.319
drawing -4.444
0.75 outputting -0.767
producing -1.142
reporting -1.767
displaying -3.267
drawing -6.392
0.375 0.16122
391 position position -0.554
fix -0.929
, -4.179
solution -5.054
green -5.429
0.375 fix -0.464
position -1.089
solution -4.088
, -4.588
green -5.963
0.625 0.12802
392 that that -0.891
derived -1.016
while -2.641
, -2.641
because -3.641
0.125 derived -1.091
that -1.216
while -1.716
, -2.466
because -3.466
0.125 0.07858
394 simply simply -0.972
wrong -1.097
subtly -1.847
quietly -3.347
no -3.597
0.125 wrong -0.894
simply -1.519
subtly -1.769
no -2.769
slightly -3.394
0.625 0.08689
402 If It -0.646
When -1.771
If -1.771
A -2.146
Its -4.771
1.125 If -1.075
It -1.200
A -1.450
When -2.325
Its -4.450
0.125 0.18283
404 light lamp -0.745
bulb -1.120
light -1.620
electricity -8.245
power -8.745
0.375 bulb -0.960
lamp -0.960
light -1.460
power -6.960
electricity -7.835
0.0 0.01815
405 is stops -0.508
is -1.133
goes -2.633
fails -6.758
doesn't -6.883
0.625 is -0.772
stops -0.897
goes -2.147
doesn't -5.647
fails -6.022
0.125 0.07931
414 and because -0.971
and -0.971
which -1.471
precisely -5.971
usually -6.221
0.0 and -0.840
which -1.215
because -1.340
precisely -6.090
an -6.465
0.375 0.03865
415 the the -1.349
knows -1.724
that -1.724
absence -2.099
there -2.349
0.375 knows -1.184
the -1.434
that -1.684
absence -2.684
there -3.184
0.25 0.10346
422 system system -1.109
visible -1.859
vessel -2.109
failed -2.984
failure -3.109
0.75 visible -1.291
vessel -1.291
system -1.791
well -3.291
dark -3.916
0.0 0.3701
430 an engineering -0.678
a -1.178
certain -2.803
practice -3.553
some -3.678
0.5 a -0.741
engineering -1.491
some -2.116
certain -2.241
practice -3.866
0.75 0.25301
434 safer safer -0.551
more -0.926
harder -4.176
easier -4.676
less -6.926
0.375 more -0.624
safer -0.874
harder -3.749
easier -4.124
a -5.624
0.25 0.05276
445 hidden second -1.274
latter -1.399
visible -1.899
hidden -2.274
lighthouse -2.274
0.125 lighthouse -1.316
second -1.691
visible -1.816
hidden -1.941
latter -2.191
0.375 0.17323
446 one -f -0.666
system -0.791
system's -4.666
kind -4.791
one -5.291
0.125 system -0.424
-f -1.174
system's -4.049
one -4.924
failure -5.424
0.75 0.10265
458 is concerns -0.312
is -1.438
involves -4.188
has -4.188
relates -8.312
1.125 is -0.657
concerns -0.907
has -3.157
involves -3.407
relates -6.907
0.25 0.22108
471 There No -0.758
It -1.258
A -2.258
You -2.383
To -3.883
0.5 It -0.857
A -1.357
No -1.482
You -2.982
To -4.482
0.5 0.20872
477 software software -1.131
login -1.381
chart -2.006
account -2.131
receiver -2.881
0.25 login -0.948
software -1.323
chart -1.698
account -2.323
data -4.073
0.375 0.15131
481 battery chart -0.888
proprietary -1.388
training -2.013
data -2.638
compatibility -3.263
0.5 proprietary -0.704
chart -1.329
training -2.204
login -2.954
data -3.579
0.625 0.21478
492 fisherman ship -1.403
mar -1.403
vessel -1.778
rotating -2.527
light -2.652
0.0 rotating -1.390
mar -1.515
vessel -1.515
light -2.015
ship -2.765
0.125 0.33523
512 characteristic characteristic -0.488
flash -1.113
character -3.239
characteristics -4.239
rhythm -5.989
0.625 flash -0.416
characteristic -1.166
character -3.791
characteristics -5.791
rhythm -7.041
0.75 0.23357
514 for which -1.335
and -1.335
the -1.460
a -2.710
its -2.835
0.0 its -0.565
the -1.690
and -2.065
a -3.190
which -3.815
1.125 1.06587
517 white quick -0.635
flashes -0.760
white -6.385
rapid -7.885
flash -8.885
0.125 flashes -0.226
quick -1.601
white -7.976
rapid -8.851
flash -9.226
1.375 0.26553
553 boats equipment -0.875
ones -2.125
navigation -2.750
operator -2.750
member -3.250
1.25 operator -1.748
equipment -1.748
navigation -2.623
ones -2.748
operators -2.873
0.0 0.33104
555 often the -0.467
often -1.217
usually -3.342
also -4.342
precisely -4.467
0.75 often -0.472
the -1.222
usually -3.347
also -3.972
not -4.722
0.75 0.25509
564 Finally Third -0.667
The -1.292
There -2.292
There's -2.917
Then -3.667
0.625 The -0.700
Third -1.575
There -1.825
There's -2.575
Then -3.950
0.875 0.24119
578 marks marks -1.410
is -1.410
encodes -1.660
sits -2.160
embodies -2.285
0.0 is -0.828
marks -1.702
encodes -1.952
sits -2.078
has -3.703
0.875 0.1547
583 at over -0.344
historically -1.719
for -2.844
at -3.094
in -5.844
1.375 historically -0.495
over -1.245
at -2.495
for -4.495
generation -5.870
0.75 0.49231
587 enough people -0.510
ships -1.385
somebody -2.510
someone -4.010
enough -4.135
0.875 somebody -0.735
people -0.985
ships -2.610
someone -2.985
enough -4.610
0.25 0.47314
602 and to -0.786
and -1.286
on -1.411
building -5.161
, -5.286
0.5 and -1.047
to -1.172
on -1.172
, -4.547
building -4.672
0.125 0.06269
604 on to -0.640
on -0.765
building -5.765
changing -6.515
marking -7.265
0.125 on -0.353
to -1.228
building -6.478
marking -6.853
making -7.228
0.875 0.12626
606 warning small -1.437
warning -1.937
tower -1.937
permanent -2.062
solution -2.312
0.5 tower -0.377
fixed -2.377
structure -2.752
small -3.002
permanent -3.377
2.0 0.91331
608 The That -1.114
Many -1.614
The -1.864
Some -2.739
A -2.989
0.5 The -0.987
That -1.487
Their -2.737
A -2.737
Some -3.112
0.5 0.28431
609 towers physical -1.304
light -1.804
tower -1.929
modern -3.304
names -3.991
0.5 light -1.113
tower -1.863
physical -2.113
structure -3.550
lit -3.863
0.75 0.2389
623 Electronic Their -1.698
They -1.698
A -2.198
The -2.323
That -2.323
0.0 They -1.722
Their -1.722
A -1.722
The -1.972
That -2.847
0.0 0.08654
624 charts navigation -0.685
aids -1.435
charts -1.560
systems -4.061
positioning -4.186
0.75 aids -0.480
navigation -1.230
charts -2.855
systems -3.980
beacons -5.480
0.75 0.35992
627 and periodically -1.488
and -1.738
, -1.738
constantly -1.863
on -2.364
0.25 constantly -1.086
and -1.586
, -1.836
periodically -2.211
continuously -3.211
0.5 0.16471
629 , , -0.831
; -1.456
constantly -1.706
and -2.456
continuously -3.706
0.625 constantly -0.976
, -1.351
; -1.476
and -2.851
continuously -3.226
0.375 0.1279
633 remains remains -1.394
is -1.644
itself -1.894
stays -2.894
keeps -2.894
0.25 itself -1.333
is -1.583
stays -2.083
remains -2.083
sits -3.083
0.25 0.15669
636 was was -0.489
has -1.615
always -1.740
is -4.614
stood -6.239
1.125 always -0.910
was -1.160
has -1.285
is -5.160
belongs -6.785
0.25 0.20698
637 placed , -1.186
placed -1.561
always -1.686
put -2.186
built -2.936
0.375 always -1.007
, -1.382
built -2.257
left -2.507
placed -2.632
0.375 0.22037
643 pred generations -1.801
can -2.051
a -2.176
lets -2.176
navig -2.301
0.25 has -1.625
navig -2.000
ties -2.000
can -2.374
connects -2.624
0.375 0.23805
646 technology navigation -0.961
piece -1.461
instrument -2.086
navigational -2.586
satellite -3.086
0.5 piece -1.019
navigation -1.144
instrument -2.519
navigational -3.019
satellite -3.519
0.125 0.09059
650 on on -0.282
over -1.407
around -9.157
above -9.157
a -9.844
1.125 over -0.633
on -0.758
between -8.883
around -8.883
above -9.258
0.125 0.17024
655 To In -1.972
There -1.972
A -2.347
This -2.472
That -2.597
0.0 There -1.457
This -2.207
In -2.332
A -2.457
That -2.707
0.75 0.10005
656 keep switch -0.900
decommission -1.025
say -3.025
keep -3.650
a -3.775
0.125 decommission -1.161
switch -1.286
say -2.161
a -2.661
use -3.161
0.125 0.1465
662 ; but -1.183
; -1.183
so -1.683
. -1.933
for -3.308
0.0 ; -1.168
but -1.168
. -1.668
so -2.043
for -3.418
0.0 0.01794
668 inexpensive ongoing -0.678
continuous -0.803
deliberate -5.303
continuing -5.428
durable -5.428
0.125 continuous -0.520
ongoing -1.020
durable -4.895
legible -5.520
deliberate -5.770
0.5 0.05484
669 bet commitment -0.933
insurance -1.433
way -1.558
form -2.933
vote -3.933
0.5 way -1.099
commitment -1.349
insurance -1.599
form -2.599
hedge -3.724
0.25 0.07688
672 newest sea -1.600
next -2.100
newest -2.225
older -2.475
oldest -2.850
0.5 next -1.526
older -2.026
sea -2.151
oldest -2.526
underlying -3.026
0.5 0.2055
675 occasionally occasionally -0.846
not -1.221
one -1.846
sometimes -2.971
fail -3.471
0.375 not -0.923
occasionally -1.173
one -2.423
sometimes -2.548
fail -3.048
0.25 0.0835
695 \n .media -3.526
ruc -3.776
|The -4.276
I'll -4.588
</mm:think> -4.588
0.25 ruc -3.243
.media -4.056
I'll -4.118
|The -4.243
uja -4.618
0.8125 0.24217
698 that's three -1.701
and -2.639
paragraph -2.826
but -3.326
paragraphs -3.576
0.9375 accessibility -2.606
and -3.356
three -3.481
but -3.544
about -3.669
0.75 1.10917
700 . — -0.647
. -1.335
, -2.960
— -4.835
.\n\n -5.335
0.6875 . -0.994
— -1.181
, -2.056
— -4.431
.\n\n -4.806
0.1875 0.12707
702 something the -2.760
I'm -3.448
you -3.635
that -3.698
, -3.823
0.6875 I'm -2.459
the -3.147
that -3.397
there's -3.397
I'll -3.522
0.6875 0.10861
703 completely more -1.918
about -1.980
very -2.105
is -2.418
with -3.230
0.0625 about -1.847
more -1.847
is -2.346
very -2.659
with -3.659
0.0 0.06774
709 Python capital -2.616
function -2.741
text -2.804
materials -3.054
given -3.054
0.125 maritime -2.412
light -2.600
navigational -2.662
navigation -2.787
nautical -2.975
0.1875 3.93383
713 overlapping merges -1.299
two -1.424
a -2.612
the -2.737
an -3.862
0.125 two -1.150
merges -1.463
a -2.588
the -3.088
all -3.713
0.3125 0.06341
717 plus merging -0.496
merge -1.996
merges -3.433
and -3.433
intervals -3.433
1.5 merge -1.337
and -1.462
merging -1.900
which -2.837
merges -2.900
0.125 0.64144
723 please I -0.861
a -1.861
something -2.361
l -3.236
I'm -3.361
1.0 something -1.404
I -1.404
a -2.154
l -2.654
\" -3.029
0.0 0.1454
726 word on -2.290
background -2.915
bonus -2.978
note -3.228
steps -3.353
0.625 problem -1.954
algorithm -2.454
implementation -2.454
function -2.579
approach -2.642
0.5 3.75952
747 6 6 -1.234
12 -1.734
10 -2.109
8 -2.984
9 -3.234
0.5 12 -1.130
10 -1.880
6 -2.130
8 -2.692
60 -2.817
0.75 0.21276
755 9 pipes -0.804
work -1.367
Pipes -2.367
pipe -2.929
classic -3.117
0.5625 work -0.158
classic -2.908
rate -3.283
pipe -4.346
rates -4.971
2.75 2.60329
758 A -1.669
Pipe -1.669
A -2.231
Pipes -2.231
rates -2.356
0.0 A -0.738
Pipe -1.488
-2.113
rates -3.113
Pipe -3.175
0.75 0.62274
760 empt pipe -1.093
pipe -1.968
, -2.468
valve -2.718
of -2.718
0.875 pipe -1.090
pipe -1.965
with -2.465
, -2.715
of -2.715
0.875 0.38457
765 in 's -1.769
capacity -1.831
from -2.081
to -2.581
in -2.644
0.0625 capacity -0.521
in -2.271
's -2.896
from -3.209
to -3.584
1.75 0.58004
786 ? starting -0.438
from -1.938
with -2.688
empty -2.938
start -4.000
1.5 from -0.472
starting -1.722
with -2.847
empty -2.847
? -4.034
1.25 0.66566
791 the code -1.534
merge -1.597
Python -2.159
also -2.784
the -2.909
0.0625 merge -1.150
code -1.338
Python -2.650
function -3.150
the -3.588
0.1875 0.09074
814 touching touching -0.576
adjacent -0.826
adjoining -9.951
* -10.076
merely -10.451
0.25 adjacent -0.049
touching -3.049
adjoining -9.549
contiguous -11.049
* -11.049
3.0 1.04966
826 then merges -0.963
then -1.213
combines -1.338
folds -3.963
coales -4.463
0.25 then -0.400
merges -1.525
combines -2.650
folds -4.025
sweeps -4.400
1.125 0.35359
832 extending combining -1.475
extending -1.600
so -1.725
merging -2.100
keeping -2.225
0.125 so -1.161
extending -1.411
which -2.036
combining -2.161
keeping -2.286
0.25 0.16836
835 interval run -0.399
merged -1.524
interval -2.399
group -4.399
merge -5.399
1.125 merged -0.776
run -1.026
interval -1.901
group -3.776
merge -5.026
0.25 0.20772
840 begins overlaps -0.787
begins -1.037
starts -1.662
connects -10.412
reaches -10.537
0.25 begins -0.649
overlaps -0.899
starts -2.649
connects -11.024
is -11.524
0.25 0.10159
882 touching touching -0.477
adjacent -0.977
contiguous -6.102
ab -6.977
adjoining -9.602
0.5 adjacent -0.051
touching -3.051
contiguous -6.676
ab -7.426
adjoining -9.176
3.0 1.24936
887 >>> Inter -1.275
Returns -1.525
Accept -1.650
Ass -2.150
>>> -2.900
0.25 Returns -0.787
Inter -1.662
Ass -1.787
Accept -2.662
Each -3.537
0.875 0.22776
1015 last prev -0.675
# -1.300
previous -2.050
merged -2.425
last -7.800
0.625 # -0.875
prev -1.250
merged -1.500
previous -2.624
last -8.999
0.375 0.16948
1071 10 11 -0.699
10 -1.074
12 -1.824
13 -10.074
30 -11.949
0.375 10 -0.295
12 -1.795
11 -2.420
13 -10.420
30 -11.795
1.5 0.58405
1129 costs is -0.559
first -1.059
by -3.559
makes -4.309
puts -4.684
0.5 first -0.397
is -1.397
by -3.272
makes -4.522
handles -5.022
1.0 0.26498
1203 want would -0.638
want -0.763
need -5.513
consider -7.513
wanted -8.388
0.125 want -0.648
would -0.773
need -4.273
prefer -7.648
consider -8.023
0.125 0.01296
1216 that that -0.527
also -0.902
this -6.277
the -7.027
too -7.152
0.375 also -0.637
that -0.762
this -6.137
too -6.637
the -7.137
0.125 0.03085
1229 can nested -1.241
fully -1.741
contained -1.741
can -1.991
that -2.241
0.5 fully -1.112
nested -1.362
contained -1.737
entirely -2.612
can -2.612
0.25 0.09447
1253 ).\n\n ), -0.702
).\n\n -0.702
). -4.952
) -7.202
); -7.452
0.0 ).\n\n -0.533
), -0.908
). -4.783
); -6.908
) -7.658
0.375 0.01761
1270 rate rate -0.314
fraction -1.314
fractional -8.189
fill -9.564
tank -10.064
1.0 fraction -0.577
rate -0.827
tank -7.952
fractional -8.577
fill -10.077
0.25 0.1767
1279 the -0.878
one -1.503
at -1.628
in -2.253
-3.003
0.625 at -0.897
the -1.397
-1.647
one -2.272
in -3.397
0.5 0.29516
1308 With Add -0.805
With -0.930
Find -3.180
Combine -3.305
The -4.055
0.125 With -0.831
Add -0.956
Find -2.956
Combine -3.206
The -3.706
0.125 0.02255
1331 .\n . -0.583
.\n -0.833
= -5.083
per -8.583
, -8.958
0.25 .\n -0.438
. -1.063
= -4.813
per -8.001
, -8.563
0.625 0.09458
1396 the the -0.633
a -0.758
an -12.758
one -14.445
tank -17.133
0.125 a -0.474
the -0.974
an -12.474
one -14.974
tank -16.599
0.5 0.04848
1437 : : -0.964
to -1.214
into -1.339
for -3.339
remaining -4.839
0.25 into -0.916
: -1.166
to -1.291
for -5.041
if -6.416
0.25 0.08195
1456 , .\n\n -0.722
.\n -1.347
, -1.472
. -3.721
( -11.909
0.625 , -0.920
.\n\n -1.045
.\n -1.670
. -2.795
≈ -10.857
0.125 0.09199
1458 the roughly -0.473
the -1.098
-3.848
about -4.098
approximately -5.973
0.625 the -0.727
roughly -0.727
-4.102
about -4.352
approximately -5.977
0.0 0.04655
1468 . minutes -0.404
. -1.154
and -4.904
to -4.904
- -6.154
0.75 . -0.111
minutes -2.486
to -4.236
and -5.611
- -6.111
2.375 1.06055
1490 needs takes -0.564
would -0.939
needs -4.439
manages -4.689
does -5.189
0.375 would -0.662
takes -0.912
fills -4.037
manages -4.162
does -4.162
0.25 0.06946
1500 make make -1.067
speed -1.442
shorten -1.692
pull -2.192
bring -3.317
0.375 speed -0.852
make -1.477
shorten -1.602
pull -3.352
only -3.352
0.625 0.14313
1501 things the -0.561
it -1.061
things -2.811
filling -3.811
that -6.936
0.5 it -0.554
the -1.054
things -3.054
filling -3.804
that -4.929
0.5 0.11824
1503 while , -0.595
while -1.095
. -2.595
rather -3.845
even -4.595
0.5 while -0.778
, -0.778
. -2.903
rather -4.528
even -4.653
0.0 0.03586
1509 . , -0.653
. -0.778
again -4.278
slightly -6.028
by -6.528
0.125 . -0.588
, -0.838
again -5.588
slightly -5.713
by -6.213
0.25 0.02573
1533 time system -0.479
time -1.479
rate -2.729
fill -2.979
result -4.729
1.0 time -0.834
system -0.959
rate -2.708
fill -3.208
result -3.333
0.125 0.14104
1563 .** :**\n\n -0.689
.**\n\n -0.939
.** -2.314
**\n\n -5.314
**, -6.439
0.25 .**\n\n -0.857
:**\n\n -0.857
.** -1.982
**\n\n -5.232
**, -5.357
0.0 0.01605
1572 three three -1.436
:\n\n -1.561
four -1.686
these -2.061
this -2.561
0.125 :\n\n -1.375
three -1.625
four -1.750
this -2.125
these -2.375
0.25 0.02981
1620 {\" { -0.621
{\" -1.121
[ -2.121
{\n -4.246
[\" -5.996
0.5 {\" -0.149
{ -2.524
[ -2.899
[\" -6.274
{\n -6.774
2.375 0.83566
1648 end :end -1.397
end -1.772
cont -2.022
sched -2.647
entity -3.022
0.375 end -0.000
END -15.000
End -15.500
_end -16.250
ends -16.375
15.0 16.78764
1742 user invoke -0.396
contact -4.271
... -4.646
cont -4.896
ENT -5.209
3.875 ... -1.892
invoke -2.454
/api -3.517
counted -3.579
第一人 -3.829
0.5625 1.34809
1746 Last The -1.270
</mm:think> -1.457
I -2.145
\" -3.082
JSON -3.457
0.1875 JSON -1.546
\" -2.171
</mm:think> -2.234
previous -2.734
earlier -2.859
0.625 0.82279
1747 request thing -0.679
one -0.804
item -4.304
question -4.367
but -5.742
0.125 one -0.543
thing -1.043
item -3.668
question -4.480
but -4.793
0.5 0.05495
1749 could \" -1.306
l -2.181
I -3.743
I'd -4.181
the -4.306
0.875 perfect -0.591
\" -2.279
perfectly -2.466
Perfect -3.341
Last -3.654
1.6875 3.25711
1751 write earlier -2.192
function -2.692
essay -2.692
draft -2.817
code -3.942
0.5 essay -2.474
lighthouse -2.849
/l -2.912
function -3.474
be -3.787
0.375 1.09272
1752 a me -0.582
a -1.331
the -2.894
about -3.644
an -4.082
0.75 a -0.327
me -2.014
the -2.889
an -3.889
about -4.077
1.6875 0.6209
1755 in on -1.117
about -1.367
of -2.054
for -3.742
or -3.867
0.25 about -1.395
on -1.520
of -1.645
or -2.895
for -3.520
0.125 0.08814
1757 about about -1.043
for -1.543
, -2.168
in -2.605
paragraph -3.105
0.5 for -1.209
about -1.834
, -2.021
in -2.209
paragraph -2.896
0.625 0.13525
1765 a write -0.451
a -1.076
short -4.826
German -5.889
\" -6.451
0.625 a -0.672
write -0.797
short -4.297
German -5.109
\" -6.172
0.125 0.07086
1772 same market -1.035
autumn -2.035
Chinese -2.535
trees -3.035
fruit -3.160
1.0 fruit -1.126
market -1.939
autumn -2.751
chest -2.814
Chinese -3.189
0.8125 0.46285
1779 English in -1.499
sentence -1.499
paragraph -1.562
more -2.187
short -2.937
0.0 sentence -1.448
in -1.448
more -1.698
paragraph -1.948
short -2.824
0.0 0.05826
1781 comparing in -1.018
about -1.393
with -2.393
: -2.893
.\n\n -3.580
0.375 about -1.091
in -1.091
with -2.716
: -3.216
sentence -3.404
0.0 0.04185
1783 two two -2.224
comparison -2.474
same -3.099
comparisons -3.474
comparing -3.724
0.25 comparison -2.318
comparing -2.818
two -3.131
same -3.256
comparisons -3.631
0.5 0.1231
1785 `` English -1.412
compar -1.725
comparing -2.225
one -2.412
comparative -2.787
0.3125 comparing -1.737
compar -1.737
comparative -1.862
English -2.237
one -2.674
0.0 0.17185
1804 . , -0.394
. -1.268
: -3.268
und -5.769
z -6.019
0.875 . -0.343
, -1.343
: -3.593
und -6.968
z -7.093
1.0 0.39958
1812 Fl Markt -0.788
Fl -1.288
Bach -1.538
Br -3.913
Tal -4.163
0.5 Fl -0.601
Markt -1.226
Bach -2.100
Tal -3.975
Br -5.351
0.625 0.17104
1817 B Kast -0.950
B -1.325
L -1.825
Bl -2.450
Straßen -3.700
0.375 B -0.492
Kast -1.492
L -2.742
Bl -2.992
Straßen -5.055
1.0 0.26855
1856 die Kart -1.056
fr -1.056
dunk -3.180
Bir -3.493
Tra -3.618
0.0 fr -0.605
Kart -1.980
dunk -2.230
Wal -3.480
Tra -3.542
1.375 0.25502
1858 Pf Tra -0.340
Pf -1.340
Bir -4.590
Fl -5.340
Be -6.090
1.0 Pf -0.531
Tra -1.032
Bir -3.156
K -6.157
Brom -6.907
0.5 0.28036
1880 Nach Abend -0.226
Nach -1.601
Nach -9.476
Wochen -10.351
Ende -10.476
1.375 Nach -0.349
Abend -1.224
Nach -7.849
sp -9.599
Wochen -9.599
0.875 0.54409
1883 r kommt -1.097
zie -1.222
f -1.847
r -1.847
wird -3.972
0.125 r -0.994
zie -1.619
f -1.744
kommt -1.869
wird -3.369
0.625 0.20242
1894 geb gep -0.922
geb -1.547
gef -1.922
gem -2.047
ger -3.297
0.625 gem -1.125
geb -1.250
gep -1.875
gef -2.125
ger -3.375
0.125 0.26204
1899 bel bel -0.489
b -0.989
back -4.239
bach -12.364
bread -13.114
0.5 b -0.379
bel -1.254
back -3.504
bread -10.754
ter -11.254
0.875 0.23216
1917 haben keh -0.960
haben -1.210
emp -2.960
gen -3.085
, -3.210
0.25 gew -1.103
keh -1.728
gen -2.478
haben -2.478
spre -2.728
0.625 0.63272
1945 Leute Leute -0.721
Einwohner -1.345
Menschen -2.595
Nach -2.720
Herr -3.345
0.625 Einwohner -0.576
Leute -1.326
Nach -2.701
residents -3.451
Menschen -3.701
0.75 0.25812
1946 in g -0.516
vor -1.391
auf -2.641
mit -3.016
lange -3.641
0.875 auf -0.776
vor -1.526
g -1.776
lange -2.651
mit -3.151
0.75 0.62468
1947 der der -0.395
den -1.395
warm -3.020
zw -5.145
ihren -5.457
1.0 den -0.706
der -1.331
warm -1.831
ihren -3.331
zw -4.644
0.625 0.38472
1952 trink sch -1.263
trink -1.263
und -1.638
ohne -3.013
be -3.013
0.0 trink -0.429
sch -1.679
und -2.929
während -3.679
reden -3.804
1.25 0.46841
1955 Wein Wein -0.364
Most -1.239
Feder -4.864
Most -5.489
Ries -6.989
0.875 Most -0.744
Wein -0.744
Feder -3.369
Most -4.994
-most -6.119
0.0 0.10404
1964 jedes in -0.696
jedes -0.696
jeden -7.071
immer -7.196
jedem -8.071
0.0 jedes -0.118
in -2.244
immer -5.869
jeden -6.619
jedem -7.369
2.125 0.48258
1967 als und -1.058
aber -1.433
doch -1.808
als -2.308
ohne -3.058
0.375 aber -1.086
und -1.461
doch -2.211
nur -2.836
so -2.961
0.375 0.15268
1974 Vor weiter -1.174
Kap -1.424
kur -1.674
Grund -2.174
wieder -3.674
0.25 Kap -0.647
weiter -1.897
kur -1.897
Grund -2.897
wieder -3.834
1.25 0.23405
1978 sich sie -1.038
sich -1.288
be -1.913
wieder -2.163
zusamm -3.163
0.25 wieder -0.803
sich -1.178
be -2.553
sie -3.178
zusammen -3.303
0.375 0.71447
1988 ,一切都 ,一切 -0.695
, -1.695
,一切都 -1.820
, -2.070
,这里 -5.445
1.0 , -0.876
,一切 -1.126
, -2.001
,一切都 -2.376
,所有 -5.876
0.25 0.21298
2017 。 。市场 -0.895
。 -1.020
。在 -2.270
, -2.895
。主 -3.645
0.125 。 -0.589
。市场 -1.839
, -2.589
。在 -2.839
。主 -3.589
1.25 0.23296
2022 老 某个 -1.165
老 -1.415
某 -1.790
巷 -2.665
院子里 -2.790
0.25 某 -0.835
某个 -1.210
老 -2.584
墙 -2.959
墙角 -2.959
0.375 0.27563
2023 街 院子里 -0.795
院子 -1.295
巷 -1.795
墙 -3.170
宅 -3.920
0.5 院子 -0.827
院子里 -1.327
巷 -1.452
墙 -3.827
院 -4.452
0.5 0.11999
2025 院子里 拐 -1.042
院子里 -1.792
某个 -2.042
墙 -2.167
某 -2.792
0.75 某 -1.223
拐 -1.473
某个 -1.598
院子里 -2.723
巷 -2.723
0.25 0.36285
2050 栗 菜的 -0.531
菜 -1.031
栗 -2.906
米的 -9.531
青菜 -9.906
0.5 菜 -0.398
菜的 -1.148
栗 -4.523
米的 -9.773
青菜 -11.148
0.75 0.22618
2055 香气 香气 -0.822
香味 -0.822
声响 -2.197
滋味 -5.697
锅 -5.697
0.0 香味 -0.714
香气 -0.839
声响 -2.714
锅 -5.089
滋味 -5.839
0.125 0.01645
2060 头 上 -0.260
边 -1.885
下的 -3.135
下 -4.510
洞 -4.635
1.625 边 -0.437
上 -1.812
下的 -2.437
边的 -2.562
下 -4.062
1.375 0.94013
2061 追逐 跑 -1.083
跳 -1.458
跑来 -1.708
追逐 -2.208
捡 -2.833
0.375 捡 -0.941
追逐 -1.566
跑 -1.816
跳 -2.441
玩耍 -2.691
0.625 0.49964
2062 打 打 -0.263
,笑 -2.263
, -2.888
嬉 -3.138
,老 -5.263
2.0 ,笑 -0.925
打 -1.175
, -1.925
嬉 -2.425
玩耍 -4.800
0.25 0.46363
2064 。夏 ,老人 -0.937
。老 -1.687
,笑 -1.937
。 -2.312
, -2.437
0.75 ,笑 -0.902
, -2.027
。 -2.152
,老人 -2.277
。老 -2.652
1.125 0.47598
2071 重新 重新 -0.638
又 -0.763
重 -6.263
恢复了 -7.138
也 -7.263
0.125 又 -0.636
重新 -0.761
重 -7.011
也 -7.511
又把 -7.511
0.125 0.00848
2079 茶 门口 -0.838
门 -1.463
巷 -2.463
墙 -2.588
门槛 -2.963
0.625 门 -1.214
门口 -1.339
巷 -2.214
屋 -2.589
门槛 -2.839
0.125 0.10183
2082 喝着 晒 -0.923
喝茶 -1.173
喝着 -2.423
,一边 -2.798
,喝 -3.423
0.25 ,一边 -1.190
喝茶 -1.440
,喝 -2.316
喝着 -2.441
晒 -2.566
0.25 0.55877
2095 让大家 让 -0.818
让大家 -1.068
让人 -2.443
给 -2.943
大家 -3.568
0.25 让大家 -1.075
让 -1.450
这样的 -1.950
大家 -2.200
给 -2.950
0.375 0.27707
2099 看看 认出 -1.480
认识 -1.730
认 -1.980
看清楚 -1.980
看清 -2.480
0.25 认识 -1.117
认 -1.242
聚 -1.992
认出 -2.617
看清楚 -3.367
0.125 0.48264
2100 身边 自己 -1.012
身边 -1.512
熟悉 -2.012
这个 -2.262
彼此 -3.012
0.5 身边 -0.805
自己 -1.180
彼此 -2.055
熟悉 -3.680
这个 -3.930
0.375 0.39291
2108 as in -0.465
through -1.715
as -1.840
's -4.340
the -4.840
1.25 through -0.936
in -1.186
as -1.311
's -4.061
the -5.436
0.25 0.23496
2110 season moment -0.467
season -1.092
same -3.592
town's -5.342
town -6.092
0.625 season -0.472
moment -1.097
same -3.472
point -5.097
town's -5.722
0.625 0.18733
2118 own ordinary -0.804
own -0.929
everyday -2.804
inhabitants -3.054
residents -3.804
0.125 own -0.655
inhabitants -1.530
ordinary -1.905
residents -2.780
everyday -3.155
0.875 0.34419
2132 wood fires -1.732
wood -1.982
fire -1.982
repetition -2.357
the -2.482
0.25 fire -1.679
fires -1.929
chestnut -2.179
the -2.554
repetition -2.679
0.25 0.15678
2139 finds centres -0.922
leans -1.422
emphasises -1.922
turns -2.547
emphasizes -3.297
0.5 leans -1.215
emphasises -1.340
centres -1.340
emphasizes -3.090
turns -3.215
0.125 0.08731
2152 tea tea -0.680
hot -0.930
ginger -3.805
warm -3.930
the -4.930
0.25 hot -0.759
tea -1.135
chestnut -3.260
chest -3.260
ginger -3.760
0.375 0.13936
2158 user Anyone -3.147
anyone -3.584
lad -3.834
invoke -4.334
originally -4.459
0.4375 lad -2.048
Anyone -2.798
anyone -4.548
original -4.798
ARI -4.985
0.75 0.50981
2159 \n earlier -2.170
turn -2.232
\n -2.357
`` -2.545
previous -2.795
0.0625 turn -1.675
earlier -2.050
previous -2.738
turns -2.738
`` -3.113
0.375 0.15555
2160 One case -3.012
invoke -3.387
`` -3.887
somewhat -4.325
`sp` -4.387
0.375 invoke -0.875
0 -4.187
oph -4.375
that -4.875
th -4.937
3.3125 1.1466
2166 in and -1.325
in -1.700
if -3.575
first -3.888
summarize -3.888
0.375 in -1.102
and -1.664
summarize -3.539
if -3.602
but -3.977
0.5625 0.14909
2167 a a -1.703
short -2.703
the -2.891
one -3.266
English -3.328
1.0 English -1.374
a -1.749
short -2.374
the -3.499
one -3.624
0.375 0.30725
2171 how a -1.763
in -1.825
few -2.638
and -3.575
\" -3.638
0.0625 in -1.578
a -2.640
\" -3.890
where -4.453
and -4.516
1.0625 1.02839
2188 too not -1.596
already -1.846
nearly -2.471
uns -2.909
sorted -2.909
0.25 already -1.694
a -2.319
sorted -2.382
not -2.757
nearly -2.757
0.625 0.18856
2194 . . -1.499
.\n\n -1.499
, -1.811
too -2.311
\n\n -3.561
0.0 too -1.332
. -1.332
.\n\n -1.832
, -2.332
( -3.832
0.0 0.16481
2195 `` <mm:think> -0.952
<tool_call> -1.577
]<]minimax[>[ -1.827
`` -2.077
</mm:think> -3.139
0.625 <tool_call> -1.379
`` -1.379
<mm:think> -1.816
`]<]minimax[>[` -2.128
` streaming` -2.441
0.0 0.20276
2209 very out -1.023
too -1.398
uns -1.898
very -1.898
oversized -3.273
0.375 too -0.693
very -1.568
out -2.318
oversized -2.693
uns -2.818
0.875 0.36342
2241 often common -0.958
the -1.083
often -2.208
typical -2.583
a -3.333
0.125 the -1.069
common -1.319
typical -1.694
often -2.069
a -3.319
0.25 0.08409
2244 log interval -1.163
event -1.413
logs -2.288
log -2.413
data -2.413
0.25 event -1.126
interval -1.626
data -2.001
things -2.751
logs -2.751
0.5 0.13087
2248 feeds streams -1.350
data -1.350
traces -2.225
records -2.350
feeds -2.475
0.0 data -1.573
records -1.698
streams -1.823
feeds -2.073
traces -2.323
0.125 0.09898
2279 an you -0.596
an -0.971
a -2.846
the -4.846
one -5.971
0.375 an -0.648
you -0.898
a -2.773
the -5.398
one -6.398
0.25 0.0469
2287 use then -0.751
use -1.001
usage -2.001
stays -4.501
becomes -5.126
0.25 use -0.941
then -0.941
usage -1.691
stays -4.066
drops -4.816
0.0 0.01795
2288 drops becomes -1.087
drops -1.087
then -1.212
stays -4.212
is -4.337
0.0 then -1.017
drops -1.142
becomes -1.267
stays -3.767
is -4.267
0.125 0.0135
2338 A Either -1.121
The -1.246
In -2.370
That -2.495
Memory -2.495
0.125 The -0.997
Either -1.622
In -2.122
That -2.372
Memory -3.372
0.625 0.09983
2355 windows -width -0.883
windows -0.883
time -2.133
-size -3.758
intervals -5.008
0.0 windows -0.835
time -1.210
-width -1.585
-size -3.709
intervals -4.460
0.375 0.1567
2360 window window -0.697
bucket -0.697
, -5.697
one -8.072
. -9.510
0.0 bucket -0.479
window -0.979
, -5.854
one -6.604
interval -9.229
0.5 0.03153

@BobClawblaw

Copy link
Copy Markdown
Contributor Author

Rebased onto #1235's 5555d1550 (main e4cc630f5), head 7251cb1ca: main's new kernel registrations had put this branch in conflict. Two registration lines keep both sides: the CUDA contract runner creates the plan_finish group beside main's NVFP4 fact group (whose create now takes the SM list), and nvcc 13.2's records list MiniMax's after main's NVFP4 fact records.

Re-checked on this head:

  • Two GB10s at TP=2: every row's logits (2,406 rows, both ranks) byte-identical to 3ea3e6e55's and to the rows the KL was computed from.
  • Recipe harness quick: structured 18/18 (drafted == plain 12/12), tools 5/5, sampling 9/9, turns (resumed == cold after a restart), and the suite (soak 60/60, drafts 12/12, concurrent 12/12, streaming 4/4, multi-turn 8/8, stop 3/3, thinking 10/10, copy 2/2, max-tokens 3/3). One stream with DSpark: 24.3-24.7 / 39.3 / 29.4-29.6 / 30.1-30.3 tokens a second. glm-vision: the same results as on 3ea3e6e55 (vision-concurrent 12/16, the two-image case "red and green").
  • RTX 5090: minimax-contract prints SUMMARY minimax: 26 kernels, 26 pass gates 1-4, 0 fail; 8 controls: 8 red as planted, 0 missed; the kernel contract's plan_finish entries pass gates 1-4 (modes 0/1 and both downs bit-equal to main's kernel, SwiGLU-OAI within its float64 bound) and both controls are red.
  • Every commit builds; fmt, zig build test, test-kernel-contract, test-golden and compile-cuda-tests pass; lean finds no new problem.

Main has since moved to dd0a9cc5e; the branch merges with it without conflicts. The body is updated.

BobClawblaw and others added 6 commits October 31, 2026 12:45
tf_exl3_plan_finish takes act_mode 2: (clamp(up) + 1) g sigmoid(alpha g), g = min(gate, limit), in transformers'
bf16 steps (MiniMax-M3's routed experts), with alpha appended to the stage arguments. Grouped refuses mode 2
without a positive clamp and alpha; Experts.run, whose epilogue has no mode 2, refuses it. Modes 0 and 1 compute
as before: in the exl3_experts image only plan_finish's SASS changes, and its records are 40 registers on every
SM under nvcc 13.0, 13.2 and 13.3 (the 13.2 and 13.3 overrides were the old code's).

tf-cuda-test exl3 checks mode 2 against float64 (also with the gate driven past the clamp), with two wrong
formulas as red controls, and every row's bits at any row count and either grouping (64 or 16 pairs).
… bytes), contract_tests.zig under the lean limit
…rom a published EXL3 pack

Serves Mia-AiLab/MiniMax-M3.1-Flash-EXL3-EAQ-v1-3.06-bpw as published (a lossy third-party quantization of the
release: attention 6 bits, MLPs 5, routed experts 3, head 8) through the shared EXL3 projections and grouped
experts, with the release's DSpark drafter and tower, kept prompt states, the keyed sampler, tools, structured
output and images, at tensor parallel over hosts (TF_MINIMAX_RANK, TF_MINIMAX_WORLD, NCCL_COMM_ID).

The family's kernels (minimax_m3.cu, minimax_m3_attn.cu) carry gates 1-4 (tf-cuda-test minimax-contract: 26
registrations, 8 controls red) and nvcc 13.0, 13.2 and 13.3 records. tools/zig/minimax_m3_ref.py (the release in
torch), tf-minimax-cuda's every-row mode and tools/zig/minimax_m3_kl.py give the fidelity against the release:
KL 0.0788, top-1 89.90% over 2,406 teacher-forced tokens. docs/recipes/minimax-m3.1-flash-cuda.md has the run
and the checks.
@ashhart
ashhart merged commit fdd8b6d into ashhart:main Oct 31, 2026
7 of 9 checks passed
@ashhart

ashhart commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Thank you @BobClawblaw. This is merged into main with your commits under your own name, so you're listed as a TensorFold contributor. It ships in the next release, credited to you in the changelog and the release notes.

ashhart added a commit that referenced this pull request Oct 31, 2026
…ain's contract image test passes again

#1388 registered MiniMax-M3 launches against minimax_m3 and minimax_m3_attn; the test's resolver had neither.
BobClawblaw added a commit to BobClawblaw/TensorFold that referenced this pull request Oct 31, 2026
Drafter.blocks takes as many streams' blocks as a decode window's rows hold (two blocks of 7): their rows go
through the projections, MLPs and head together, so the drafter's weights are read once a pass, while each block
runs prep and attention on its own stream's cache and walks its own picks (256-byte pick sets keep the RoCE
gathers aligned). draftBlock absorbs every request's kept rows first, then runs the blocks in groups; one stream
is unchanged.

Two GB10s, ashhart#1388's EXL3 pack, recipe harness: one stream 24.4/39.2/29.7/30.1 -> 24.3/38.5/29.5/30.3 tok/s
(prose/code/structured/list), two streams 31.0/44.9/35.7/52.0 -> 33.3/49.0/39.4/55.3 in total; the quick plan
passes (drafted == plain, concurrent, soak, seeded sampling).
@ashhart

ashhart commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Thanks @BobClawblaw! MiniMax-M3.1-Flash on CUDA over two GB10s is in 1.2.1: https://github.com/ashhart/TensorFold/releases/tag/v1.2.1

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.

2 participants