--- license: other license_name: qwen-community-1.0 license_link: https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/main/LICENSE library_name: cortiq base_model: Qwen/Qwen3.8-Flash-Next base_model_relation: quantized pipeline_tag: text-generation tags: - cmf - cortiq - quantized - q4tp - moe - code - expert-pruning - speculative-decoding - vulkan - cuda language: - en - ru - zh --- # Qwen3.8-Flash-Next Fast Code — CMF [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) cut for code: 256 of the 512 routed experts of every layer at 4 bits, with the shared expert, the draft (MTP) head and the n-gram table, in one 66.8 GB [CMF](https://github.com/infosave2007/cmf) file. Runs with `cortiq`, a Rust inference engine, on two backends: - **CUDA, NVIDIA cards from 12 GB.** Code at 145 / 175 / 207 tok/s within 12 / 16 / 24 GB of card memory: 94 / 91 / 97 % of the speed of the 2-bit Strata Coder on the same card, with the experts kept at 4 bits and the attention at 8. Measured on an RTX 5090 with its memory held to 12, 16 and 24 GB. - **Vulkan, one card with 48 GB or more.** The whole model on the card: prompt reading at ~840 tok/s, 4× the full 512-expert file; code at 136–166 tok/s; 41 GB of card memory instead of 60. Measured on an RTX PRO 6000 96 GB. - **Accuracy.** HumanEval pass@1 93.3 %; perplexity on fresh code 3.337, against 3.436 for the 2-bit Strata Coder. [English](#which-backend) · [Русский](#документация-на-русском) · [中文](#中文文档) ## Which backend | your card | backend | what it needs | measured on | |---|---|---|---| | NVIDIA, 12 GB or more | [CUDA](#cuda-nvidia-cards-from-12-gb) | cortiq 0.8.78+ built with `--features cuda`, CUDA 12.8+ libraries, 64 GB of RAM, a CPU with AVX-512 VNNI | RTX 5090, memory held to 12 / 16 / 24 GB | | 48 GB or more, with a Vulkan driver | [Vulkan](#vulkan-one-card-with-48-gb-or-more) | cortiq 0.8.65+ (prebuilt binaries), 32 GB of RAM, any CPU | RTX PRO 6000 96 GB | The file, the profile and the server API are the same for both. The two backends were measured on different cards with different tasks: compare the numbers inside one section, not between the two. ## Download The same files for both backends. ```bash pip install -U huggingface_hub hf download infosave/Qwen3.8-Flash-Next-Fast-Code-cmf qwen38-flash-next-fast-code.cmf fast-code.profile \ qwen38-flash-next-fast-code.cmf.sha256 --local-dir . sha256sum -c qwen38-flash-next-fast-code.cmf.sha256 ``` ## CUDA: NVIDIA cards from 12 GB The card holds the experts that fit in its memory; the host's cores compute the rest. ### CUDA · Requirements | component | requirement | |---|---| | GPU | NVIDIA, 12 GB or more; driver 570 or later | | CUDA libraries | `libnvrtc` and `libcublas` of the CUDA 12.8+ toolkit, on `LD_LIBRARY_PATH` | | CPU | x86-64 with AVX-512 VNNI (AMD Zen 4/5, Intel Sapphire Rapids or newer), 8 threads or more | | RAM | 64 GB | | disk | 67 GB | | OS | Linux | | cortiq | 0.8.78 or later, built with `--features cuda`; the prebuilt binaries have no CUDA | ### CUDA · Install ```bash # Rust 1.88 or later; the build itself needs no CUDA toolkit cargo install cortiq-cli --locked --features cuda ``` ### CUDA · Run ```bash export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH # where libnvrtc and libcublas are cortiq gpu # "CUDA: …" means ready; "CUDA: unavailable — " says what is missing CMF_GPU=cuda CMF_QWEN_PROFILE=fast-code.profile CMF_QWEN_ROUTE_TAIL=0.05 \ CMF_SERVE_SLOTS=1 CMF_QWEN_CUDA_REG=1 CMF_QWEN_CUDA_REG_ALL=1 \ cortiq serve qwen38-flash-next-fast-code.cmf --host 127.0.0.1 --port 8080 ``` The server is ready when it answers on `/v1/models`; the first start reads the 66.8 GB file and takes a minute or more. The line `qwen4 cuda: arena prefilled with …` in its log means the card is in use. Requests: [Using the server](#using-the-server). ### CUDA · Settings | variable | what it does | |---|---| | `CMF_GPU=cuda` | selects the CUDA backend | | `CMF_QWEN_PROFILE=fast-code.profile` | the experts' order on the card; always set it | | `CMF_QWEN_ROUTE_TAIL=0.05` | skip the experts with under 5 % of a token's routing weight (the measured setting) | | `CMF_QWEN_CUDA_REG=1 CMF_QWEN_CUDA_REG_ALL=1` | keep every expert pinned in RAM, so nothing waits on the disk; needs 64 GB of RAM | | `CMF_SERVE_SLOTS=1` | one request at a time, at full speed | | `CMF_CUDA_DEVICE=` | which NVIDIA card, by its number (default 0) | | `CMF_GPU_VRAM_MB=` | cap the card memory the model takes (default: what is free) | | `CMF_QWEN_CUDA_GROW_MB=` | card memory kept free for a growing context (default 1024) | | `CMF_QWEN_CPU_EXPERT_THREADS=` | host threads for the experts outside the card (default: every core but three; every core but one under 16 cores) | ### CUDA · Speed Stand: one RTX 5090 with its memory held by `CMF_GPU_VRAM_MB` to 10 732 / 16 384 / 24 576 MiB; cortiq 0.8.78, the run command above, a fresh server for every run; host 2× EPYC 9554 (31 threads, 62 GB of RAM). Task: a program written from a 2 151-token spec, answered to the end; greedy, thinking off; mean of two runs. Strata Coder is ISTA-DASLab's 2-bit cut of the same model. It ran on its own engine, Strata, on the same card, with an expert cache of 1 500 / 3 000 / 5 000 experts (10 732 / 14 542 / 19 622 MiB of the card). | card memory | Fast Code on cortiq, 4-bit experts | Strata Coder on Strata, 2-bit experts | Fast Code against Strata Coder | HumanEval, first 40 tasks (Fast Code) | |---|---:|---:|---:|---:| | 12 GB | **145.0 tok/s** | 154.1 tok/s | 94 % | 38 / 40 | | 16 GB | **174.6 tok/s** | 192.5 tok/s | 91 % | 39 / 40 | | 24 GB | **206.7 tok/s** | 212.0 tok/s | 97 % | 39 / 40 | ![Code generation on NVIDIA cards with 12–24 GB, CUDA backend](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_cuda_en.png) ### CUDA · Troubleshooting - `cortiq gpu` prints `CUDA: unavailable`, or the server log has `libnvrtc (CUDA toolkit) was not found` or `qwen4 cuda: …; staying on the host path`: the model is running on the CPU. Install the CUDA 12.8+ toolkit and put its `lib64` on `LD_LIBRARY_PATH`. - **Out of memory on the card**: close other GPU programs or set `CMF_GPU_VRAM_MB` a little lower. - **Less than 64 GB of RAM**: drop `CMF_QWEN_CUDA_REG_ALL=1` (and if needed `CMF_QWEN_CUDA_REG=1`); it runs slower. - **A host without AVX-512 VNNI**: every expert outside the card is copied to it instead; it runs, slower. - **Several NVIDIA cards**: pick one with `CMF_CUDA_DEVICE`. - More in the [CUDA guide](https://github.com/infosave2007/cmf/blob/master/docs/CUDA.md). ## Vulkan: one card with 48 GB or more The whole model is on the card. ### Vulkan · Requirements | component | requirement | |---|---| | GPU | one card with 48 GB or more and a Vulkan driver; tested on an RTX PRO 6000 96 GB | | CPU | any x86-64 or ARM64 | | RAM | 32 GB (the n-gram table, 28 GB, stays in RAM) | | disk | 67 GB | | OS | Linux | | cortiq | 0.8.65 or later: a [prebuilt binary](https://github.com/infosave2007/cmf/releases) or `cargo install` | ### Vulkan · Install A prebuilt binary from the [releases page](https://github.com/infosave2007/cmf/releases), or: ```bash cargo install cortiq-cli --locked ``` In a container, add the Vulkan loader: ```bash apt-get install -y --no-install-recommends vulkan-tools libglvnd0 libegl1 libgl1 libglx0 ``` ### Vulkan · Run ```bash export XDG_RUNTIME_DIR=/tmp # only on Linux without a display cortiq gpu # lists the cards Vulkan sees CMF_QWEN_PROFILE=fast-code.profile \ cortiq serve qwen38-flash-next-fast-code.cmf --host 127.0.0.1 --port 8080 ``` The server is ready when it answers on `/v1/models`; the first start reads the 66.8 GB file and takes a minute or more. Requests: [Using the server](#using-the-server). ### Vulkan · Settings | variable | what it does | |---|---| | `CMF_QWEN_PROFILE=fast-code.profile` | the experts' order on the card; always set it | | `CMF_GPU_ADAPTER=` | which card, by its number in `cortiq gpu` | | `CMF_SERVE_SLOTS=` | requests served at once (default: cores / 4, from 1 to 4); 1 gives one request the full speed | | `XDG_RUNTIME_DIR=/tmp` | Vulkan on Linux without a display | ### Vulkan · Speed Stand: one RTX PRO 6000 96 GB; cortiq on the Vulkan backend, the run command above. One stream, greedy, thinking off, draft tokens on; a new session tag before every prompt, so nothing comes from a cache; Fast Code is the mean of two runs. The full file is the same model with all 512 experts of a layer at 4 bits ([Qwen3.8-Flash-Next-cmf](https://huggingface.co/infosave/Qwen3.8-Flash-Next-cmf)), on the same engine and the same card. | | Fast Code | full file | |---|---:|---:| | prompt reading at 1K / 4K / 16K / 32K tokens, tok/s | **798 / 827 / 844 / 842** | 171 / 208 / 206 / 210 | | code generation after a 4K / 16K / 32K prompt, tok/s | **161 / 166 / 136** | 118 / 138 / 116 | | peak card memory (32K context) | **40.9 GB** | 59.6 GB | | file on disk | **66.8 GB** | 98.6 GB | ![Fast Code on one card with 48 GB or more, Vulkan backend](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_vulkan_en.png) ### Vulkan · Troubleshooting - **`cortiq gpu` lists no card**: on Linux without a display set `XDG_RUNTIME_DIR=/tmp`; in a container install the packages above. - **Several cards**: pick one with `CMF_GPU_ADAPTER`. - **Out of memory on the card**: close other GPU programs; the model takes 41 GB at a 32K context. ## Using the server The same on both backends. ```bash curl http://127.0.0.1:8080/v1/chat/completions -H "Content-Type: application/json" \ -d '{"model": "fast-code", "enable_thinking": false, "temperature": 0, "messages": [{"role": "user", "content": "Write a Rust function that parses a semantic version, with tests."}]}' ``` Endpoints: `/v1/chat/completions` (streaming, `tools`, `enable_thinking`), `/v1/completions`, `/v1/models`, `/healthz`, a web dashboard on `/`. Draft tokens are used under `temperature: 0`. Any OpenAI-compatible editor or agent can point at `http://127.0.0.1:8080/v1`. One prompt without a server (on CUDA, with the variables of the run command): ```bash CMF_QWEN_PROFILE=fast-code.profile cortiq run qwen38-flash-next-fast-code.cmf --prompt-file task.txt --greedy --no-think ``` - **The answer starts with reasoning**: send `"enable_thinking": false` (`--no-think` for `cortiq run`). - **Slow first request**: the weights are still coming from the disk; keep the server running between requests. - **Context**: 32 768 tokens by default; `CMF_MAX_SEQ=` changes the limit. - **Network**: the server checks no key; keep `--host 127.0.0.1` unless the network is trusted. ## Accuracy Accuracy is a property of the file, the same on both backends. | | Fast Code | Strata Coder | full file | |---|---:|---:|---:| | expert weights | **4 bits** | 2 bits | 4 bits | | code perplexity, code written after 20.10.2026 (8192 tokens) | **3.337** | 3.436¹ | 3.366 | | code perplexity, Rust (1536 tokens) | 4.900 | 4.690¹ | 4.111 | | HumanEval pass@1 (164 tasks, thinking off) | 93.3 % | 94.5 % | 94.5 % | | file on disk | 66.8 GB | 58.4 GB + 5.2 GB MTP | 98.6 GB | ¹ Strata Coder's weights imported into CMF and run by cortiq: the same text and tokenizer for all three. ![Accuracy on code](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_quality_en.png) ## Files | file | contents | size | |---|---|---:| | `qwen38-flash-next-fast-code.cmf` | 256 of 512 routed experts a layer (4-bit q4tp) and the shared expert; attention, embeddings and the output head 8-bit; the n-gram table 4-bit; the draft (MTP) head | 66.76 GB | | `fast-code.profile` | routing profile (not weights): the experts' order on the card | 49 KB | | `qwen38-flash-next-fast-code.cmf.sha256` | checksum | | The kept experts are the ones code routes to most. For general chat use the [full file](https://huggingface.co/infosave/Qwen3.8-Flash-Next-cmf). Attention is exact up to 262 144 tokens. Weights derive from Qwen's release and remain under its license. Review generated code before running it. --- ## Документация на русском [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next), урезанная под код: 256 из 512 экспертов каждого слоя в 4 битах, с общим экспертом, головой черновиков (MTP) и таблицей n-грамм, в одном файле [CMF](https://github.com/infosave2007/cmf) на 66.8 ГБ. Запускается движком `cortiq` на Rust, на двух бэкендах: - **CUDA, карты NVIDIA от 12 ГБ.** Код 145 / 175 / 207 ток/с в 12 / 16 / 24 ГБ памяти карты: 94 / 91 / 97 % скорости 2-битной Strata Coder на той же карте, при экспертах в 4 битах и внимании в 8. Измерено на RTX 5090 с памятью, ограниченной до 12, 16 и 24 ГБ. - **Vulkan, одна карта от 48 ГБ.** Вся модель на карте: чтение промпта ~840 ток/с, в 4 раза быстрее полного файла на 512 экспертов; код 136–166 ток/с; 41 ГБ памяти карты вместо 60. Измерено на RTX PRO 6000 96 ГБ. - **Точность.** HumanEval pass@1 93.3 %; перплексия на свежем коде 3.337 против 3.436 у 2-битной Strata Coder. ### Какой бэкенд | ваша карта | бэкенд | что нужно | на чём измерено | |---|---|---|---| | NVIDIA от 12 ГБ | [CUDA](#cuda-карты-nvidia-от-12-гб) | cortiq 0.8.78+ со сборкой `--features cuda`, библиотеки CUDA 12.8+, 64 ГБ ОЗУ, процессор с AVX-512 VNNI | RTX 5090, память ограничена до 12 / 16 / 24 ГБ | | от 48 ГБ, с драйвером Vulkan | [Vulkan](#vulkan-одна-карта-от-48-гб) | cortiq 0.8.65+ (готовые сборки), 32 ГБ ОЗУ, любой процессор | RTX PRO 6000 96 ГБ | Файл, профиль и API сервера одни и те же. Бэкенды измерены на разных картах и разных задачах: сравнивайте числа внутри одного раздела, а не между разделами. ### Загрузка Файлы одни для обоих бэкендов. ```bash pip install -U huggingface_hub hf download infosave/Qwen3.8-Flash-Next-Fast-Code-cmf qwen38-flash-next-fast-code.cmf fast-code.profile \ qwen38-flash-next-fast-code.cmf.sha256 --local-dir . sha256sum -c qwen38-flash-next-fast-code.cmf.sha256 ``` ### CUDA: карты NVIDIA от 12 ГБ Карта держит экспертов, которые помещаются в её память; остальных считают ядра процессора. #### CUDA · Требования | компонент | требование | |---|---| | видеокарта | NVIDIA от 12 ГБ; драйвер 570 или новее | | библиотеки CUDA | `libnvrtc` и `libcublas` из CUDA 12.8+, в `LD_LIBRARY_PATH` | | процессор | x86-64 с AVX-512 VNNI (AMD Zen 4/5, Intel Sapphire Rapids и новее), от 8 потоков | | ОЗУ | 64 ГБ | | диск | 67 ГБ | | ОС | Linux | | cortiq | 0.8.78 или новее, сборка с `--features cuda`; в готовых сборках CUDA нет | #### CUDA · Установка ```bash # Rust 1.88 или новее; для самой сборки CUDA не нужна cargo install cortiq-cli --locked --features cuda ``` #### CUDA · Запуск ```bash export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH # где лежат libnvrtc и libcublas cortiq gpu # "CUDA: <ваша карта> …" — готово; "CUDA: unavailable — <причина>" — чего не хватает CMF_GPU=cuda CMF_QWEN_PROFILE=fast-code.profile CMF_QWEN_ROUTE_TAIL=0.05 \ CMF_SERVE_SLOTS=1 CMF_QWEN_CUDA_REG=1 CMF_QWEN_CUDA_REG_ALL=1 \ cortiq serve qwen38-flash-next-fast-code.cmf --host 127.0.0.1 --port 8080 ``` Сервер готов, когда отвечает на `/v1/models`; первый запуск читает файл на 66.8 ГБ, это минута и дольше. Строка `qwen4 cuda: arena prefilled with …` в логе означает, что карта работает. Запросы — в разделе [Работа с сервером](#работа-с-сервером). #### CUDA · Настройки | переменная | что делает | |---|---| | `CMF_GPU=cuda` | включает бэкенд CUDA | | `CMF_QWEN_PROFILE=fast-code.profile` | порядок экспертов на карте; задавайте всегда | | `CMF_QWEN_ROUTE_TAIL=0.05` | пропускать экспертов с долей маршрута токена меньше 5 % (так измерено) | | `CMF_QWEN_CUDA_REG=1 CMF_QWEN_CUDA_REG_ALL=1` | все эксперты закреплены в ОЗУ, ничто не ждёт диск; нужно 64 ГБ ОЗУ | | `CMF_SERVE_SLOTS=1` | один запрос за раз, на полной скорости | | `CMF_CUDA_DEVICE=` | какая карта NVIDIA, по номеру (по умолчанию 0) | | `CMF_GPU_VRAM_MB=<МиБ>` | сколько памяти карты брать (по умолчанию — свободную) | | `CMF_QWEN_CUDA_GROW_MB=<МиБ>` | запас памяти карты под растущий контекст (по умолчанию 1024) | | `CMF_QWEN_CPU_EXPERT_THREADS=` | потоки процессора для экспертов вне карты (по умолчанию все ядра, кроме трёх; при менее чем 16 ядрах — кроме одного) | #### CUDA · Скорость Стенд: одна RTX 5090, память ограничена через `CMF_GPU_VRAM_MB` до 10 732 / 16 384 / 24 576 МиБ; cortiq 0.8.78, команда запуска выше, новый сервер на каждый прогон; хост 2× EPYC 9554 (31 поток, 62 ГБ ОЗУ). Задача: программа по ТЗ на 2 151 токен, ответ до конца; жадный выбор, без рассуждений; среднее двух прогонов. Strata Coder — 2-битная сборка той же модели от ISTA-DASLab. Она работала на собственном движке Strata, на той же карте, с кешем на 1 500 / 3 000 / 5 000 экспертов (10 732 / 14 542 / 19 622 МиБ карты). | память карты | Fast Code на cortiq, эксперты 4 бита | Strata Coder на Strata, эксперты 2 бита | Fast Code к Strata Coder | HumanEval, первые 40 задач (Fast Code) | |---|---:|---:|---:|---:| | 12 ГБ | **145.0 ток/с** | 154.1 ток/с | 94 % | 38 / 40 | | 16 ГБ | **174.6 ток/с** | 192.5 ток/с | 91 % | 39 / 40 | | 24 ГБ | **206.7 ток/с** | 212.0 ток/с | 97 % | 39 / 40 | ![Генерация кода на картах NVIDIA 12–24 ГБ, бэкенд CUDA](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_cuda_ru.png) #### CUDA · Если не работает - `cortiq gpu` пишет `CUDA: unavailable`, либо в логе сервера `libnvrtc (CUDA toolkit) was not found` или `qwen4 cuda: …; staying on the host path`: модель считается на процессоре. Поставьте CUDA 12.8+ и добавьте её `lib64` в `LD_LIBRARY_PATH`. - **Не хватает памяти карты**: закройте другие программы на GPU или задайте `CMF_GPU_VRAM_MB` чуть меньше. - **ОЗУ меньше 64 ГБ**: уберите `CMF_QWEN_CUDA_REG_ALL=1` (при нехватке и `CMF_QWEN_CUDA_REG=1`); работает медленнее. - **Процессор без AVX-512 VNNI**: каждый эксперт вне карты копируется на неё; работает, медленнее. - **Несколько карт NVIDIA**: выберите одну через `CMF_CUDA_DEVICE`. - Подробнее — в [руководстве по CUDA](https://github.com/infosave2007/cmf/blob/master/docs/CUDA.md). ### Vulkan: одна карта от 48 ГБ Вся модель лежит на карте. #### Vulkan · Требования | компонент | требование | |---|---| | видеокарта | одна карта от 48 ГБ с драйвером Vulkan; проверено на RTX PRO 6000 96 ГБ | | процессор | любой x86-64 или ARM64 | | ОЗУ | 32 ГБ (таблица n-грамм, 28 ГБ, живёт в ОЗУ) | | диск | 67 ГБ | | ОС | Linux | | cortiq | 0.8.65 или новее: [готовая сборка](https://github.com/infosave2007/cmf/releases) или `cargo install` | #### Vulkan · Установка Готовая сборка со [страницы релизов](https://github.com/infosave2007/cmf/releases), либо: ```bash cargo install cortiq-cli --locked ``` В контейнере добавьте загрузчик Vulkan: ```bash apt-get install -y --no-install-recommends vulkan-tools libglvnd0 libegl1 libgl1 libglx0 ``` #### Vulkan · Запуск ```bash export XDG_RUNTIME_DIR=/tmp # только на Linux без экрана cortiq gpu # список карт, которые видит Vulkan CMF_QWEN_PROFILE=fast-code.profile \ cortiq serve qwen38-flash-next-fast-code.cmf --host 127.0.0.1 --port 8080 ``` Сервер готов, когда отвечает на `/v1/models`; первый запуск читает файл на 66.8 ГБ, это минута и дольше. Запросы — в разделе [Работа с сервером](#работа-с-сервером). #### Vulkan · Настройки | переменная | что делает | |---|---| | `CMF_QWEN_PROFILE=fast-code.profile` | порядок экспертов на карте; задавайте всегда | | `CMF_GPU_ADAPTER=` | какая карта, по номеру из `cortiq gpu` | | `CMF_SERVE_SLOTS=` | сколько запросов обслуживать сразу (по умолчанию ядра / 4, от 1 до 4); 1 отдаёт одному запросу всю скорость | | `XDG_RUNTIME_DIR=/tmp` | Vulkan на Linux без экрана | #### Vulkan · Скорость Стенд: одна RTX PRO 6000 96 ГБ; cortiq на бэкенде Vulkan, команда запуска выше. Один поток, жадный выбор, без рассуждений, черновики включены; перед каждым промптом новая метка сессии, поэтому кеш не участвует; Fast Code — среднее двух прогонов. Полный файл — та же модель со всеми 512 экспертами слоя в 4 битах ([Qwen3.8-Flash-Next-cmf](https://huggingface.co/infosave/Qwen3.8-Flash-Next-cmf)), тот же движок и та же карта. | | Fast Code | полный файл | |---|---:|---:| | чтение промпта на 1K / 4K / 16K / 32K токенов, ток/с | **798 / 827 / 844 / 842** | 171 / 208 / 206 / 210 | | генерация кода после промпта 4K / 16K / 32K, ток/с | **161 / 166 / 136** | 118 / 138 / 116 | | пик памяти карты (контекст 32K) | **40.9 ГБ** | 59.6 ГБ | | файл на диске | **66.8 ГБ** | 98.6 ГБ | ![Fast Code на одной карте от 48 ГБ, бэкенд Vulkan](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_vulkan_ru.png) #### Vulkan · Если не работает - **`cortiq gpu` не показывает карту**: на Linux без экрана задайте `XDG_RUNTIME_DIR=/tmp`; в контейнере поставьте пакеты из раздела установки. - **Несколько карт**: выберите одну через `CMF_GPU_ADAPTER`. - **Не хватает памяти карты**: закройте другие программы на GPU; модель занимает 41 ГБ при контексте 32K. ### Работа с сервером Одинаково на обоих бэкендах. ```bash curl http://127.0.0.1:8080/v1/chat/completions -H "Content-Type: application/json" \ -d '{"model": "fast-code", "enable_thinking": false, "temperature": 0, "messages": [{"role": "user", "content": "Напиши функцию на Rust, которая разбирает semver, с тестами."}]}' ``` Точки входа: `/v1/chat/completions` (потоковый вывод, `tools`, `enable_thinking`), `/v1/completions`, `/v1/models`, `/healthz`, веб-панель на `/`. Черновики работают при `temperature: 0`. Любой редактор или агент с OpenAI API подключается к `http://127.0.0.1:8080/v1`. Один запрос без сервера (на CUDA — с переменными из команды запуска): ```bash CMF_QWEN_PROFILE=fast-code.profile cortiq run qwen38-flash-next-fast-code.cmf --prompt-file task.txt --greedy --no-think ``` - **Ответ начинается с рассуждений**: передайте `"enable_thinking": false` (`--no-think` для `cortiq run`). - **Медленный первый запрос**: веса ещё читаются с диска; держите сервер запущенным. - **Контекст**: по умолчанию 32 768 токенов; предел меняет `CMF_MAX_SEQ=<токены>`. - **Сеть**: сервер не проверяет ключ; оставляйте `--host 127.0.0.1`, если сеть не доверенная. ### Точность Точность — свойство файла, она одна на обоих бэкендах. | | Fast Code | Strata Coder | полный файл | |---|---:|---:|---:| | веса экспертов | **4 бита** | 2 бита | 4 бита | | перплексия на коде, написанном после 20.10.2026 (8192 токена) | **3.337** | 3.436¹ | 3.366 | | перплексия на коде Rust (1536 токенов) | 4.900 | 4.690¹ | 4.111 | | HumanEval pass@1 (164 задачи, без рассуждений) | 93.3 % | 94.5 % | 94.5 % | | файл на диске | 66.8 ГБ | 58.4 ГБ + 5.2 ГБ MTP | 98.6 ГБ | ¹ Веса Strata Coder, импортированные в CMF и запущенные cortiq: один текст и один токенизатор для всех трёх. ![Точность на коде](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_quality_ru.png) ### Файлы | файл | содержимое | размер | |---|---|---:| | `qwen38-flash-next-fast-code.cmf` | 256 из 512 экспертов слоя (4 бита, q4tp) и общий эксперт; внимание, эмбеддинги и выходная голова в 8 битах; таблица n-грамм в 4 битах; голова черновиков (MTP) | 66.76 ГБ | | `fast-code.profile` | профиль маршрутизации (не веса): порядок экспертов на карте | 49 КБ | | `qwen38-flash-next-fast-code.cmf.sha256` | контрольная сумма | | Оставлены эксперты, к которым код обращается чаще всего. Для общего чата — [полный файл](https://huggingface.co/infosave/Qwen3.8-Flash-Next-cmf). Внимание точное до 262 144 токенов. Веса получены из релиза Qwen и остаются под его лицензией. Проверяйте сгенерированный код перед запуском. --- ## 中文文档 [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) 的代码专用裁剪版:每层 512 个路由专家保留 256 个(4 位), 连同共享专家、草稿(MTP)头和 n-gram 表,打包为一个 66.8 GB 的 [CMF](https://github.com/infosave2007/cmf) 文件,由 Rust 推理引擎 `cortiq` 运行,支持两种后端: - **CUDA,12 GB 起的 NVIDIA 显卡。** 在 12 / 16 / 24 GB 显存内生成代码 145 / 175 / 207 token/s,为同一张显卡上 2 位 Strata Coder 速度的 94 / 91 / 97 %,专家保持 4 位、注意力保持 8 位。测试平台:显存限制为 12、16、24 GB 的 RTX 5090。 - **Vulkan,一张 48 GB 以上的显卡。** 整个模型都在显卡上:读取提示词约 840 token/s,是 512 专家完整文件的 4 倍;生成代码 136–166 token/s;显存 41 GB,完整文件为 60 GB。测试平台:RTX PRO 6000 96 GB。 - **准确率。** HumanEval pass@1 93.3 %;新代码困惑度 3.337,2 位 Strata Coder 为 3.436。 ### 选择后端 | 你的显卡 | 后端 | 需要 | 测试平台 | |---|---|---|---| | NVIDIA,12 GB 以上 | [CUDA](#cuda-后端:12-gb-起的-nvidia-显卡) | cortiq 0.8.78+,以 `--features cuda` 构建;CUDA 12.8+ 库;64 GB 内存;支持 AVX-512 VNNI 的 CPU | RTX 5090,显存限制为 12 / 16 / 24 GB | | 48 GB 以上,带 Vulkan 驱动 | [Vulkan](#vulkan-后端:一张-48-gb-以上的显卡) | cortiq 0.8.65+(预编译版本);32 GB 内存;任意 CPU | RTX PRO 6000 96 GB | 文件、画像和服务器 API 对两种后端相同。两种后端在不同的显卡和不同的任务上测得:数字只在同一节内比较,不要跨节比较。 ### 下载 两种后端使用相同的文件。 ```bash pip install -U huggingface_hub hf download infosave/Qwen3.8-Flash-Next-Fast-Code-cmf qwen38-flash-next-fast-code.cmf fast-code.profile \ qwen38-flash-next-fast-code.cmf.sha256 --local-dir . sha256sum -c qwen38-flash-next-fast-code.cmf.sha256 ``` ### CUDA 后端:12 GB 起的 NVIDIA 显卡 显卡保存放得下的专家,其余专家由主机 CPU 计算。 #### CUDA · 环境要求 | 组件 | 要求 | |---|---| | 显卡 | NVIDIA,12 GB 以上;驱动 570 或更高 | | CUDA 库 | CUDA 12.8+ 的 `libnvrtc` 与 `libcublas`,位于 `LD_LIBRARY_PATH` | | CPU | 支持 AVX-512 VNNI 的 x86-64(AMD Zen 4/5、Intel Sapphire Rapids 或更新),8 线程以上 | | 内存 | 64 GB | | 磁盘 | 67 GB | | 系统 | Linux | | cortiq | 0.8.78 或更高,以 `--features cuda` 构建;预编译版本不含 CUDA | #### CUDA · 安装 ```bash # Rust 1.88 或更高;构建本身不需要 CUDA cargo install cortiq-cli --locked --features cuda ``` #### CUDA · 运行 ```bash export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH # libnvrtc 与 libcublas 所在目录 cortiq gpu # "CUDA: <你的显卡> …" 表示就绪;"CUDA: unavailable — <原因>" 说明缺少什么 CMF_GPU=cuda CMF_QWEN_PROFILE=fast-code.profile CMF_QWEN_ROUTE_TAIL=0.05 \ CMF_SERVE_SLOTS=1 CMF_QWEN_CUDA_REG=1 CMF_QWEN_CUDA_REG_ALL=1 \ cortiq serve qwen38-flash-next-fast-code.cmf --host 127.0.0.1 --port 8080 ``` 服务器在 `/v1/models` 有响应即就绪;首次启动需读取 66.8 GB 文件,约一分钟或更久。日志中出现 `qwen4 cuda: arena prefilled with …` 表示显卡已在工作。请求方式见[使用服务器](#使用服务器)。 #### CUDA · 设置 | 变量 | 作用 | |---|---| | `CMF_GPU=cuda` | 选择 CUDA 后端 | | `CMF_QWEN_PROFILE=fast-code.profile` | 专家在显卡上的顺序;务必设置 | | `CMF_QWEN_ROUTE_TAIL=0.05` | 跳过路由权重低于 5 % 的专家(测试所用设置) | | `CMF_QWEN_CUDA_REG=1 CMF_QWEN_CUDA_REG_ALL=1` | 全部专家锁定在内存中,不等待磁盘;需要 64 GB 内存 | | `CMF_SERVE_SLOTS=1` | 一次一个请求,全速 | | `CMF_CUDA_DEVICE=` | 使用第几张 NVIDIA 显卡(默认 0) | | `CMF_GPU_VRAM_MB=` | 模型可用的显存上限(默认:全部空闲显存) | | `CMF_QWEN_CUDA_GROW_MB=` | 为增长的上下文预留的显存(默认 1024) | | `CMF_QWEN_CPU_EXPERT_THREADS=` | 计算显卡外专家的主机线程数(默认:全部核心减三;不足 16 核时减一) | #### CUDA · 速度 测试平台:一张 RTX 5090,用 `CMF_GPU_VRAM_MB` 把显存限制为 10 732 / 16 384 / 24 576 MiB;cortiq 0.8.78,上面的运行命令, 每次运行都重新启动服务器;主机 2× EPYC 9554(31 线程,62 GB 内存)。任务:按 2 151 token 的需求写出完整程序,直到回答结束; 贪心解码,关闭思考;两次运行的平均值。 Strata Coder 是 ISTA-DASLab 对同一模型的 2 位裁剪版,运行于其自有引擎 Strata,在同一张显卡上,专家缓存为 1 500 / 3 000 / 5 000 个(占显卡 10 732 / 14 542 / 19 622 MiB)。 | 显存 | Fast Code(cortiq),专家 4 位 | Strata Coder(Strata),专家 2 位 | Fast Code 相对 Strata Coder | HumanEval 前 40 题(Fast Code) | |---|---:|---:|---:|---:| | 12 GB | **145.0 token/s** | 154.1 token/s | 94 % | 38 / 40 | | 16 GB | **174.6 token/s** | 192.5 token/s | 91 % | 39 / 40 | | 24 GB | **206.7 token/s** | 212.0 token/s | 97 % | 39 / 40 | ![在 12–24 GB 的 NVIDIA 显卡上生成代码,CUDA 后端](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_cuda_zh.png) #### CUDA · 常见问题 - `cortiq gpu` 显示 `CUDA: unavailable`,或服务器日志出现 `libnvrtc (CUDA toolkit) was not found`、 `qwen4 cuda: …; staying on the host path`:模型正在 CPU 上运行。安装 CUDA 12.8+,并把其 `lib64` 加入 `LD_LIBRARY_PATH`。 - **显存不足**:关闭其他使用 GPU 的程序,或把 `CMF_GPU_VRAM_MB` 设小一些。 - **内存不足 64 GB**:去掉 `CMF_QWEN_CUDA_REG_ALL=1`(必要时也去掉 `CMF_QWEN_CUDA_REG=1`),速度会变慢。 - **CPU 不支持 AVX-512 VNNI**:显卡外的专家改为复制到显卡;可以运行,但更慢。 - **多张 NVIDIA 显卡**:用 `CMF_CUDA_DEVICE` 选择其中一张。 - 更多内容见 [CUDA 指南](https://github.com/infosave2007/cmf/blob/master/docs/CUDA.md)。 ### Vulkan 后端:一张 48 GB 以上的显卡 整个模型都在显卡上。 #### Vulkan · 环境要求 | 组件 | 要求 | |---|---| | 显卡 | 一张 48 GB 以上、带 Vulkan 驱动的显卡;已在 RTX PRO 6000 96 GB 上验证 | | CPU | 任意 x86-64 或 ARM64 | | 内存 | 32 GB(n-gram 表 28 GB 常驻内存) | | 磁盘 | 67 GB | | 系统 | Linux | | cortiq | 0.8.65 或更高:[预编译版本](https://github.com/infosave2007/cmf/releases)或 `cargo install` | #### Vulkan · 安装 从[发布页](https://github.com/infosave2007/cmf/releases)下载预编译版本,或: ```bash cargo install cortiq-cli --locked ``` 在容器中还需安装 Vulkan 加载器: ```bash apt-get install -y --no-install-recommends vulkan-tools libglvnd0 libegl1 libgl1 libglx0 ``` #### Vulkan · 运行 ```bash export XDG_RUNTIME_DIR=/tmp # 仅用于无显示器的 Linux cortiq gpu # 列出 Vulkan 能看到的显卡 CMF_QWEN_PROFILE=fast-code.profile \ cortiq serve qwen38-flash-next-fast-code.cmf --host 127.0.0.1 --port 8080 ``` 服务器在 `/v1/models` 有响应即就绪;首次启动需读取 66.8 GB 文件,约一分钟或更久。请求方式见[使用服务器](#使用服务器)。 #### Vulkan · 设置 | 变量 | 作用 | |---|---| | `CMF_QWEN_PROFILE=fast-code.profile` | 专家在显卡上的顺序;务必设置 | | `CMF_GPU_ADAPTER=` | 使用哪张显卡,取 `cortiq gpu` 中的编号 | | `CMF_SERVE_SLOTS=` | 同时处理的请求数(默认:核心数 / 4,范围 1 到 4);设为 1 时单个请求全速 | | `XDG_RUNTIME_DIR=/tmp` | 无显示器的 Linux 上使用 Vulkan | #### Vulkan · 速度 测试平台:一张 RTX PRO 6000 96 GB;cortiq 的 Vulkan 后端,上面的运行命令。单路,贪心解码,关闭思考,开启草稿; 每个提示词前加新的会话标记,因此不使用缓存;Fast Code 为两次运行的平均值。 完整文件是同一模型,保留每层全部 512 个专家,4 位 ([Qwen3.8-Flash-Next-cmf](https://huggingface.co/infosave/Qwen3.8-Flash-Next-cmf)),同一引擎,同一张显卡。 | | Fast Code | 完整文件 | |---|---:|---:| | 读取 1K / 4K / 16K / 32K token 的提示词,token/s | **798 / 827 / 844 / 842** | 171 / 208 / 206 / 210 | | 4K / 16K / 32K 提示词后生成代码,token/s | **161 / 166 / 136** | 118 / 138 / 116 | | 显存峰值(32K 上下文) | **40.9 GB** | 59.6 GB | | 磁盘文件 | **66.8 GB** | 98.6 GB | ![Fast Code:一张 48 GB 以上的显卡,Vulkan 后端](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_vulkan_zh.png) #### Vulkan · 常见问题 - `cortiq gpu` 没有列出显卡:在无显示器的 Linux 上设置 `XDG_RUNTIME_DIR=/tmp`;在容器中安装上面的软件包。 - **多张显卡**:用 `CMF_GPU_ADAPTER` 选择其中一张。 - **显存不足**:关闭其他使用 GPU 的程序;32K 上下文时模型占用 41 GB。 ### 使用服务器 两种后端用法相同。 ```bash curl http://127.0.0.1:8080/v1/chat/completions -H "Content-Type: application/json" \ -d '{"model": "fast-code", "enable_thinking": false, "temperature": 0, "messages": [{"role": "user", "content": "用 Rust 写一个解析语义化版本号的函数,并附测试。"}]}' ``` 接口:`/v1/chat/completions`(流式、`tools`、`enable_thinking`)、`/v1/completions`、`/v1/models`、`/healthz`,`/` 为网页面板。 `temperature: 0` 时启用草稿。任何兼容 OpenAI 的编辑器或智能体都可连接 `http://127.0.0.1:8080/v1`。 不启动服务器、单次提示(CUDA 需带上运行命令中的变量): ```bash CMF_QWEN_PROFILE=fast-code.profile cortiq run qwen38-flash-next-fast-code.cmf --prompt-file task.txt --greedy --no-think ``` - **回答以推理开头**:发送 `"enable_thinking": false`(`cortiq run` 用 `--no-think`)。 - **首个请求较慢**:权重仍在从磁盘读取;请保持服务器运行。 - **上下文**:默认 32 768 token;用 `CMF_MAX_SEQ=` 修改上限。 - **网络**:服务器不校验密钥;除非网络可信,请保留 `--host 127.0.0.1`。 ### 准确率 准确率取决于文件,两种后端相同。 | | Fast Code | Strata Coder | 完整文件 | |---|---:|---:|---:| | 专家权重 | **4 位** | 2 位 | 4 位 | | 代码困惑度,2026-10-20 之后写的代码(8192 token) | **3.337** | 3.436¹ | 3.366 | | 代码困惑度,Rust(1536 token) | 4.900 | 4.690¹ | 4.111 | | HumanEval pass@1(164 题,关闭思考) | 93.3 % | 94.5 % | 94.5 % | | 磁盘文件 | 66.8 GB | 58.4 GB + 5.2 GB MTP | 98.6 GB | ¹ Strata Coder 的权重导入 CMF 后由 cortiq 运行:三者使用相同的文本与分词器。 ![代码准确率](https://huggingface.co/infosave/Qwen3.8-Flash-Next-Fast-Code-cmf/resolve/main/assets/fc_quality_zh.png) ### 文件 | 文件 | 内容 | 大小 | |---|---|---:| | `qwen38-flash-next-fast-code.cmf` | 每层 512 个路由专家中的 256 个(4 位 q4tp)与共享专家;注意力、嵌入与输出头 8 位;n-gram 表 4 位;草稿(MTP)头 | 66.76 GB | | `fast-code.profile` | 路由画像(非权重):专家在显卡上的顺序 | 49 KB | | `qwen38-flash-next-fast-code.cmf.sha256` | 校验和 | | 保留的是代码最常路由到的专家。通用对话请使用[完整文件](https://huggingface.co/infosave/Qwen3.8-Flash-Next-cmf)。注意力在 262 144 token 内为精确计算。 权重源自 Qwen 的发布,仍受其许可约束。运行生成的代码前请先审阅。