Skip to content

Measurements: yarn ×4 at 1M context on a 16 GB card (IQ3_XXS, 0.1.30) — loads in 12.4 GiB RAM, 8/10 recall at 1.04M, 10.4 min to read #348

Closed

Description

@demon851113

Following up on the "1M context with rope scale 4" reports: measured on our 16 GB card with 0.1.30. No action needed. Posting in case it is useful for docs/DETAILS.md, which currently lists one 1M yarn 4 run that "read end to end".

Setup: RTX 5070 Ti 16 GB (sm_120), Ryzen 7 7700, 93 GB RAM, Ubuntu 24.04, CUDA 13.2. Engine 0.1.30, IQ3_XXS native pack, --kv int8 --kv-resident 32768, --spec 4 + MTP (rt-cjk), --vision (CPU), --vram-reserve-mib 700, --expert-cache auto. For the test only: --max-context 1048576 --rope-scaling yarn --rope-scale 4, and --conversation-cache-mib 0 so a parked 1M snapshot could not compete for RAM.

It starts and fits:

  • rope scaling yarn, factor 4 (freq_scale 0.25, base 1e+07, mscale 1.138629), ready in ~50 s.
  • the K/V in 12.38 GiB of pinned RAM (3.09 GiB at 262K); 334 MiB VRAM free after load, the same as unscaled. Streamed KV keeps VRAM flat, as documented.
  • System RAM still available after load: ~32 GB.

Retrieval test: the same as #200. The question is "What is the weight of Record N?" over N near-identical Record i: weight W kg. lines, at 10 positions from 2% to 99.5%, greedy, thinking off. The unscaled column is from #200 (0.1.27 + #189; same model and flags). Its lengths differed slightly because a different label word was used: 29K, 151K and 257K.

Prompt (tokens) unscaled yarn ×4 prompt read from zero
27,210 10/10 10/10 9.4 s (2,891 tok/s)
156,231 8/10 6/10 53.4 s (2,923 tok/s)
257,463 6/10 6/10 -
510,113 n/a 8/10 226 s (2,258 tok/s)
1,037,660 n/a 8/10 626 s (1,657 tok/s)

Reading:

  • A 1M-token prompt is usable on a single 16 GB card. It took 10.4 minutes to read from zero, and 8 of 10 values were found. The two misses were at 75% and 85% depth.
  • The scaling is not free inside the trained range. 156K dropped from 8/10 to 6/10, which is consistent with the note that a scaled run is "a slightly different model" at every position. So we keep the production config unscaled at 262K and would only switch to yarn 4 for a dedicated long-document run.
  • n = 10 per length is coarse. 510K and 1M scored above 257K, so ±2 per row is plausibly noise. The test is adversarial (thousands of lines that differ only in numbers), so treat the absolute numbers as a lower bound for real documents.
  • A practical pitfall: the token count per line grows with the index digits and with the label word. Our first two 1M attempts were refused as over the context (1,069,440 and 1,178,609 tokens). Counting with the pack's tokenizer offline before restarting avoided a third wasted restart. The refusal itself was clean.

Happy to share the scripts or run more positions per length (e.g. 30-50) if that would help the tables.

Activity

  1. Niko1221 commented on Oct 1, 2026

    @Niko1221
    Owner

    Thank you, this is a really useful measurement: 1M context on a 16 GB card, with the recall drop inside the trained range clearly shown. If you'd like it in the docs, a PR that adds it as a report under bench/results/ (format in docs/COMMUNITY_BENCHMARKS.md) would be very welcome, and DETAILS.md can then link to it. Closing, since no action is needed; the issue stays searchable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions