Spark-X2.6-4B — CMF
Spark-X2.6-4B (4.11 B dense,
hybrid attention: 9 full layers + 27 sliding-window layers of 512 tokens,
1M-token context, thinking mode, tool calling) packaged as single
CMF files. They run with cortiq, a
Rust inference engine with no Python and no ML framework: NVIDIA, AMD and
Intel GPUs through Vulkan/DX12, Apple silicon through Metal, and the CPU.
X2.6 keeps the Spark-X2.5-4B architecture and improves post-training (coding, agentic, long-context, multilingual, reasoning).
Quick start
cargo install cortiq-cli
hf download infosave/Spark-X2.6-4B-cmf spark-x2.6-4b-q8_2f.cmf --local-dir .
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "Explain quicksort in three sentences." --no-think
Use cortiq 0.8.43 or later; prebuilt binaries for Linux, macOS and Windows are
on the releases page. The
engine picks the GPU and its settings itself. --no-think asks for a direct
answer; without it the model reasons in a <think> block first, so raise
--max-tokens (default 256).
Files
| file | quantization | size | wikitext-2 ppl | recommended for |
|---|---|---|---|---|
spark-x2.6-4b-q8_2f.cmf |
8-bit projections (q8_2f), f16 embeddings/norms | 4,135,951,050 B (4.14 GB) | 10.71 | default: highest fidelity |
spark-x2.6-4b-q4tp.cmf |
4-bit projections (q4tp), f16 embeddings/norms | 2,161,419,978 B (2.16 GB) | 11.88 | half the memory, faster decode (+10.9 % ppl) |
Both files carry 362 tensors: 253 quantized projections + 109 f16 (embeddings, norms, rotary buffers), quantized from the bf16 checkpoint.
Perplexity: first 4096 tokens of wikitext-2 test with the model's BOS token
in front, cortiq ppl --tokens 4096, exact attention, measured on the
RTX 2000 Ada. Cross-check with the identical command on
Spark-X2.5-4B-q8_2f.cmf gives 10.94 (that card lists 10.68; the text file
here is rebuilt from the parquet, so a small protocol difference remains).
Performance
cortiq bench --core --ignore-eos --tokens 120, decode tok/s, one stream:
| hardware | backend | q8_2f | q4tp |
|---|---|---|---|
| RTX 2000 Ada (16 GB) | Vulkan | 41.5 | 67.2 |
| Mac mini M4 (24 GB) | Metal | 20.1 | 34.8 |
| Xeon E5-2699 v4, 6 cores | CPU | 4.5 | 4.8 |
Prompt processing and decode at depth (--ctx, synthetic prompt of N tokens,
RTX 2000 Ada, Vulkan):
| prompt | q8_2f prefill | q4tp prefill | q8_2f decode | q4tp decode |
|---|---|---|---|---|
| 1 000 tokens | 370.3 | 350.6 | 38.0 | 58.7 |
| 16 000 tokens | 400.2 | 325.8 | 20.3 | 36.9 |
The same on a Mac mini M4 (24 GB), Metal:
| prompt | q8_2f prefill | q4tp prefill | q8_2f decode | q4tp decode |
|---|---|---|---|---|
| 1 000 tokens | 285.7 | 243.5 | 20.0 | 33.6 |
| 16 000 tokens | 109.9 | 102.6 | 11.1 | 14.6 |
Time to first token on the RTX 2000 Ada at the bench's 41-token prompt: 0.91 s (q8_2f), 0.42 s (q4tp). The graph capture takes 119 of the 120 bench tokens.
Resident weights on the GPU: 4.11 GB (q8_2f), 2.14 GB (q4tp), against a reported VRAM budget of 14.49 GB — both profiles fit a 16 GB card at long context.
Quality checks
Greedy cortiq run --no-think battery, run on both files on the CPU and on
the GPU (Vulkan); the answers agree across files and backends unless noted:
| check | expected | result |
|---|---|---|
17 * 23 |
391 |
pass |
1234 + 5678 |
6912 |
pass |
| capital of France, one word | Paris |
pass |
| start of WWII (Russian) | 1939 |
pass |
| one-line Python printing 2+3 | print(2 + 3) |
pass |
| syllogism: all cats / some mammals swim | invalid |
pass |
| syllogism: all roses / some flowers fade | invalid |
fails — answers "valid"/"yes" on both files, CPU and GPU |
| exactly two sentences about a robot gardener | 2 sentences | pass |
| one sentence on photosynthesis | 1 sentence | pass |
The roses/flowers item tests the undistributed middle; the model misses it consistently, while the structurally identical cats/mammals item passes. Treat it as a known reasoning miss, not a quantization artifact — both quant profiles and both backends behave the same.
Usage
cortiq run spark-x2.6-4b-q8_2f.cmf # interactive chat
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." # one answer, with reasoning
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --no-think # answer without the thinking block
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --greedy # deterministic output
XHToken recommends temperature 1.0 and top-p 0.95 (the upstream generation
example uses temperature=1.0, top_p=0.95, top_k=0):
cortiq run spark-x2.6-4b-q8_2f.cmf --temperature 1.0 --top-p 0.95 --top-k 0 --min-p 0 --rep-penalty 1.0 --max-tokens 4096 --prompt "..."
Without flags the CLI uses temperature 0.7, top-p 0.9, top-k 40, min-p 0.05,
repetition penalty 1.1 and at most 256 new tokens. --top-k 0 and
--rep-penalty 1.0 switch those filters off.
OpenAI-compatible server
cortiq serve spark-x2.6-4b-q8_2f.cmf --port 8080
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "spark-x2.6-4b-q8_2f", "temperature": 1.0, "top_p": 0.95,
"messages": [{"role": "user", "content": "Hi!"}]}'
Endpoints: /v1/chat/completions, /v1/completions, /v1/models, plus a web
dashboard on the same port. --host 127.0.0.1 keeps the server local. The
reply reads <think>…</think> answer; "enable_thinking": false in the request
gives a direct answer, and temperature: 0 means greedy decoding. tools are
accepted in the usual OpenAI format and go through the embedded chat template.
Each chat turn prefills only what changed since the previous one: with a
2 300-token history the next turn starts in about 0.6 s on a Mac mini M4.
Hardware
Apple silicon (Metal). Runs on the GPU out of the box.
Choosing a GPU (Vulkan). cortiq gpu lists the adapters;
CMF_GPU_ADAPTER=1 (index or name substring) picks one. If the list is empty
on Linux, install libvulkan1 libglvnd0 libegl1 libgl1 libglx0; on headless
machines set XDG_RUNTIME_DIR=/tmp.
CPU only. CMF_GPU=0 keeps everything on the CPU. The CPU rows above
come from a 6-core Xeon E5-2699 v4 at 2.2 GHz; CMF_THREADS=6 was the best
of the 6/12 sweep.
Long context
The model supports 1 048 576 tokens (max_position_embeddings), with a
512-token sliding window on 27 of the 36 layers and full attention on the
other 9. The KV state measured by bench --ctx: 294,912,000 B at 1 000
tokens and 1,335,361,536 B (1.24 GiB) at 16 000 tokens — about 72 KB per
token for the 9 full-attention layers (4 KV heads × 256 dims × K+V × f32);
sliding layers keep only the rows their window reads. Raise the context
limit with CMF_MAX_SEQ:
CMF_MAX_SEQ=131072 cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --max-tokens 4096
Verify the download
sha256sum -c spark-x2.6-4b-q8_2f.cmf.sha256
sha256sum -c spark-x2.6-4b-q4tp.cmf.sha256
cortiq verify spark-x2.6-4b-q8_2f.cmf
cortiq info spark-x2.6-4b-q8_2f.cmf
SHA-256:
spark-x2.6-4b-q8_2f.cmf—e9331f8f1c620fee81c7f673bdcf702dcd4c81458111f10d258c425cf330494fspark-x2.6-4b-q4tp.cmf—76fcaafe19e8c7119838bd2c1343751c2fdbcb37282417eb2838357ffd57937d
Weights derive from XHToken's release and remain under its Apache-2.0 terms.
Документация на русском
Spark-X2.6-4B (4.11 B dense,
гибридное внимание: 9 полных слоёв + 27 слоёв со скользящим окном 512
токенов, контекст до 1M токенов, режим рассуждений, вызов инструментов) в
виде отдельных файлов CMF.
Запускается движком cortiq на Rust без Python и ML-фреймворков: GPU NVIDIA,
AMD и Intel через Vulkan/DX12, Apple silicon через Metal, а также CPU.
X2.6 сохраняет архитектуру Spark-X2.5-4B и улучшен постобучение (код, агентные сценарии, длинный контекст, многоязычие, рассуждения).
Быстрый старт
cargo install cortiq-cli
hf download infosave/Spark-X2.6-4B-cmf spark-x2.6-4b-q8_2f.cmf --local-dir .
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "Объясни квиксорт в трёх предложениях." --no-think
Используйте cortiq 0.8.43 или новее; готовые сборки для Linux, macOS и
Windows — на странице релизов.
--no-think даёт прямой ответ; без него модель сначала рассуждает в блоке
[…], поэтому увеличьте --max-tokens (по умолчанию 256).
Файлы
| файл | квантизация | размер | ppl wikitext-2 | назначение |
|---|---|---|---|---|
spark-x2.6-4b-q8_2f.cmf |
8 бит (q8_2f), эмбеддинги/нормы f16 | 4 135 951 050 Б (4.14 ГБ) | 10.71 | по умолчанию: максимальная точность |
spark-x2.6-4b-q4tp.cmf |
4 бита (q4tp), эмбеддинги/нормы f16 | 2 161 419 978 Б (2.16 ГБ) | 11.88 | вдвое меньше памяти, быстрее декодирование (+10.9 % ppl) |
Оба файла содержат 362 тензора: 253 квантованных проекции + 109 f16 (эмбеддинги, нормы, ротационные буферы), квантованы из bf16-чекпойнта.
Перплексия: первые 4096 токенов wikitext-2 test с BOS-токеном модели в
начале, cortiq ppl --tokens 4096, точное внимание, замер на RTX 2000 Ada.
Контроль тем же командой на Spark-X2.5-4B-q8_2f.cmf — 10.94 (в карточке
X2.5 указано 10.68; текстовый файл здесь пересобран из parquet, поэтому
остаётся небольшая разница протокола).
Скорость
cortiq bench --core --ignore-eos --tokens 120, декодирование, ток/с, один
поток:
| железо | бэкенд | q8_2f | q4tp |
|---|---|---|---|
| RTX 2000 Ada (16 ГБ) | Vulkan | 41.5 | 67.2 |
| Mac mini M4 (24 ГБ) | Metal | 20.1 | 34.8 |
| Xeon E5-2699 v4, 6 ядер | CPU | 4.5 | 4.8 |
Обработка промпта и декодирование на глубине (--ctx, синтетический промпт
из N токенов, RTX 2000 Ada, Vulkan):
| промпт | q8_2f префилл | q4tp префилл | q8_2f декод | q4tp декод |
|---|---|---|---|---|
| 1 000 токенов | 370.3 | 350.6 | 38.0 | 58.7 |
| 16 000 токенов | 400.2 | 325.8 | 20.3 | 36.9 |
То же на Mac mini M4 (24 ГБ), Metal:
| промпт | q8_2f префилл | q4tp префилл | q8_2f декод | q4tp декод |
|---|---|---|---|---|
| 1 000 токенов | 285.7 | 243.5 | 20.0 | 33.6 |
| 16 000 токенов | 109.9 | 102.6 | 11.1 | 14.6 |
Время до первого токена на RTX 2000 Ada при промпте бенча в 41 токен: 0.91 с (q8_2f), 0.42 с (q4tp). Граф захватывает 119 из 120 токенов бенча.
Веса, резидентные на GPU: 4.11 ГБ (q8_2f), 2.14 ГБ (q4tp) при заявленном бюджете VRAM 14.49 ГБ — оба профиля помещаются на карте с 16 ГБ и при длинном контексте.
Проверки качества
Батарея cortiq run --no-think на greedy: оба файла, CPU и GPU (Vulkan);
ответы совпадают между файлами и бэкендами, кроме отмеченного случая:
| проверка | ожидание | результат |
|---|---|---|
17 * 23 |
391 |
✓ |
1234 + 5678 |
6912 |
✓ |
| столица Франции, одно слово | Paris |
✓ |
| начало Второй мировой войны (рус.) | 1939 |
✓ |
| однострочный Python: сумма 2 и 3 | print(2 + 3) |
✓ |
| силлогизм: все кошки / некоторые млекопитающие плавают | invalid |
✓ |
| силлогизм: все розы / некоторые цветы быстро вянут | invalid |
ошибка — «valid»/«да» на обоих файлах, CPU и GPU |
| ровно два предложения о роботе-садовнике | 2 предложения | ✓ |
| одно предложение о фотосинтезе | 1 предложение | ✓ |
Силлогизм про розы проверяет недоспределённую посылку; модель стабильно его промахивает, при этом структурно тот же случай про кошек проходит. Это известная ошибка рассуждения, а не артефакт квантизации — оба профиля и оба бэкенда ведут себя одинаково.
Использование
cortiq run spark-x2.6-4b-q8_2f.cmf # интерактивный чат
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." # один ответ с рассуждением
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --no-think # ответ без блока рассуждений
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --greedy # детерминированный вывод
XHToken рекомендует temperature 1.0 и top-p 0.95 (пример генерации upstream:
temperature=1.0, top_p=0.95, top_k=0):
cortiq run spark-x2.6-4b-q8_2f.cmf --temperature 1.0 --top-p 0.95 --top-k 0 --min-p 0 --rep-penalty 1.0 --max-tokens 4096 --prompt "..."
Без флагов CLI использует temperature 0.7, top-p 0.9, top-k 40, min-p 0.05,
repetition penalty 1.1 и не более 256 новых токенов. --top-k 0 и
--rep-penalty 1.0 отключают эти фильтры.
Сервер с OpenAI-совместимым API:
cortiq serve spark-x2.6-4b-q8_2f.cmf --port 8080
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "spark-x2.6-4b-q8_2f", "temperature": 1.0, "top_p": 0.95,
"messages": [{"role": "user", "content": "Привет!"}]}'
Эндпоинты /v1/chat/completions, /v1/completions, /v1/models и веб-панель
на том же порту. --host 127.0.0.1 оставляет сервер локальным. Ответ имеет
вид <think>…[…] ответ; "enable_thinking": false даёт прямой ответ,
temperature: 0 — greedy. tools передаются в обычном формате OpenAI и
проходят через встроенный шаблон чата. Каждый ход чата обрабатывает только то,
что изменилось с прошлого хода: при истории в 2 300 токенов следующий ход на
Mac mini M4 начинается примерно через 0.6 с.
Железо
Apple silicon (Metal). Работает на GPU без настройки.
Выбор GPU (Vulkan). cortiq gpu показывает адаптеры; CMF_GPU_ADAPTER=1
закрепляет нужный. Если на Linux список пуст, установите
libvulkan1 libglvnd0 libegl1 libgl1 libglx0; на машинах без дисплея
задайте XDG_RUNTIME_DIR=/tmp.
Только CPU. CMF_GPU=0 оставляет всё на процессоре. Строки CPU выше —
6-ядерный Xeon E5-2699 v4 на 2.2 ГГц; CMF_THREADS=6 оказался лучшим из
свипа 6/12.
Длинный контекст
Модель поддерживает 1 048 576 токенов, окно 512 токенов на 27 слоях из 36,
полное внимание на остальных 9. Измеренный KV-стейт (bench --ctx):
294 912 000 Б на 1 000 токенов и 1 335 361 536 Б (1.24 ГиБ) на 16 000
токенов — около 72 КБ на токен для 9 полных слоёв (4 KV-головы × 256
измерений × K+V × f32); скользящие слои хранят только строки своего окна.
Лимит контекста поднимается через CMF_MAX_SEQ:
CMF_MAX_SEQ=131072 cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --max-tokens 4096
Проверка загрузки
sha256sum -c spark-x2.6-4b-q8_2f.cmf.sha256
sha256sum -c spark-x2.6-4b-q4tp.cmf.sha256
cortiq verify spark-x2.6-4b-q8_2f.cmf
cortiq info spark-x2.6-4b-q8_2f.cmf
SHA-256:
spark-x2.6-4b-q8_2f.cmf—e9331f8f1c620fee81c7f673bdcf702dcd4c81458111f10d258c425cf330494fspark-x2.6-4b-q4tp.cmf—76fcaafe19e8c7119838bd2c1343751c2fdbcb37282417eb2838357ffd57937d
Веса получены из релиза XHToken и распространяются на условиях Apache-2.0.
中文文档
Spark-X2.6-4B(4.11 B dense,
混合注意力:9 层全注意力 + 27 层 512 token 滑动窗口,最长 1M token 上下文,
支持思考模式与工具调用)打包为独立的 CMF
文件,由 cortiq 运行——一个不依赖 Python 和机器学习框架的 Rust 推理引擎:
NVIDIA、AMD、Intel 显卡走 Vulkan/DX12,Apple silicon 走 Metal,也可在 CPU
上运行。
X2.6 保持 Spark-X2.5-4B 的架构,改进了后训练(代码、智能体、长上下文、 多语言、推理)。
快速开始
cargo install cortiq-cli
hf download infosave/Spark-X2.6-4B-cmf spark-x2.6-4b-q8_2f.cmf --local-dir .
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "用三句话解释快速排序。" --no-think
建议使用 cortiq 0.8.43 或更新版本;Linux、macOS、Windows 预编译二进制见
发布页面。--no-think 直接
给出回答;不加该参数时模型会先在 […] 块中思考,请调高
--max-tokens(默认 256)。
文件
| 文件 | 量化 | 大小 | wikitext-2 困惑度 | 适用场景 |
|---|---|---|---|---|
spark-x2.6-4b-q8_2f.cmf |
8 位投影(q8_2f),嵌入/归一化 f16 | 4 135 951 050 B(4.14 GB) | 10.71 | 默认:最高保真度 |
spark-x2.6-4b-q4tp.cmf |
4 位投影(q4tp),嵌入/归一化 f16 | 2 161 419 978 B(2.16 GB) | 11.88 | 内存减半、解码更快(困惑度 +10.9%) |
两个文件均含 362 个张量:253 个量化投影 + 109 个 f16(嵌入、归一化、 旋转缓冲),由 bf16 检查点量化而来。
困惑度:wikitext-2 test 的前 4096 个 token,开头加模型的 BOS token,
cortiq ppl --tokens 4096,精确注意力,测于 RTX 2000 Ada。用同一命令在
Spark-X2.5-4B-q8_2f.cmf 上交叉验证为 10.94(该卡标注 10.68;此处文本
从 parquet 重建,仍存在微小的协议差异)。
性能
cortiq bench --core --ignore-eos --tokens 120,解码速度,tok/s,单流:
| 硬件 | 后端 | q8_2f | q4tp |
|---|---|---|---|
| RTX 2000 Ada(16 GB) | Vulkan | 41.5 | 67.2 |
| Mac mini M4(24 GB) | Metal | 20.1 | 34.8 |
| Xeon E5-2699 v4,6 核 | CPU | 4.5 | 4.8 |
提示词处理与深度解码(--ctx,N token 合成提示词,RTX 2000 Ada,Vulkan):
| 提示词 | q8_2f 预填充 | q4tp 预填充 | q8_2f 解码 | q4tp 解码 |
|---|---|---|---|---|
| 1 000 token | 370.3 | 350.6 | 38.0 | 58.7 |
| 16 000 token | 400.2 | 325.8 | 20.3 | 36.9 |
Mac mini M4(24 GB),Metal:
| 提示词 | q8_2f 预填充 | q4tp 预填充 | q8_2f 解码 | q4tp 解码 |
|---|---|---|---|---|
| 1 000 token | 285.7 | 243.5 | 20.0 | 33.6 |
| 16 000 token | 109.9 | 102.6 | 11.1 | 14.6 |
RTX 2000 Ada 上 41 token 提示词的首 token 延迟:0.91 s(q8_2f)、0.42 s (q4tp)。图捕获了 120 个 bench token 中的 119 个。
GPU 常驻权重:4.11 GB(q8_2f)、2.14 GB(q4tp),VRAM 预算为 14.49 GB—— 两个配置在长上下文下都能放进 16 GB 显卡。
质量检查
greedy cortiq run --no-think 测试组,两个文件、CPU 与 GPU(Vulkan)均
已运行;除标注项外答案一致:
| 检查项 | 期望 | 结果 |
|---|---|---|
17 * 23 |
391 |
通过 |
1234 + 5678 |
6912 |
通过 |
| 法国首都(单词) | Paris |
通过 |
| 二战开始年份(俄语) | 1939 |
通过 |
| 打印 2+3 的单行 Python | print(2 + 3) |
通过 |
| 三段论:所有猫 / 有些哺乳动物会游泳 | invalid |
通过 |
| 三段论:所有玫瑰 / 有些花凋谢快 | invalid |
失败——两个文件、CPU 和 GPU 都答“valid/是” |
| 恰好两句关于园艺机器人 | 2 句 | 通过 |
| 一句话解释光合作用 | 1 句 | 通过 |
玫瑰/花的题目考查中项不周延,模型稳定地答错;结构相同的猫/哺乳动物题 则通过。这是已知的推理失误,而非量化伪影——两种量化配置和两个后端表现 一致。
使用
cortiq run spark-x2.6-4b-q8_2f.cmf # 交互式对话
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." # 单次回答(含思考)
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --no-think # 不输出思考块
cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --greedy # 确定性输出
XHToken 推荐 temperature 1.0、top-p 0.95(上游生成示例:
temperature=1.0, top_p=0.95, top_k=0):
cortiq run spark-x2.6-4b-q8_2f.cmf --temperature 1.0 --top-p 0.95 --top-k 0 --min-p 0 --rep-penalty 1.0 --max-tokens 4096 --prompt "..."
不加参数时 CLI 使用 temperature 0.7、top-p 0.9、top-k 40、min-p 0.05、
repetition penalty 1.1,最多生成 256 个新 token。--top-k 0 和
--rep-penalty 1.0 关闭这两项过滤。
OpenAI 兼容 API 服务器:
cortiq serve spark-x2.6-4b-q8_2f.cmf --port 8080
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model": "spark-x2.6-4b-q8_2f", "temperature": 1.0, "top_p": 0.95,
"messages": [{"role": "user", "content": "你好!"}]}'
提供 /v1/chat/completions、/v1/completions、/v1/models 端点,同一端口
还有网页控制台。--host 127.0.0.1 仅限本机访问。回答形式为
[…] […] 回答;请求中 "enable_thinking": false 直接给出回答,
temperature: 0 表示贪心解码。tools 按常规 OpenAI 格式传入,经内置聊天
模板处理。每轮对话只处理与上一轮相比新增的部分:历史为 2 300 token 时,
Mac mini M4 上下一轮约 0.6 s 开始输出。
硬件
Apple silicon(Metal)。 开箱即用 GPU 加速。
选择显卡(Vulkan)。 cortiq gpu 列出所有适配器;CMF_GPU_ADAPTER=1
指定使用哪一块。若 Linux 上列表为空,请安装
libvulkan1 libglvnd0 libegl1 libgl1 libglx0;无显示器的机器需设置
XDG_RUNTIME_DIR=/tmp。
仅用 CPU。 CMF_GPU=0 让所有计算留在 CPU 上。表中 CPU 数据来自
2.2 GHz 的 6 核 Xeon E5-2699 v4;CMF_THREADS=6 是 6/12 线程扫描中最优的。
长上下文
模型支持 1 048 576 个 token,36 层中 27 层为 512 token 滑动窗口,其余 9 层
全注意力。实测 KV 状态(bench --ctx):1 000 token 时 294 912 000 B,
16 000 token 时 1 335 361 536 B(1.24 GiB)——9 个全注意力层每 token 约
72 KB(4 个 KV 头 × 256 维 × K+V × f32);滑动层只保留窗口读取的行。
用 CMF_MAX_SEQ 提高上下文限制:
CMF_MAX_SEQ=131072 cortiq run spark-x2.6-4b-q8_2f.cmf --prompt "..." --max-tokens 4096
校验下载
sha256sum -c spark-x2.6-4b-q8_2f.cmf.sha256
sha256sum -c spark-x2.6-4b-q4tp.cmf.sha256
cortiq verify spark-x2.6-4b-q8_2f.cmf
cortiq info spark-x2.6-4b-q8_2f.cmf
SHA-256:
spark-x2.6-4b-q8_2f.cmf—e9331f8f1c620fee81c7f673bdcf702dcd4c81458111f10d258c425cf330494fspark-x2.6-4b-q4tp.cmf—76fcaafe19e8c7119838bd2c1343751c2fdbcb37282417eb2838357ffd57937d
权重来自 XHToken 的发布,受其 Apache-2.0 条款约束。