Перейти к содержанию
Публикация AiManual

Qwen3.8-27B на RTX PRO 4000 Blackwell 24GB: 128K контекст и ускорение MTP3

Разбираем запуск Qwen3.8-27B на RTX PRO 4000 Blackwell 24GB: выбор CUDA 13.3 и nvcc, поддержку sm_120a, пересборку NInfer, MTP3 и сравнение BF16 с INT8 KV cache

Коротко

Что будет в материале

  1. 01

    Короткий ответ: Qwen3.8-27B запускается, но 24 ГБ требуют точной настройки

  2. 02

    Конфигурация: модель, GPU и цена каждого гигабайта VRAM

  3. 03

    CUDA toolchain: почему выбор nvcc определил успешный запуск

  4. 04

    Первый baseline: обычный decode без MTP3

Qwen3.8-27B можно запускать локально на RTX PRO 4000 Blackwell с 24 ГБ VRAM, но конфигурация требует точного подбора CUDA toolchain, backend и формата KV cache. Запас памяти здесь формируют не только веса модели: его расходуют KV cache, временные буферы, состояние MTP3 и сам runtime.

Контекст 128K в такой конфигурации нужно трактовать аккуратно. Тесты на 32K, 64K и 128K показывают, помещается ли KV cache и сохраняет ли система стабильность. Фактическую способность модели находить сведения в длинном prompt проверяет отдельный NIAH-сценарий с 130K prompt tokens. Без такого теста корректно говорить о вместимости, но не о качестве работы с длинным контекстом.

Ключевой технический фактор запуска, CUDA 13.3 и корректный выбор nvcc с поддержкой целевой архитектуры sm_120a. При несовместимом toolchain стандартная сборка NInfer может завершиться ошибкой или не дать нужного CUDA-кода для Blackwell. Практический порядок такой: сначала проверить окружение, затем пересобрать NInfer, запустить baseline без MTP3 и только после этого сравнивать MTP3, BF16 и INT8 KV cache.

Короткий ответ: Qwen3.8-27B запускается, но 24 ГБ требуют точной настройки

RTX PRO 4000 Blackwell с 24 ГБ памяти подходит для локального инференса Qwen3.8-27B при условии, что веса, KV cache и служебные буферы укладываются в доступный бюджет VRAM. Универсального ответа в формате «модель помещается на 128K» здесь нет: итог меняется вместе с квантом весов, batch size, длиной prompt, режимом decode и форматом KV cache.

BF16 KV cache удобен как контрольная точка, однако длинный контекст быстрее сокращает свободный запас памяти. INT8 уменьшает размер кэша и может сделать режимы 64K или 128K доступнее, но скорость и качество зависят от поддержки конкретного backend. MTP3 добавляет draft-состояния и буферы, поэтому его ускорение нужно сопоставлять с пиковым потреблением VRAM.

Что именно удалось проверить, а что нельзя выводить только из заявленного контекста

Исходное описание задаёт конфигурацию и набор проверок, но не содержит фактических логов с tokens per second, пиковым потреблением VRAM, acceptance rate MTP3 или точностью NIAH. Поэтому в статье нельзя честно подставлять конкретную скорость генерации, задержку первого токена и процент найденных needle.

Результаты нужно разделять на четыре группы:

  • совместимость запуска, то есть загрузка модели и выполнение inference;
  • потребление памяти, включая веса, KV cache и временные буферы;
  • скорость prompt processing и generation decode;
  • качество извлечения информации из длинного prompt.

Успешный запуск на 128K подтверждает техническую вместимость выбранной конфигурации. NIAH с 130K prompt tokens проверяет другой результат, способность модели найти заранее размещённый фрагмент и использовать его в ответе.

Конфигурация: модель, GPU и цена каждого гигабайта VRAM

В Qwen3.8-27B память распределяется между четырьмя крупными группами: весами модели, KV cache, временными рабочими буферами и служебными структурами runtime. На карте с 24 ГБ каждый компонент влияет на итоговый предел. Свободный объём после загрузки весов нельзя считать полностью доступным контекстом.

Размер KV cache растёт вместе с длиной последовательности и числом одновременно обрабатываемых последовательностей. На расход влияют формат ключей и значений, batch size, архитектура attention и конкретная реализация backend. Поэтому два запуска одной модели с одинаковой длиной контекста могут занимать разный объём VRAM.

Почему 128K контекста не означает 128K токенов в любом режиме

У модели есть заявленное контекстное окно, у backend есть собственный лимит, а у видеокарты есть физический бюджет памяти. Это три разных ограничения. Конфигурация может поддерживать 128K на уровне параметра контекста, но завершаться с нехваткой VRAM при выбранном формате KV cache, batch size или включённом MTP3.

Тест 32K отвечает на вопрос о базовой стабильности. Тест 64K показывает, как меняется запас памяти при увеличении prompt. Тест 128K проверяет, выдерживает ли система целевую длину без сбоя. Ни один из этих запусков сам по себе не подтверждает, что модель одинаково хорошо извлекает сведения в любой позиции prompt.

BF16 хранит KV cache в более широком формате и служит понятной контрольной точкой. INT8 требует меньше памяти, поэтому оставляет больше пространства под длинный prompt и runtime. E8 4-bit может ещё сильнее уменьшить расход, но его нужно оценивать по поддержке NInfer, скорости, стабильности и качеству ответов.

Какие параметры нужно фиксировать в каждом замере

Сравнение режимов имеет смысл только при одинаковых исходных условиях. В журнале каждого запуска нужно сохранить:

  • модель, формат весов и конкретный файл сборки;
  • GPU, объём VRAM и версию драйвера;
  • версию CUDA toolkit, путь к nvcc и версию runtime;
  • версию или commit NInfer;
  • целевую архитектуру CUDA, включая sm_120a;
  • формат KV cache, длину prompt и максимальную длину ответа;
  • batch size, microbatch или ubatch, если эти параметры доступны в используемом backend;
  • режим decode, настройки MTP3 и число draft-токенов;
  • пиковую VRAM после прогрева, prompt processing speed и generation speed.

Без этих полей цифры трудно повторить. Особенно часто путают скорость обработки входного prompt со скоростью генерации ответа, хотя это разные этапы с разной нагрузкой на GPU.

CUDA toolchain: почему выбор nvcc определил успешный запуск

Для Blackwell одной совместимости модели с GPU недостаточно. Сборщик должен использовать CUDA toolkit, который умеет генерировать код для целевой архитектуры, а backend должен корректно подключать этот код во время запуска. Если в системе установлено несколько CUDA, команда сборки может взять неожиданный nvcc.

Как проверить, какой nvcc реально используется

До сборки нужно проверить путь и версию компилятора:

which nvcc
nvcc --version
readlink -f "$(which nvcc)"
echo "$PATH"
echo "$CUDA_HOME"

Команда which nvcc показывает первый найденный исполняемый файл, а readlink -f помогает увидеть его реальное расположение. Переменные PATH и CUDA_HOME нужно сопоставить между собой: установленная CUDA 13.3 не поможет, если сборка фактически вызывает старый компилятор из другого каталога.

Проверка runtime и драйвера выполняется отдельно. nvidia-smi показывает обнаруженную GPU, версию драйвера и текущую загрузку памяти, но не заменяет проверку nvcc. Первый инструмент отвечает за среду выполнения, второй участвует в компиляции CUDA-кода.

Роль sm_120a при сборке под Blackwell

sm_120a обозначает целевую архитектуру, под которую компилятор генерирует device-код. Если сборка ориентирована на другую compute capability или использует слишком общий набор архитектур, backend может потерять нужные оптимизации. В худшем случае компилятор завершит сборку ошибкой из-за неподдерживаемого значения.

Целевой флаг нельзя выбирать по названию видеокарты. Его нужно сверять с документацией используемой версии CUDA, сообщением компилятора и настройками самого NInfer. Для диагностики полезно сохранить полный лог сборки: по нему видно, какой nvcc вызван, какие архитектуры переданы и на каком этапе возникла ошибка.

Пересборка NInfer под CUDA 13.3

В этой конфигурации пересборка NInfer под CUDA 13.3 нужна как часть цепочки совместимости с Blackwell. Сначала выбирается корректный toolkit, затем проверяется поддержка sm_120a, после чего backend собирается заново с целевыми параметрами архитектуры.

Общий порядок действий:

  1. остановить старый процесс и очистить артефакты предыдущей сборки;
  2. выбрать CUDA 13.3 в PATH и CUDA_HOME;
  3. проверить версию nvcc непосредственно перед запуском сборщика;
  4. передать NInfer архитектуру, которую поддерживают установленный toolkit и целевая GPU;
  5. сохранить лог компиляции и проверить созданные бинарные файлы;
  6. запустить минимальный inference без MTP3 и длинного контекста.

Ошибка на этапе компиляции относится к toolchain или настройкам сборки. Ошибка загрузки модели может быть связана с форматом весов, несовместимой схемой тензоров или параметрами backend. Эти причины нужно диагностировать отдельно, иначе смена KV cache не исправит проблему, возникшую ещё до запуска модели.

Первый baseline: обычный decode без MTP3

Baseline нужен как контрольная точка. Он показывает, сколько памяти и времени требует основная модель без draft-предложений и дополнительных состояний speculative decoding.

Какие показатели нужны для базового сравнения

Для каждого запуска нужно измерить prompt tokens per second, generation tokens per second, задержку первого токена, пиковую VRAM и стабильность после прогрева. Минимум один прогон полезно исключить из сравнения, чтобы отделить загрузку модели и первичную инициализацию от steady-state decode.

Prompt должен оставаться одинаковым для baseline и MTP3. Нужно зафиксировать sampling, длину ответа, batch size и число повторов. Иначе прирост может объясняться другой нагрузкой, а не включением speculative decoding.

Что ограничивает baseline на карте с 24 ГБ

Основные ограничения создают размер весов и KV cache. При росте prompt свободная VRAM уменьшается, а временным буферам становится сложнее разместиться без вытеснения или ошибки выделения памяти. Большой batch повышает производительность обработки входа в подходящих сценариях, но увеличивает пиковый расход.

Практический baseline нужно строить ступенчато: короткий prompt, затем 32K, 64K и 128K при одном формате KV cache. На каждом шаге фиксируются память, скорость и факт завершения генерации. Запуск, который доходит до конца prompt, но падает при генерации ответа, нельзя считать рабочим режимом.

Разбор параметров llama.cpp для другой 27B-модели помогает сопоставить методику измерения batch, prompt processing и decode, но его цифры нельзя переносить на RTX PRO 4000 Blackwell напрямую.

MTP3 и speculative decoding: откуда берется ускорение

Speculative decoding разделяет работу между основной моделью и draft-механизмом. Draft предлагает несколько следующих токенов, после чего основная модель проверяет их за один или несколько проходов. MTP3 в этой схеме означает использование трёх дополнительных предсказаний, если это поддерживает конкретная сборка и формат модели.

Когда MTP3 действительно ускоряет генерацию

Ускорение появляется при достаточно высокой доле принятых draft-токенов и низкой цене их проверки. Если основная модель часто отклоняет предложения, дополнительный проход может съесть выигрыш. Эффект зависит от характера текста, sampling, длины ответа и текущей загрузки GPU.

Короткий ответ может оказаться слишком мал для устойчивого преимущества: накладные расходы запуска занимают заметную долю времени. Длинная последовательная генерация даёт MTP3 больше пространства для проявления эффекта, но это нужно подтверждать замером generation tokens per second и acceptance rate.

Как MTP3 меняет расход памяти и запас по VRAM

MTP3 требует дополнительного состояния draft-предсказаний и рабочих буферов. Их размер зависит от реализации NInfer, поэтому общий расход нельзя вычислять по одному числу draft-токенов. На 24 ГБ даже небольшой прирост пикового потребления может закрыть режим 128K или уменьшить максимальную длину ответа.

Сравнение должно включать минимум две строки: обычный decode и MTP3 при одинаковом prompt, формате KV cache и длине ответа. Для каждой строки нужны generation speed, acceptance rate, пиковая VRAM и результат завершения. MTP3 полезен только тогда, когда прирост скорости сохраняется при приемлемом запасе памяти.

KV cache в BF16 и INT8: главный компромисс для 24 ГБ

KV cache хранит промежуточные ключи и значения attention для уже обработанных токенов. Чем длиннее prompt и чем больше параллельных последовательностей, тем больше памяти занимает этот кэш. Формат BF16 или INT8 меняет плотность хранения и набор операций, которые выполняет backend.

BF16 KV cache: проще интерпретировать, сложнее вместить длинный контекст

BF16 удобно использовать как базовый режим сравнения. Он сохраняет более широкий числовой формат, поэтому результаты проще сопоставлять с конфигурациями без агрессивного сжатия. Цена выражается в расходе VRAM, который становится особенно заметен при переходе от 32K к 64K и 128K.

На 32K проверяется исходная стабильность, на 64K проявляется уменьшение свободного запаса, а 128K показывает, выдерживает ли карта целевую длину вместе с runtime и генерацией. Конкретный пик VRAM нужно брать из лога или мониторинга, а не оценивать по объёму видеопамяти на коробке GPU.

INT8 KV cache: больше контекста при другом профиле компромиссов

INT8 KV cache уменьшает объём хранения по сравнению с BF16 и может освободить память под более длинный prompt. Это не означает автоматического ускорения. Backend должен поддерживать нужные операции, а стоимость квантования и деквантизации может изменить профиль prompt processing и decode.

Сравнивать INT8 и BF16 нужно на одинаковых длинах 32K, 64K и 128K, с одним prompt и одной задачей. Помимо VRAM фиксируются скорость, задержка первого токена, стабильность и ответы на контрольных вопросах. Если качество не измерялось, корректная формулировка будет ограничена техническим результатом, например «prompt обработан и генерация завершилась».

Сводная таблица режимов

Режим decodeKV cacheДлина promptGeneration speedPrompt processingПиковая VRAMСвободный запасРезультатОграничения
BaselineBF1632KНужно измеритьНужно измеритьНужно измеритьНужно измеритьПроверка стабильностиМеньше запаса для длинного prompt
BaselineBF1664KНужно измеритьНужно измеритьНужно измеритьНужно измеритьПроверка вместимостиВыше нагрузка на KV cache
BaselineBF16128KНужно измеритьНужно измеритьНужно измеритьНужно измеритьТехническая проверка окнаНе доказывает качество извлечения
BaselineINT832K, 64K, 128KНужно измеритьНужно измеритьНужно измеритьНужно измеритьСравнение с BF16Зависимость от поддержки backend
MTP3BF16 или INT8Фиксируется отдельноНужно измеритьНужно измеритьНужно измеритьНужно измеритьСравнение по acceptance rateДополнительные состояния и буферы

Пустые значения в такой таблице лучше оставить явно обозначенными. Подстановка оценок создаёт видимость бенчмарка и мешает воспроизвести результат на другой версии NInfer.

32K, 64K и 128K: проверка вместимости, а не полноценного качества контекста

Последовательность 32K, 64K и 128K нужна для поиска границы стабильности. Каждый шаг увеличивает нагрузку на KV cache и оставляет меньше пространства для ответа, MTP3 и временных операций.

Что показывает тест на 32K

На 32K нужно проверить полный цикл: загрузка модели, обработка prompt, выдача первого токена и завершение ответа. Здесь удобно отладить формат модели, sampling и мониторинг VRAM. Ошибка на коротком контексте обычно указывает на окружение или backend, а не на предел KV cache.

Что меняется на 64K

На 64K становится заметнее разница между BF16 и INT8. Один режим может успешно завершать prompt, а другой потребовать больше свободной памяти или ограничить длину ответа. Если появляется OOM, нужно зафиксировать момент сбоя: при загрузке, prefill или decode.

Что означает успешный запуск на 128K

Успешный 128K означает, что выбранная связка весов, KV cache, batch size и runtime смогла обработать такую длину. Этот результат не подтверждает точность поиска информации в prompt и не гарантирует ту же границу при параллельных запросах.

Для длинного RAG prompt нужно отдельно учитывать размер возвращаемых документов, инструкции, историю диалога и ожидаемую длину ответа. Каждый из этих элементов уменьшает практический запас относительно лабораторной проверки вместимости.

Сравнение низких квантов Qwen 3.8 27B полезно при выборе компромисса между размером весов, качеством и свободной VRAM. Кэш и веса нужно оценивать совместно.

NIAH с 130K prompt tokens: проверка реальной работы длинного контекста

NIAH, или needle-in-a-haystack, помещает короткий известный фрагмент в большой массив отвлекающего текста. Модель получает вопрос, ответ на который содержится внутри needle. Тест проверяет извлечение информации, а не способность runtime выделить память под KV cache.

Как устроить воспроизводимый NIAH-сценарий

Для проверки около 130K prompt tokens нужно заранее подготовить haystack с контролируемой длиной. Needle размещается в нескольких позициях: ближе к началу, в середине, ближе к концу и в промежуточных точках. Запрос, формат needle и критерий правильного ответа должны оставаться одинаковыми во всех режимах.

  1. сгенерировать или подготовить haystack без сведений, которые подсказывают ответ;
  2. вставить уникальный needle с проверяемым фактом;
  3. посчитать токены тем же токенизатором, который использует backend;
  4. запустить baseline, затем MTP3 и нужные форматы KV cache;
  5. зафиксировать время prefill, задержку первого токена, скорость decode и пик VRAM;
  6. повторить запрос для каждой позиции needle.

Нельзя менять длину prompt между BF16 и INT8, иначе сравнение качества и памяти потеряет смысл. Приблизительная длина в символах тоже не подходит: 130K prompt tokens нужно подтверждать токенизацией.

Какие результаты нужно считать подтверждением

Минимальный отчёт содержит точность извлечения по позициям needle, число повторов, ошибки, время ответа и факт полного завершения генерации. Полезно отдельно записывать случаи, когда модель дала правдоподобный, но неверный ответ.

Успешный NIAH подтверждает способность найти контрольный фрагмент в конкретном синтетическом prompt. Он не заменяет проверку на реальных RAG-документах, длинных диалогах и агентных цепочках. Такие нагрузки содержат шум, повторения, инструкции разных уровней и неоднородные документы.

Практический предел RTX PRO 4000 Blackwell 24GB

Практический предел определяется не последней длиной prompt, которая однажды завершилась, а режимом, сохраняющим запас для ответа и фоновых операций. Конфигурация «впритык» может подходить для разового эксперимента и оказаться неудобной для локального API.

Где заканчивается комфортный режим

Комфортный режим требует запаса VRAM после загрузки весов, заполнения KV cache и прогрева. Параллельные запросы увеличивают расход пропорционально числу последовательностей. Большой batch и длинный ответ дополнительно повышают требования к временным буферам.

Для одиночного запроса можно ориентироваться на стабильность полного цикла. Для сервера нужно добавить запас на вторую последовательность, переменную длину prompt и пики памяти во время prefill. Если свободный объём исчезает уже на 128K, MTP3 может сделать такую конфигурацию непрактичной даже при успешном baseline.

Когда 24 ГБ достаточно, а когда нужен другой класс GPU

  • Для одиночного локального инференса 24 ГБ могут быть достаточны, если выбранный формат весов и KV cache помещаются вместе с runtime.
  • Для длинного RAG нужно проверить не номинальные 128K, а типичный размер документов, инструкции и длину ответа.
  • Для агентных цепочек нужно учитывать несколько последовательных вызовов и возможное сохранение истории.
  • Для параллельного API важнее запас памяти и число одновременных запросов, чем разовый запуск на максимальном контексте.

При частых OOM, малом запасе после prefill или сильном падении скорости разумно менять формат KV cache, уменьшать batch size, использовать более компактные веса или переходить к GPU с большим объёмом памяти. Конкретный вариант зависит от того, что ограничивает задачу: качество, latency, throughput или длина контекста.

E8 4-bit как следующий шаг сжатия KV cache

E8 4-bit логично рассматривать как направление дальнейшего сжатия KV cache для 24 ГБ. Меньший кэш может освободить место под 128K и длинный ответ либо сохранить возможность MTP3 при том же prompt.

Какие параметры сравнить с BF16 и INT8

Для E8 4-bit нужен отдельный протокол сравнения:

  • пиковая VRAM на 32K, 64K, 128K и в NIAH-сценарии с 130K prompt tokens;
  • prompt processing speed и generation speed;
  • задержка первого токена;
  • стабильность при полном цикле обработки и генерации;
  • точность NIAH по разным позициям needle;
  • качество на контрольных задачах, включая RAG и генерацию кода.

Тест нужно повторить для baseline и MTP3. Иначе нельзя определить, помогает ли E8 4-bit сохранить ускоренный режим или его преимущества исчезают из-за дополнительных операций backend.

Почему меньшее потребление памяти не гарантирует лучший результат

Сжатый KV cache оставляет больше VRAM, но может повысить вычислительную нагрузку, потребовать специальную поддержку NInfer или повлиять на точность. Результат зависит от длины prompt и характера текста. Синтетический NIAH и реальный RAG могут реагировать на квантование по-разному.

Пока нет измерений на конкретной версии NInfer и целевой GPU, E8 4-bit нужно описывать как гипотезу для будущей проверки. Подтверждённым результатом остаётся только тот режим, для которого есть полный лог, параметры запуска и проверка качества.

Разбор форка NInfer с квантованием KV-кэша rk2v4-e8 показывает направление, в котором можно искать решения для более длинного контекста. Его результаты на RTX 4090 нельзя считать измерениями для RTX PRO 4000 Blackwell.

Пошаговая схема запуска Qwen3.8-27B локально

Проверка окружения до сборки

  1. Убедитесь, что GPU видна через nvidia-smi, а доступная VRAM соответствует ожидаемым 24 ГБ с учётом фоновых процессов.
  2. Проверьте which nvcc, nvcc --version, CUDA_HOME и порядок каталогов в PATH.
  3. Зафиксируйте версию драйвера и CUDA 13.3, которую планируете использовать при сборке.
  4. Проверьте, поддерживает ли выбранный toolkit целевую архитектуру sm_120a.
  5. Освободите VRAM от других процессов и сохраните исходное состояние памяти.

Этот чек-лист отделяет проблему окружения от проблемы модели. Если NInfer не собирается, переход к настройке KV cache преждевременен.

Сборка и запуск NInfer

Пересоберите NInfer с CUDA 13.3 и архитектурой, которую подтверждают toolkit и документация используемой версии. Конкретные имена флагов могут различаться между commit, поэтому их нужно брать из интерфейса сборщика и фактического лога, а не переносить из чужой команды без проверки.

После сборки проверьте артефакты и выполните минимальный запуск Qwen3.8-27B без MTP3 и без максимального контекста. Первый inference должен подтвердить загрузку модели, обработку короткого prompt и выдачу ответа. Только после этого увеличивайте длину контекста.

Переход к сравнительным режимам

  1. Запустите baseline с BF16 KV cache на коротком prompt.
  2. Повторите его на 32K, 64K и 128K, сохраняя одинаковые параметры ответа.
  3. Поменяйте BF16 на INT8 и повторите те же длины.
  4. Включите MTP3 и сравните скорость, acceptance rate и пиковую VRAM с baseline.
  5. Проведите NIAH на 130K prompt tokens, если конфигурация завершает техническую проверку 128K.
  6. Заполните сводную таблицу и отдельно отметьте OOM, деградацию скорости и ошибки извлечения.

Порядок важен: MTP3 не должен маскировать проблемы базовой сборки, а успешное размещение кэша не должно подменять тест качества контекста.

Итог: какую конфигурацию выбирать для конкретной задачи

Qwen3.8-27B на RTX PRO 4000 Blackwell 24GB подходит для локального инференса при аккуратном выборе CUDA toolchain, NInfer и KV cache. Сборка под CUDA 13.3 с проверкой nvcc и sm_120a относится к базовым условиям запуска. BF16 полезен как контрольный режим, INT8 может увеличить запас для длинного контекста, а MTP3 стоит включать после измерения acceptance rate и пикового расхода памяти.

Кому подойдет запуск Qwen3.8-27B на RTX PRO 4000 Blackwell 24GB

Такая конфигурация подходит пользователям, которым нужен локальный LLM-инференс, эксперименты с длинными prompt, разработка RAG и проверка AI-инструментов без постоянной отправки данных во внешний API. Она требует дисциплины в настройках: 24 ГБ достаточно для отдельных сценариев, но параллельные запросы, агентные цепочки и большие ответы быстро сокращают запас.

Для одиночной работы разумно начать с baseline и INT8 или BF16 в зависимости от приоритета качества и длины контекста. MTP3 имеет смысл при подтверждённом приросте generation speed. E8 4-bit остаётся кандидатом для следующего этапа, если главная проблема связана с объёмом KV cache.

Что нужно проверить перед повторением конфигурации

  • GPU и фактически свободную VRAM;
  • версию драйвера, CUDA 13.3 и путь к нужному nvcc;
  • поддержку sm_120a выбранным toolchain;
  • commit и параметры сборки NInfer;
  • формат весов и KV cache;
  • baseline без MTP3;
  • MTP3, acceptance rate и дополнительные расходы памяти;
  • тесты 32K, 64K и 128K;
  • NIAH с 130K prompt tokens для проверки качества извлечения.

Выбор режима можно свести к четырём условным правилам: baseline нужен для надёжного сравнения, MTP3 подходит для ускорения при подтверждённом принятии draft-токенов, INT8 полезен для увеличения запаса контекста, BF16 сохраняет контрольную точку, а E8 4-bit требует отдельной проверки backend и качества. Число 128K имеет практический смысл только вместе с результатом NIAH и полным журналом потребления VRAM.

Подписаться на канал