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

Qwen 3.8 27B или Qwen Flash Next на Mac: сравнение скорости, reasoning и AI-harness

Сравниваем Qwen 3.8 27B и Qwen Flash Next для Mac с большой unified memory: разбираем скорость prefill, влияние квантования и reasoning без выдуманных бенчмарко

Коротко

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

  1. 01

    Короткий ответ: что выбрать для локального запуска на Mac

  2. 02

    Железо и контекст: почему Mac с unified memory - особый случай

  3. 03

    Сравнение Qwen 3.8 27B и Qwen Flash Next: что известно о скорости и качестве

  4. 04

    AI-harness: как разделить роли между reasoning и non-reasoning моделями

Короткий ответ: что выбрать для локального запуска на Mac

Если приоритетом служит скорость интерактивных ответов, коротких преобразований и типовых задач, начните с Qwen Flash Next. Если важнее качество на сложном анализе, многошаговом кодинге и планировании, проверьте Qwen 3.8 27B с включённым reasoning. Такой выбор описывает профиль задач, а не результат прямого бенчмарка.

Для Qwen 3.8 27B и Qwen Flash Next нет прямого замера на одном Mac и одном MLX-стеке. Поэтому нельзя честно назвать точные значения скорости prefill, генерации, потребления памяти или утверждать, что одна модель стабильно превосходит другую по качеству. Сравнивать их нужно при одинаковом квантовании, контексте, шаблоне чата и лимите вывода.

Обе модели можно рассматривать для Mac с большим объёмом unified memory, если существует совместимая сборка MLX и хватает памяти под веса, KV-кэш и сам runtime. Для ориентира: на Mac Studio M3 Ultra с 192 ГБ объединённой памяти через MLX запускали квантованную Qwen3-Coder-30B-A3B в Q5 со скоростью около 60 токенов в секунду. Это подтверждает практичность платформы для крупных локальных моделей, но не служит замером Qwen 3.8 27B или Qwen Flash Next.

Железо и контекст: почему Mac с unified memory - особый случай

Что такое unified memory и почему это важно для LLM

В Mac на Apple Silicon процессор и GPU используют общий пул памяти. В обычной связке с дискретной видеокартой веса модели приходится перемещать между оперативной памятью и VRAM. Unified memory убирает отдельную копию данных и позволяет загрузить крупную модель в общий адресный простор.

Преимущество проявляется прежде всего в объёме. Mac с 128 или 192 ГБ памяти способен разместить модель, которая не поместилась бы в типичную видеокарту с 16, 24 или 48 ГБ VRAM. У этого подхода есть цена: скорость зависит от пропускной способности памяти и архитектуры конкретного чипа. Большой объём памяти не означает автоматически высокую скорость генерации.

  • Свободная память определяет, поместятся ли веса, KV-кэш, контекст и процессы операционной системы.
  • Пропускная способность unified memory влияет на чтение весов во время генерации.
  • Длина контекста увеличивает объём KV-кэша и способна замедлить работу при длинной истории.
  • Квантование меняет размер весов и точность их представления.
  • Тип чипа, версия MLX, ядра конкретной модели и настройки batch влияют на prefill и decode.

Если память почти заполнена, macOS может использовать swap. Для локальной LLM это обычно означает резкий рост задержки и нестабильную скорость. При замере нужно закрыть тяжёлые приложения и записать объём свободной памяти перед запуском.

MLX: фреймворк, который делает локальный запуск реальным

MLX - фреймворк Apple для машинного обучения на Apple Silicon. Он учитывает общую память CPU и GPU, поддерживает квантованные модели и ленивое выполнение операций. Последний механизм позволяет откладывать вычисления и эффективнее собирать последовательность операций перед запуском.

MLX не даёт единой скорости для всех моделей. Две модели с близким размером могут по-разному использовать ядра, память и структуру вычислений. На результат влияют формат весов, длина входа, размер batch, шаблон чата, наличие инструментов и состояние кэша.

Для Qwen нужно подобрать сборку в формате MLX или отдельно конвертировать модель с учётом поддерживаемого шаблона. Базовые варианты запуска и различия между MLX, Ollama, vLLM и другими инструментами собраны в сравнении инструментов для локального запуска Qwen 3.8 27B.

На Mac нет CUDA, поэтому параметры, полученные в тесте на NVIDIA, нельзя переносить без проверки. CUDA Graphs, speculative decoding и особенности CUDA-ядра относятся к отдельным условиям эксперимента. Для MLX нужен собственный замер с тем же prompt, тем же квантованием и тем же лимитом вывода.

Сравнение Qwen 3.8 27B и Qwen Flash Next: что известно о скорости и качестве

В этой паре полезно разделять подтверждённые характеристики конкретной сборки и ожидания от позиционирования модели. Число 27B в названии Qwen 3.8 27B указывает на класс модели с 27 млрд параметров. Название Qwen Flash Next само по себе не сообщает точную размерность, число активных параметров, тип архитектуры или размер файла. Эти сведения нужно проверять для выбранной MLX-сборки.

Qwen 3.8 27B логично проверять там, где ошибка в рассуждении стоит дороже задержки. Qwen Flash Next стоит начинать тестировать там, где важны быстрый отклик, большой поток коротких запросов и умеренная сложность подзадач. Такая расстановка остаётся рабочей гипотезой, пока обе модели не пройдут одинаковый набор задач.

Дополнительные сведения о назначении и локальном запуске Flash Next собраны в статье о том, что такое Qwen3.8-Flash-Next.

КритерийQwen 3.8 27BQwen Flash NextЧто проверить
Масштаб27B указано в названии моделиТочная размерность не указана в доступных данныхКарточку конкретной версии и число активных параметров
СкоростьПрямых цифр на общем Mac-тесте нетПрямых цифр на общем Mac-тесте нетPrefill, decode и полное время задачи
КачествоНужно проверить сложный анализ, код и следование ограничениямНужно проверить короткие запросы, форматирование и типовой кодОдинаковые prompts и проверяемые критерии
ReasoningСравнить режимы с включённым и отключённым рассуждением, если их поддерживает шаблонПроверить доступные режимы в конкретной сборкеВремя до первого токена, число токенов и качество
ПамятьЗависит от квантования, контекста и KV-кэшаЗависит от тех же факторов и размера конкретной сборкиПиковое потребление памяти и свободный запас

Скорость prefill: почему длинные промпты могут тормозить

Prefill - обработка входного текста перед появлением первого токена ответа. В этот этап входят системная инструкция, история диалога, описание инструментов, файлы и текущий запрос. При длинном контексте пользователь может ждать именно prefill, даже если последующая генерация идёт быстро.

Например, запрос на 500 токенов и запрос на 10 000 токенов создают разную нагрузку ещё до начала ответа. Длина prompt, размер модели, квантование, пропускная способность unified memory, batch и ядра MLX определяют, сколько времени займёт обработка. Большой запас RAM помогает вместить контекст, но не отменяет стоимость чтения и вычисления токенов.

Для ускорения prefill полезны несколько конкретных действий:

  1. Сократите повторяющуюся историю и описания инструментов. Передавайте субагенту только контекст, который нужен для его шага.
  2. Сравнивайте Q4 и Q5 на одном prompt. Q4 уменьшает размер весов, Q5 сохраняет больше точности, а фактическая скорость зависит от реализации ядер.
  3. Проверьте размер batch для prefill, если его открывает выбранный runtime. Больший batch может повысить пропускную способность и одновременно увеличить расход памяти.
  4. Разделяйте холодный старт и тёплый запуск. Загрузка модели, компиляция и прогрев не должны смешиваться с измерением обработки prompt.
  5. Проверьте prefix cache, если его поддерживает конкретная сборка. Повторяющийся системный prompt тогда не обязательно обрабатывать полностью при каждом запросе.
  6. Отключите фоновые приложения, которые расходуют unified memory, и повторите замер после освобождения памяти.

Speculative decoding способен увеличить скорость генерации, когда небольшая черновая модель предлагает токены, а основная модель быстро проверяет их. Эффект зависит от доли принятых токенов и стоимости подготовки и проверки черновика. Он не гарантирует ускорение обработки исходного prompt.

В одном MTP-эксперименте на системе DGX Spark с 128 ГБ памяти более длинный черновик не гарантировал лучший throughput. Для обычного текста один из режимов мог выигрывать, а для кода разница между тремя настройками оставалась небольшой. Точные числовые метрики, длина контекста и параметры стека для этого примера не позволяют перенести результат на MLX. Вывод практический: включайте speculative decoding и похожие механизмы по отдельности и измеряйте их вклад.

Режим без reasoning: когда он нужен и что даёт

Reasoning-режим добавляет внутренние шаги рассуждения перед финальным ответом. Модель может потратить больше токенов и времени на планирование, проверку промежуточных выводов и разбор неоднозначностей. На локальном Mac это увеличивает задержку и расход вычислительных ресурсов.

Режим без reasoning подходит для задач с коротким и заранее понятным алгоритмом:

  • извлечение полей в JSON;
  • классификация запроса по фиксированным категориям;
  • переформулировка и сокращение текста;
  • генерация boilerplate-кода по ясному шаблону;
  • форматирование ответа под заданную схему.

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

Одинаковый финальный ответ у двух режимов не доказывает одинаковую надёжность. При сравнении проверяйте соблюдение формата, устойчивость к изменению формулировки, корректность кода и число повторных попыток. Уточните, входят ли внутренние токены в лимит max_tokens выбранного runtime.

Практический разбор режима thinking off у Qwen3.8-27B на MacBook Pro с M5 Max приведён в материале о влиянии отключения reasoning.

ЗадачаС чего начатьПричина
Короткий текст или извлечение данныхFlash Next без reasoning, если режим доступенМеньше лишних шагов и задержка ниже в типовом сценарии
Boilerplate и простые преобразования кодаFlash Next без reasoning, затем проверка результатаГлавный критерий, соответствие формату и рабочий код
Сложная отладкаQwen 3.8 27B с reasoningНужен разбор причин и зависимостей
Планирование цепочки действийReasoning-модель как координаторКоординатору требуется оценивать подзадачи и результаты

AI-harness: как разделить роли между reasoning и non-reasoning моделями

AI-harness связывает модель, инструменты, память, правила маршрутизации и проверку результата. В простой схеме одна модель с включённым reasoning выступает координатором, а субагенты получают узкие задачи и работают без дополнительного рассуждения.

  1. Координатор получает цель пользователя и разбивает её на подзадачи.
  2. Для каждой подзадачи он задаёт формат результата и выбирает исполнителя.
  3. Субагент выполняет конкретную операцию: извлекает данные, пишет фрагмент boilerplate-кода или преобразует текст.
  4. Координатор принимает ответы, сверяет их с исходной целью и объединяет результат.
  5. При конфликте или низкой уверенности задача возвращается на дополнительную проверку в reasoning-режим.

Подход с использованием Qwen в Junie обсуждается именно через такое разделение ролей. Координатор сохраняет способность планировать, а быстрые исполнители не тратят токены на повторное объяснение очевидной подзадачи.

Почему субагентам не всегда нужен reasoning

Субагент обычно получает более узкий prompt и конкретный формат выхода. Ему не требуется заново строить полный план проекта, если координатор уже передал контекст и критерии готовности.

  • Агент извлекает значения из документа и возвращает JSON.
  • Агент превращает список требований в таблицу полей.
  • Агент создаёт типовой обработчик по существующему интерфейсу.
  • Агент проверяет формат, длину или наличие обязательных ключей.

В этих сценариях non-reasoning-режим может снизить задержку и расход токенов. Субагент всё равно должен получить точную инструкцию, ограничения и пример ожидаемого ответа. Короткий prompt не заменяет ясный контракт.

Ограничения и подводные камни разделения ролей

Разделение режимов добавляет маршрутизацию и обмен контекстом. Если координатор неверно оценит сложность, reasoning отключится там, где требовался анализ, или простая задача попадёт в более тяжёлый контур.

  • При передаче между агентами может потеряться важная деталь исходного запроса.
  • Субагент может вернуть формально корректный, но неполный результат.
  • Координатор может принять ошибочный ответ без отдельной валидации.
  • Для маленькой задачи накладные расходы на вызов нескольких агентов превысят выигрыш в скорости.
  • Промпты, пороги маршрутизации и fallback-сценарии придётся настраивать под конкретный продукт.

Начните с двух ролей: одного reasoning-координатора и одного non-reasoning-исполнителя. Добавляйте агентов после измерения времени полного сценария, а не по скорости отдельного вызова. Универсального правила для всех задач здесь нет.

Практические рекомендации: как выбрать и настроить модель на Mac

Чек-лист для локального запуска Qwen на Mac

  1. Опишите реальные задачи: чат, код, анализ документов, генерация JSON, работа инструментов или координация агентов.
  2. Запишите конфигурацию Mac: модель чипа, объём unified memory, свободную память перед запуском и версию MLX.
  3. Скачайте совместимую MLX-сборку или конвертируйте модель. Сверьте шаблон чата и поддержку reasoning-переключателя.
  4. Выберите одинаковое квантование для обеих моделей. Начните с Q4 или Q5, если память позволяет, и зафиксируйте этот параметр в протоколе.
  5. Подготовьте три группы prompt: короткий запрос, рабочий контекст средней длины и длинный контекст с историей или описанием инструментов.
  6. Для каждого prompt измерьте время до первого токена, скорость prefill, скорость генерации, полное время ответа и пиковое потребление памяти.
  7. Повторите замер после прогрева. Отдельно запишите холодный старт, чтобы понимать реальную задержку первого запуска.
  8. Сравните reasoning on и reasoning off при одинаковых temperature, top_p и max_tokens. Проверьте, как runtime учитывает внутренние токены.
  9. Оцените качество по заранее заданным критериям: валидность JSON, прохождение тестов кода, соблюдение формата, полнота ответа и число повторных запусков.
  10. Для AI-harness начните с одной пары ролей и добавьте fallback в reasoning-контур для ошибок или низкой уверенности.

Минимальный протокол замера можно записать так:

Система: Mac, чип, unified memory
Модель: Qwen 3.8 27B или Qwen Flash Next
Квантование: Q4 или Q5
Контекст: короткий, средний, длинный
Режим: reasoning on или reasoning off
Метрики: first token, prefill, decode, total time, peak memory
Проверка: качество ответа и повторяемость результата

Не меняйте одновременно модель, квантование, шаблон чата и параметры генерации. Иначе будет невозможно понять, что именно повлияло на результат. Для отдельного сравнения способов ускорения включайте MTP или speculative decoding после базового замера.

Если память Mac ограничена, сравнение Qwen 3.8 27B в Q4 с ультранизкой квантизацией нужно проводить отдельно от сравнения моделей. Практические ограничения IQ1_S и Q4 разобраны в статье о сравнении Qwen 3.8 Next UD IQ1_S и Qwen 3.8 27B UD Q4.

Заключение: что мы имеем в сухом остатке

Qwen 3.8 27B и Qwen Flash Next можно рассматривать для локального запуска на Mac с большим объёмом unified memory и совместимым MLX-стеком. Прямых цифр, которые позволяли бы честно объявить победителя по скорости или качеству, для этой пары нет.

Выбирайте Qwen Flash Next как первого кандидата для быстрых коротких операций и субагентов. Проверяйте Qwen 3.8 27B для сложного анализа, многошагового кода и координации, где reasoning оправдывает дополнительную задержку. Для каждой модели отдельно измеряйте prefill и генерацию: это разные этапы с разными узкими местами.

Режим без reasoning полезен, когда алгоритм задачи уже задан и исполнителю нужно быстро выдать структурированный результат. Основной reasoning-координатор в AI-harness помогает распределять сложные задачи, но добавляет требования к контексту, валидации и маршрутизации. Самый надёжный выбор даст короткий тестовый набор на вашем Mac, а не цифра из чужой конфигурации.

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