Update model card and export table
Browse files
README.md
CHANGED
|
@@ -396,19 +396,57 @@ checkpoints and cannot run lambda.
|
|
| 396 |
|
| 397 |
A vLLM serving path for GPU servers is in preparation.
|
| 398 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 399 |
### Ready-made GGUF
|
| 400 |
|
| 401 |
-
`parallax-8b-lambda-
|
| 402 |
-
`
|
| 403 |
-
converted from `exports/
|
| 404 |
-
It keeps the export's bf16 trunk and stores the routed experts' exact ternary codes and
|
| 405 |
-
no weight is requantized.
|
| 406 |
-
|
|
|
|
| 407 |
|
| 408 |
-
The earlier snapshots remain at the repository root:
|
| 409 |
|
| 410 |
| File | Export | sha256 |
|
| 411 |
|---|---|---|
|
|
|
|
| 412 |
| `parallax-8b-lambda-860B-tokens.gguf` | `exports/860B-tokens_step70559` | `a65ecadcb38cb8ed34bd73ecc8fedf564393609ac2bb87f1f9f48b6149a70ba7` |
|
| 413 |
| `parallax-8b-lambda-790B-tokens.gguf` | `exports/790B-tokens_step64456` | `489cd1d23f6c36ac394dc558fc266b26b14f5fb29b68ef9cbea0bb93b0354ef4` |
|
| 414 |
| `parallax-8b-lambda-725B-tokens.gguf` | `exports/725B-tokens_step58814` | `eca13c0bf0bb4a5fbdf33b1616c7f33823ee84eb40fe7edb8852c566c7f6275f` |
|
|
@@ -418,7 +456,7 @@ The earlier snapshots remain at the repository root:
|
|
| 418 |
| `parallax-8b-lambda-381B-tokens.gguf` | `exports/381B-tokens_step30942` | `86312194ffc72b7b8d87f37389fe0fdfe7c510e2f6066f0c424cc0eaf592aedf` |
|
| 419 |
|
| 420 |
```bash
|
| 421 |
-
hf download chutesai/parallax-8b-lambda parallax-8b-lambda-
|
| 422 |
hf download NousResearch/Meta-Llama-3-8B tokenizer.json --local-dir . # Llama 3 tokenizer
|
| 423 |
```
|
| 424 |
|
|
@@ -435,12 +473,12 @@ pip install tokenizers
|
|
| 435 |
|
| 436 |
# Apple GPU
|
| 437 |
python tools/parallax/run.py --binary build/bin/llama-parallax \
|
| 438 |
-
--model ../parallax-8b-lambda-
|
| 439 |
--backend metal --experts lut9 --prompt 'The capital of France is' --predict 64
|
| 440 |
|
| 441 |
# CPU (x86-64 or ARM64)
|
| 442 |
python tools/parallax/run.py --binary build/bin/llama-parallax \
|
| 443 |
-
--model ../parallax-8b-lambda-
|
| 444 |
--backend cpu --experts lut8 --threads 8 --prompt 'The capital of France is' --predict 64
|
| 445 |
```
|
| 446 |
|
|
@@ -451,7 +489,7 @@ prompt scoring and benchmark options.
|
|
| 451 |
|
| 452 |
Measured on an Apple M5 Max on AC power (batch 1, 128 generated tokens) with the bf16-trunk GGUF of the earlier
|
| 453 |
`270B-tokens_step23035` export, which has the same architecture, using the same runtime code; speed does not
|
| 454 |
-
depend on the weight values. Prompt times used `--prefill-batch 128`:
|
| 455 |
|
| 456 |
| Backend | Experts | Tokens/s, short context | Tokens/s after 4,096 tokens | 2,048-token prompt |
|
| 457 |
|---|---|---:|---:|---:|
|
|
@@ -466,40 +504,34 @@ same results but is not tuned for speed: on a shared, loaded 64-core AMD EPYC 95
|
|
| 466 |
|
| 467 |
### Fidelity
|
| 468 |
|
| 469 |
-
The
|
| 470 |
export, with FP32 activations in both, on the same 2,555 held-out positions from public text and code
|
| 471 |
-
passages as
|
| 472 |
-
|
| 473 |
-
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
the router's 12th- and 13th-ranked expert-selection scores were near-tied, so the two implementations
|
| 477 |
-
picked different experts. In segment 3 the first flip occurs in layer 7 at position 465; in segment 4 it
|
| 478 |
-
occurs in layer 17 at position 187. The differences carry forward to later positions in both passages.
|
| 479 |
-
Top-1 predictions agree throughout segment 3; the single top-1 disagreement is at position 319 in segment 4,
|
| 480 |
-
after its first flip. In segment 3, the score margins were 1.4e-6 in the training code and 9.5e-7 in the
|
| 481 |
-
runtime near -4.70 (FP32 spacing 4.8e-7, respectively 3 and 2 units of that spacing); in segment 4, they
|
| 482 |
-
were 1.9e-6 in both near -3.92 (FP32 spacing 2.4e-7, 8 units of that spacing in both). Forcing the runtime's
|
| 483 |
-
selection at just the first flip token/layer in the training code reduced mean KL to 1.9e-9 and 2.2e-9
|
| 484 |
-
in those passages, with top-1 agreement at every position.
|
| 485 |
-
Conservatively excluding every position from those tokens onward in those passages (2,185 positions
|
| 486 |
-
remain), mean KL was 2.1e-9 nats/token with top-1 agreement at every position.
|
| 487 |
|
| 488 |
The training code itself runs in bf16; against that bf16 forward the top-1 agreement was 94.9% (mean
|
| 489 |
KL 0.0027, measured on the earlier `270B-tokens_step23035` export), which reflects the bf16 rounding
|
| 490 |
of the reference, not an error of the runtime.
|
| 491 |
|
| 492 |
-
On the
|
| 493 |
-
at the final position of a 512-token text, and the two gave identical 48-token greedy continuations
|
| 494 |
-
quantizes expert lookup tables to 8 bits and is slightly approximate; `lut` and
|
|
|
|
| 495 |
|
| 496 |
### Limitations of the runtime
|
| 497 |
|
| 498 |
- One sequence per process, greedy or simple sampled generation. No chat template, batching or server.
|
| 499 |
- Not integrated into `llama-cli`, `llama-server` or the standard llama.cpp model loader.
|
| 500 |
-
- Context is limited by `-c`. Inference uses a 2,048-token window for all sliding-window layers
|
| 501 |
-
|
| 502 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 503 |
|
| 504 |
## Tech report
|
| 505 |
|
|
@@ -515,4 +547,4 @@ alignment or safety tuning, and it is small and far from converged.
|
|
| 515 |
|
| 516 |
MIT.
|
| 517 |
|
| 518 |
-
<sub>Table updated 2026-10-
|
|
|
|
| 396 |
|
| 397 |
A vLLM serving path for GPU servers is in preparation.
|
| 398 |
|
| 399 |
+
### The finisher continuation
|
| 400 |
+
|
| 401 |
+
After lambda stopped, its final checkpoint (`exports/900B-tokens_step73973`, 900.8B tokens) was continued on a
|
| 402 |
+
single 8-GPU server for a further 66.8B tokens, without the fleet. The mid-training mixture replays part of
|
| 403 |
+
lambda's data and adds higher-quality web and reference text, books and other creative writing, scientific
|
| 404 |
+
papers, code, math, instruction-style and question-answering text, synthetic long-document retrieval tasks and
|
| 405 |
+
reasoning traces. The training context was raised in stages from 4,096 to 8,192, 16,384, 32,768 and 65,536
|
| 406 |
+
tokens (23.8B tokens over the first three lengths with dense global attention; then 6B at 16,384 tokens, during
|
| 407 |
+
which, after about 1B tokens, the sparse global-attention selection was switched on; then 10B at 32,768 and 12B
|
| 408 |
+
at 65,536 tokens with it on), followed by a closing 15B-token learning-rate anneal over a mix of 4,096- to
|
| 409 |
+
65,536-token sequences. The longest trained
|
| 410 |
+
context is 65,536 tokens; a planned 131,072-token stage was skipped. The architecture, tokenizer and expert
|
| 411 |
+
format are unchanged; the RoPE base of the global-attention layers was raised from 1e6 to 1.67e7 for the longer
|
| 412 |
+
contexts. The finisher's final export is `exports/finisher-967B-tokens_step31888` (967.6B tokens in total,
|
| 413 |
+
finisher step 31888); like the lambda exports it is a base model with no instruction, chat or safety tuning.
|
| 414 |
+
The *Model* and *Training* sections above describe the original lambda run.
|
| 415 |
+
|
| 416 |
+
Benchmarks of the finisher's final export, in percent, from the same lm-eval harness as the lambda numbers
|
| 417 |
+
above; the lambda column repeats the final checkpoint's earlier scores on that harness for comparison:
|
| 418 |
+
|
| 419 |
+
| Benchmark | Finisher final | Lambda final (900.8B) |
|
| 420 |
+
|---|---:|---:|
|
| 421 |
+
| MMLU (continuation, 5-shot) | 34.6 | 35.4 |
|
| 422 |
+
| ARC-Challenge (25-shot) | 45.8 | 47.4 |
|
| 423 |
+
| HellaSwag (0-shot) | 59.0 | 59.8 |
|
| 424 |
+
| GSM8K (5-shot) | 14.7 | 14.3 |
|
| 425 |
+
| HumanEval (pass@1) | 12.2 | 12.2 |
|
| 426 |
+
| MBPP (3-shot) | 16.0 | 15.4 |
|
| 427 |
+
|
| 428 |
+
Long context, finisher final only: needle-in-a-haystack retrieval 100, 100 and 98 at 16k, 32k and 64k tokens,
|
| 429 |
+
and 63 at 128k (past the trained context), in percent over 100 items each; the RULER seven-task mean was 79.3, 72.4, 60.5,
|
| 430 |
+
49.7, 33.5 and 26.3 at 2k, 4k, 8k, 16k, 32k and 64k. The needle test uses the finisher's own synthetic
|
| 431 |
+
long-context format, so it is in-distribution and measures retrieval the model was trained for; RULER is the
|
| 432 |
+
external benchmark. These long-context numbers were measured with the training code with sparse global attention,
|
| 433 |
+
not with the GGUF runtime below.
|
| 434 |
+
|
| 435 |
### Ready-made GGUF
|
| 436 |
|
| 437 |
+
`parallax-8b-lambda-finisher-967B-tokens.gguf` at the repository root (2,133,006,592 bytes, 2.13 GB, sha256
|
| 438 |
+
`4a3ed3cf2d4ca959a7a93f0dac9e4cd52b45e39355e4aa63244080b56916cd74`, also in the `.sha256` file next to it) was
|
| 439 |
+
converted from `exports/finisher-967B-tokens_step31888`, the finisher's final export (967.6B training tokens in
|
| 440 |
+
total, finisher step 31888). It keeps the export's bf16 trunk and stores the routed experts' exact ternary codes and
|
| 441 |
+
per-row scales; no weight is requantized. Its global-attention layers run with sparse block selection and the
|
| 442 |
+
finisher's RoPE base, as trained; the lambda GGUFs below run dense global attention. Each GGUF is a snapshot of one
|
| 443 |
+
export. To use another export, convert it yourself (see `tools/parallax/README.md` on the branch).
|
| 444 |
|
| 445 |
+
The earlier snapshots, converted from lambda exports, remain at the repository root:
|
| 446 |
|
| 447 |
| File | Export | sha256 |
|
| 448 |
|---|---|---|
|
| 449 |
+
| `parallax-8b-lambda-878B-tokens.gguf` | `exports/878B-tokens_step72097` | `ad38864d341fe0ab70fab02d91c3320e6d36424171e20076ebba022737091a98` |
|
| 450 |
| `parallax-8b-lambda-860B-tokens.gguf` | `exports/860B-tokens_step70559` | `a65ecadcb38cb8ed34bd73ecc8fedf564393609ac2bb87f1f9f48b6149a70ba7` |
|
| 451 |
| `parallax-8b-lambda-790B-tokens.gguf` | `exports/790B-tokens_step64456` | `489cd1d23f6c36ac394dc558fc266b26b14f5fb29b68ef9cbea0bb93b0354ef4` |
|
| 452 |
| `parallax-8b-lambda-725B-tokens.gguf` | `exports/725B-tokens_step58814` | `eca13c0bf0bb4a5fbdf33b1616c7f33823ee84eb40fe7edb8852c566c7f6275f` |
|
|
|
|
| 456 |
| `parallax-8b-lambda-381B-tokens.gguf` | `exports/381B-tokens_step30942` | `86312194ffc72b7b8d87f37389fe0fdfe7c510e2f6066f0c424cc0eaf592aedf` |
|
| 457 |
|
| 458 |
```bash
|
| 459 |
+
hf download chutesai/parallax-8b-lambda parallax-8b-lambda-finisher-967B-tokens.gguf --local-dir .
|
| 460 |
hf download NousResearch/Meta-Llama-3-8B tokenizer.json --local-dir . # Llama 3 tokenizer
|
| 461 |
```
|
| 462 |
|
|
|
|
| 473 |
|
| 474 |
# Apple GPU
|
| 475 |
python tools/parallax/run.py --binary build/bin/llama-parallax \
|
| 476 |
+
--model ../parallax-8b-lambda-finisher-967B-tokens.gguf --tokenizer ../tokenizer.json \
|
| 477 |
--backend metal --experts lut9 --prompt 'The capital of France is' --predict 64
|
| 478 |
|
| 479 |
# CPU (x86-64 or ARM64)
|
| 480 |
python tools/parallax/run.py --binary build/bin/llama-parallax \
|
| 481 |
+
--model ../parallax-8b-lambda-finisher-967B-tokens.gguf --tokenizer ../tokenizer.json \
|
| 482 |
--backend cpu --experts lut8 --threads 8 --prompt 'The capital of France is' --predict 64
|
| 483 |
```
|
| 484 |
|
|
|
|
| 489 |
|
| 490 |
Measured on an Apple M5 Max on AC power (batch 1, 128 generated tokens) with the bf16-trunk GGUF of the earlier
|
| 491 |
`270B-tokens_step23035` export, which has the same architecture, using the same runtime code; speed does not
|
| 492 |
+
depend on the weight values. The finisher GGUF additionally runs the sparse-attention indexer and block selection in its global-attention layers; it was not re-timed. Prompt times used `--prefill-batch 128`:
|
| 493 |
|
| 494 |
| Backend | Experts | Tokens/s, short context | Tokens/s after 4,096 tokens | 2,048-token prompt |
|
| 495 |
|---|---|---:|---:|---:|
|
|
|
|
| 504 |
|
| 505 |
### Fidelity
|
| 506 |
|
| 507 |
+
The finisher GGUF was checked on CPU with `lut` against the training code's own model loaded from the same
|
| 508 |
export, with FP32 activations in both, on the same 2,555 held-out positions from public text and code
|
| 509 |
+
passages as the earlier releases, with sparse global attention in both. Overall mean KL was 1.7e-9 nats/token
|
| 510 |
+
(per passage 1.5e-9 to 1.8e-9); the top-1 next token agreed at all 2,555 positions; the largest logit
|
| 511 |
+
difference at any position was 0.0010; and three 48-token greedy continuations matched exactly. No passage
|
| 512 |
+
showed the divergence seen with the lambda GGUFs, where a router near-tie made the two implementations pick
|
| 513 |
+
different experts from one token onward.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 514 |
|
| 515 |
The training code itself runs in bf16; against that bf16 forward the top-1 agreement was 94.9% (mean
|
| 516 |
KL 0.0027, measured on the earlier `270B-tokens_step23035` export), which reflects the bf16 rounding
|
| 517 |
of the reference, not an error of the runtime.
|
| 518 |
|
| 519 |
+
On the finisher GGUF, the largest per-layer relative RMS difference between Metal and CPU was about 2.7e-5
|
| 520 |
+
(logits 6.8e-6) at the final position of a 512-token text, and the two gave identical 48-token greedy continuations
|
| 521 |
+
on three prompts. `lut8` (CPU) quantizes expert lookup tables to 8 bits and is slightly approximate; `lut` and
|
| 522 |
+
`lut9` are exact.
|
| 523 |
|
| 524 |
### Limitations of the runtime
|
| 525 |
|
| 526 |
- One sequence per process, greedy or simple sampled generation. No chat template, batching or server.
|
| 527 |
- Not integrated into `llama-cli`, `llama-server` or the standard llama.cpp model loader.
|
| 528 |
+
- Context is limited by `-c`. Inference uses a 2,048-token window for all sliding-window layers. With the
|
| 529 |
+
finisher GGUF the global-attention layers attend to up to 16 selected blocks of 128 tokens per query, always
|
| 530 |
+
including the current block (so inputs up to 2,048 tokens are attended in full); with the lambda GGUFs they are
|
| 531 |
+
dense. The finisher was trained on sequences
|
| 532 |
+
up to 65,536 tokens and lambda on 4,096, but the runtime was checked only on 512-token passages and 48-token
|
| 533 |
+
continuations; longer inputs run (raise `-c`) but were not qualified in the runtime, and the long-context
|
| 534 |
+
numbers above come from the training code.
|
| 535 |
|
| 536 |
## Tech report
|
| 537 |
|
|
|
|
| 547 |
|
| 548 |
MIT.
|
| 549 |
|
| 550 |
+
<sub>Table updated 2026-10-21 23:47 UTC.</sub>
|