• Сегодня нет ничего важнее ветра перемен.

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

    1) Основным каналом для общения с ув. подписчиками становится данная площадка на Sponsr.ru.

    2) Кроме платных постов, здесь так же будут размещаться открытые рабочие заметки по тематике проекта, аналогично тому, что было в мессенджерах. Т.к. это просто дневник происходящего в жизни автора, то регламентировать график здесь не приходится.

    3) В мессенджерах, пока это возможно с точки зрения законодательства, будут репосты.

    4) По выходным планируется регулярно размещение платных постов с размышлениями и/или дневником сделанного за неделю по теме ИИ.

    Сегодня нет ничего важнее ветра перемен.

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

    1) Основным каналом для общения с ув. подписчиками становится данная площадка на Sponsr.ru.

    2) Кроме платных постов, здесь так же будут размещаться открытые рабочие заметки по тематике проекта, аналогично тому, что было в мессенджерах. Т.к. это просто дневник происходящего в жизни автора, то регламентировать график здесь не приходится.

    3) В мессенджерах, пока это возможно с точки зрения законодательства, будут репосты.

    4) По выходным планируется регулярно размещение платных постов с размышлениями и/или дневником сделанного за неделю по теме ИИ.

  • В ходе раскопок нашлась реальная супер-магия. 

    Вот в жизни бы без экспериментов не выяснил. Не зря лабораторию собирал.

    В общем, при работе карт в парах или четверках есть необходимость синхронизации памяти (кэши и т. п.).

    И тут есть два варианта — P2P через PCI-E, т. е. карты напрямую пишут друг-другу в память. Ограничение только скорость самой шины. Требуется поддержка на уровне драйверов и железа.

    А есть SHM (staging host RAM) — обмен через оперативную память хоста. Он работает на всем, что угодно, но упирается в скорость хостовой памяти. Вроде как не критично, но потери есть и зависят от CPU/RAM.

    Так вот, P2P нет ни у Radeon RDNA (9070XT, R9700), ни у потребительских RTX карт. А вот у RTX PRO оно включено на уровне драйвера. Вроде как у RTX тоже включать научились программным путем, но стабильность вопрос очень отдельный. Т.е. аналогичные GPU RTX будут всегда медленнее полностью аналогичных RTX PRO, если работают больше одной штуки. 

    На практике это выглядит как постоянно загруженный CPU на машине без P2P и загруженная память на чтение-запись при инференсе. Долго понять не мог в чем разница, т. к. на машине с RTX PRO CPU полностью простаивает вне вычислений (хотя под нагрузкой vLLM его грузит), а на машине с Radeon же CPU загружен независимо от наличия нагрузки.

    И вот тут появляется прямой смысл брать Threadripper/Xeon, т. к. 8 каналов памяти автоматом развязывают это бутылочное горлышко в виде скорости системной памяти для не RTX PRO GPU, заодно давая полный по ширине PCI-E.

    В ходе раскопок нашлась реальная супер-магия. 

    Вот в жизни бы без экспериментов не выяснил. Не зря лабораторию собирал.

    В общем, при работе карт в парах или четверках есть необходимость синхронизации памяти (кэши и т. п.).

    И тут есть два варианта — P2P через PCI-E, т. е. карты напрямую пишут друг-другу в память. Ограничение только скорость самой шины. Требуется поддержка на уровне драйверов и железа.

    А есть SHM (staging host RAM) — обмен через оперативную память хоста. Он работает на всем, что угодно, но упирается в скорость хостовой памяти. Вроде как не критично, но потери есть и зависят от CPU/RAM.

    Так вот, P2P нет ни у Radeon RDNA (9070XT, R9700), ни у потребительских RTX карт. А вот у RTX PRO оно включено на уровне драйвера. Вроде как у RTX тоже включать научились программным путем, но стабильность вопрос очень отдельный. Т.е. аналогичные GPU RTX будут всегда медленнее полностью аналогичных RTX PRO, если работают больше одной штуки. 

    На практике это выглядит как постоянно загруженный CPU на машине без P2P и загруженная память на чтение-запись при инференсе. Долго понять не мог в чем разница, т. к. на машине с RTX PRO CPU полностью простаивает вне вычислений (хотя под нагрузкой vLLM его грузит), а на машине с Radeon же CPU загружен независимо от наличия нагрузки.

    И вот тут появляется прямой смысл брать Threadripper/Xeon, т. к. 8 каналов памяти автоматом развязывают это бутылочное горлышко в виде скорости системной памяти для не RTX PRO GPU, заодно давая полный по ширине PCI-E.

  • В рамках эксперимента Qwen3.8-Flash-Next в паре с DeepSeek Harness была поставлена задача сделать source порт Commander Keen Episode 4.

    После 4 дней разбора бинарников модель написала, что всё готово:

    В целом, механики внутри даже работали. Можно было ходить, прыгать, стрелять и т. п. Полностью работает звук прямо сразу. Но графика и код — увы.

    Учитывая, что у модели есть зрение, попросил сделать скриншоты и самостоятельно сравнить. Получилось прикольно.

    Оригинал выглядит так:

    Как видит модель:

    Оказалось, что не так просто сделать корректный скриншот из под Linux, особенно в безголовом режиме, когда не поднимается реальное окно. Интерактивно несколько часов потратили с моделью, пока не понял причину, что она не видит свои результаты из-за картинки. Фикс оказался простой — модель поняла, что надо снимать OpenGL буфер, а не просто скриншот.

    Потом сверяли разрешения экрана и количество цветов. Тут пришлось помочь, т. к. игра запускалась изначально с меню в текстовом режиме:

    А в текстовом режиме у нас 640*350. А только потом уже шла игра в 320*200. У модели самостоятельно сносило башню от этого.

    В рамках эксперимента Qwen3.8-Flash-Next в паре с DeepSeek Harness была поставлена задача сделать source порт Commander Keen Episode 4.

    После 4 дней разбора бинарников модель написала, что всё готово:

    В целом, механики внутри даже работали. Можно было ходить, прыгать, стрелять и т. п. Полностью работает звук прямо сразу. Но графика и код — увы.

    Учитывая, что у модели есть зрение, попросил сделать скриншоты и самостоятельно сравнить. Получилось прикольно.

    Оригинал выглядит так:

    Как видит модель:

    Оказалось, что не так просто сделать корректный скриншот из под Linux, особенно в безголовом режиме, когда не поднимается реальное окно. Интерактивно несколько часов потратили с моделью, пока не понял причину, что она не видит свои результаты из-за картинки. Фикс оказался простой — модель поняла, что надо снимать OpenGL буфер, а не просто скриншот.

    Потом сверяли разрешения экрана и количество цветов. Тут пришлось помочь, т. к. игра запускалась изначально с меню в текстовом режиме:

    А в текстовом режиме у нас 640*350. А только потом уже шла игра в 320*200. У модели самостоятельно сносило башню от этого.

  • Запустил тут более менее интересную нагрузку на оба ПК с GPU имеющихся в домашней лаборатории — 2x RTX PRO 5000 Blackwell 72ГБ и 2x Radeon AI Pro R9700 32ГБ.

    Пара RTX PRO выдает 650-660 генерации токенов в секунду на 10-12 потоков параллельно при где-то 1,6-2 миллионах активного контекста (80-99% от примерно 2 миллионов, на которых хватает памяти) на Qwen3.8-Flash-Next-NVFP4. Бенчмарк говорил про 557 на 8 параллельных потоках, но это не предел с точки зрения мощности вычислительных блоков карт, как видно по картинке. Имеем 50-60 токенов на поток при максимально возможной загрузке, что очень не плохо. У облачного Opus — 61 токен в секунду, как писал в прошлой заметке. И это всё без MTP, который пока для свежей модели еще не работает, хотя тут возможен и регресс общей производительности. Этого за глаза не только для агентских нагрузок, но и для чата.

    Два Radeon выдают около 30-40 в один поток при 200к контекста на Qwen3.8-27B-FP8 и 50+ на пустом. На 6-ти параллельных потоках картинка уже куда интереснее — до 140-180 токенов в секунду в зависимости от степени забивания памяти. У 27B модели нет чудесных n-gram весов, которые держат производительность ровной независимо от объема контекста. Это дикий скачок от llama.cpp, которая больше 50 с хвостиком не выдавала с пустым контекстом, опускаясь до 30 по мере наполнения и умирая на втором потоке. Т.е. 25-30 токенов на поток при 6 параллельных, чего для агентских сценариев в целом достаточно, хотя хотелось бы и побольше.

    И для одного сетапа, и для другого это лучшее, что сейчас можно запустить, т. е. сравнение идет лучшему возможному качеству и скорости. RTX PRO с Qwen3.8-Flash-Next это где-то Opus 4.8 по общей оценке, Qwen3.8-27B где-то между Opus 4.6 и 4.7. Полез сравнивать результаты, и дальше оказалось куда интереснее:

    Общий уровень интеллекта хоть и выше у американских облаков, но большей частью за счет того, что Qwen заточен именно под кодирование:

    Смотрю я на графики GPT-6 и Fable-5.1 и вижу, что в задачах кодирования (SciCode) разница, конечно, в пользу облаков (увы, нет результатов Claude Opus 4.6 и 4.7 в базе), но она вообще не страшная. В агентских сценариях (GDPval-AA v2, 𝜏³-Banking? Terminal-Bench v2.1) или примерный паритет, или локальные модели где-то даже лидеры. С точки зрения галлюцинаций (AA-Omniscience Non-Hallucination Rate) опять же топовый уровень у открытых моделей.

    Проигрыш в общей оценке идет полностью за счет научных бенчмарков и способности работать с документами. Да и общий уровень знаний хуже в разы, что не удивительно учитывая разницу в размере моделей в 1-2 порядка. Но какая разница для задач кодирования общего назначения? Скорее плюс Qwen в части умения сосредоточиться и выдать топовый результат в одной из самых интересных областей.

    И всё это крутится на локальном железе с производительностью от весьма приемлемой до уровня «лучше чем в облаке».

    Выглядит как то, что дела у проприетарных моделей не очень хороши и спасает их только лютый дефицит железа для локального использования. Но если тренд на повышение эффективности разработки будет расти и условный Senior сможет делать x5-x10 работы с моделями, то карты превращаются просто в профессиональный инструмент и порог входа не выше чем в работу в такси и аренду/покупку автомобиля.

    Несколько выводов:

    Запустил тут более менее интересную нагрузку на оба ПК с GPU имеющихся в домашней лаборатории — 2x RTX PRO 5000 Blackwell 72ГБ и 2x Radeon AI Pro R9700 32ГБ.

    Пара RTX PRO выдает 650-660 генерации токенов в секунду на 10-12 потоков параллельно при где-то 1,6-2 миллионах активного контекста (80-99% от примерно 2 миллионов, на которых хватает памяти) на Qwen3.8-Flash-Next-NVFP4. Бенчмарк говорил про 557 на 8 параллельных потоках, но это не предел с точки зрения мощности вычислительных блоков карт, как видно по картинке. Имеем 50-60 токенов на поток при максимально возможной загрузке, что очень не плохо. У облачного Opus — 61 токен в секунду, как писал в прошлой заметке. И это всё без MTP, который пока для свежей модели еще не работает, хотя тут возможен и регресс общей производительности. Этого за глаза не только для агентских нагрузок, но и для чата.

    Два Radeon выдают около 30-40 в один поток при 200к контекста на Qwen3.8-27B-FP8 и 50+ на пустом. На 6-ти параллельных потоках картинка уже куда интереснее — до 140-180 токенов в секунду в зависимости от степени забивания памяти. У 27B модели нет чудесных n-gram весов, которые держат производительность ровной независимо от объема контекста. Это дикий скачок от llama.cpp, которая больше 50 с хвостиком не выдавала с пустым контекстом, опускаясь до 30 по мере наполнения и умирая на втором потоке. Т.е. 25-30 токенов на поток при 6 параллельных, чего для агентских сценариев в целом достаточно, хотя хотелось бы и побольше.

    И для одного сетапа, и для другого это лучшее, что сейчас можно запустить, т. е. сравнение идет лучшему возможному качеству и скорости. RTX PRO с Qwen3.8-Flash-Next это где-то Opus 4.8 по общей оценке, Qwen3.8-27B где-то между Opus 4.6 и 4.7. Полез сравнивать результаты, и дальше оказалось куда интереснее:

    Общий уровень интеллекта хоть и выше у американских облаков, но большей частью за счет того, что Qwen заточен именно под кодирование:

    Смотрю я на графики GPT-6 и Fable-5.1 и вижу, что в задачах кодирования (SciCode) разница, конечно, в пользу облаков (увы, нет результатов Claude Opus 4.6 и 4.7 в базе), но она вообще не страшная. В агентских сценариях (GDPval-AA v2, 𝜏³-Banking? Terminal-Bench v2.1) или примерный паритет, или локальные модели где-то даже лидеры. С точки зрения галлюцинаций (AA-Omniscience Non-Hallucination Rate) опять же топовый уровень у открытых моделей.

    Проигрыш в общей оценке идет полностью за счет научных бенчмарков и способности работать с документами. Да и общий уровень знаний хуже в разы, что не удивительно учитывая разницу в размере моделей в 1-2 порядка. Но какая разница для задач кодирования общего назначения? Скорее плюс Qwen в части умения сосредоточиться и выдать топовый результат в одной из самых интересных областей.

    И всё это крутится на локальном железе с производительностью от весьма приемлемой до уровня «лучше чем в облаке».

    Выглядит как то, что дела у проприетарных моделей не очень хороши и спасает их только лютый дефицит железа для локального использования. Но если тренд на повышение эффективности разработки будет расти и условный Senior сможет делать x5-x10 работы с моделями, то карты превращаются просто в профессиональный инструмент и порог входа не выше чем в работу в такси и аренду/покупку автомобиля.

    Несколько выводов:

  • Вчера задали вопрос — зачем локальное железо, если есть облака.

    Первый ответ был — для образования. Облака дешевле.

    Потом посчитал.

    Для сравнения берем Qwen3.8-Flash-Next в NVFP4 против Claude Opus 4.8 с максимальным мышлением в задачах кодирования.

    Параметры моделей и результаты тестов отсюда.

    Уровень интеллекта идентичный. Qwen лучше для агентских задач и кодирования. Opus больше знает про мир и науку. NVFP4 чуть снизит точность Qwen, т. е. сравнение будет практически идеальным. Локальный топ против облачного топа минус три месяца (это уже само по себе интересно).

    Скорость Opus по данным по ссылке выше 61 токен в секунду. По другим источникам 67. Qwen выдает на двух RTX PRO 5000 72GB примерно 69 токенов в восемь потоков на каждый из них или до 110 на один в nighly vLLM 0.29.0. Сравнимо.

    При работе 4 часа в день в 4 агентских потока (несколько консервативно) на Qwen получается около 4,8 миллиона токенов в день, чуть больше 100 миллионов в месяц. Входящие токены к исходящим у меня 3:1, 97%+ кэш.

    Стоимость GPU будет около 30000$ (2,6 миллиона в Регард сегодня по курсу 87 рублей). Остальной ПК нам инвариантно нужен для работы.

    При помощи облачного Qwen посчитал сколько это будет стоить через API Anthropic. Получается, что месяц работы будет стоить 2800-2900$ в месяц. Т.е. локальное железо догонит подписку через 11± месяцев. На самом деле это нормальный срок окупаемости оборудования. Даже гарантия не кончится. При этом все данные локально и есть еще огромный запас по производительности. И при низком количестве потоков скорость будет хорошо быстрее облака. Qwen держит больше 100 токенов в секунду в один поток без влияния размера контекста.

    Расчет сделан для 1/10 пиковой нагрузки, т. к. можно гонять 8 потоков и получить где-то х1,6 токенов пропускной способности и 24 часа вместо 4-х. Тут подписка опередит стоимость карт через месяц.

    Оказалось, что сделка в виде покупки железа, не такая уж и плохая идея даже по текущим диким ценам.

    Т.е. если серьёзно работать с ИИ, стоимость карт назвать завышенной реально сложно. Для юрлиц так вообще оправданная инвестиция.

    На этот расчет мне задали ответный вопрос: «Есть же подписка за 200$. Ее не хватит?»

    Вчера задали вопрос — зачем локальное железо, если есть облака.

    Первый ответ был — для образования. Облака дешевле.

    Потом посчитал.

    Для сравнения берем Qwen3.8-Flash-Next в NVFP4 против Claude Opus 4.8 с максимальным мышлением в задачах кодирования.

    Параметры моделей и результаты тестов отсюда.

    Уровень интеллекта идентичный. Qwen лучше для агентских задач и кодирования. Opus больше знает про мир и науку. NVFP4 чуть снизит точность Qwen, т. е. сравнение будет практически идеальным. Локальный топ против облачного топа минус три месяца (это уже само по себе интересно).

    Скорость Opus по данным по ссылке выше 61 токен в секунду. По другим источникам 67. Qwen выдает на двух RTX PRO 5000 72GB примерно 69 токенов в восемь потоков на каждый из них или до 110 на один в nighly vLLM 0.29.0. Сравнимо.

    При работе 4 часа в день в 4 агентских потока (несколько консервативно) на Qwen получается около 4,8 миллиона токенов в день, чуть больше 100 миллионов в месяц. Входящие токены к исходящим у меня 3:1, 97%+ кэш.

    Стоимость GPU будет около 30000$ (2,6 миллиона в Регард сегодня по курсу 87 рублей). Остальной ПК нам инвариантно нужен для работы.

    При помощи облачного Qwen посчитал сколько это будет стоить через API Anthropic. Получается, что месяц работы будет стоить 2800-2900$ в месяц. Т.е. локальное железо догонит подписку через 11± месяцев. На самом деле это нормальный срок окупаемости оборудования. Даже гарантия не кончится. При этом все данные локально и есть еще огромный запас по производительности. И при низком количестве потоков скорость будет хорошо быстрее облака. Qwen держит больше 100 токенов в секунду в один поток без влияния размера контекста.

    Расчет сделан для 1/10 пиковой нагрузки, т. к. можно гонять 8 потоков и получить где-то х1,6 токенов пропускной способности и 24 часа вместо 4-х. Тут подписка опередит стоимость карт через месяц.

    Оказалось, что сделка в виде покупки железа, не такая уж и плохая идея даже по текущим диким ценам.

    Т.е. если серьёзно работать с ИИ, стоимость карт назвать завышенной реально сложно. Для юрлиц так вообще оправданная инвестиция.

    На этот расчет мне задали ответный вопрос: «Есть же подписка за 200$. Ее не хватит?»

  • Экспериментальная рубрика ИИ-шница. ИИ пишет про ИИ. Текст по сумме постоянных вопросов и обсуждений «почему в vLLM нет деградации производительности при большом количестве параллельных запросов». Промпты, вычитка и борьба с галлюцинациями авторские.

    Запуск большой языковой модели (LLM) — это непрерывная борьба с пропускной способностью памяти (Memory Wall). Вычислительные блоки современных процессоров простаивают в ожидании весов модели. Единственный способ радикально ускорить генерацию токенов без физического увеличения шины памяти — уменьшить размер данных и изменить способ их хранения.

    Часть 1. Алфавит точности: Форматы данных

    Веса нейросети — это огромные матрицы чисел. Исторически они хранились в формате FP32 (32-битный float), но для модели на 70 млрд параметров это потребовало бы ~140 ГБ памяти. Индустрия перешла на форматы низкой точности.

    1. Форматы с плавающей запятой (Float)

    • FP16 (Half Precision): 1 знак, 5 бит экспоненты, 10 бит мантиссы. Диапазон мал (до ~65504). При обучении LLM градиенты часто «вылетают» за этот предел (overflow), что приводит к появлению NaN и краху обучения.
    • BF16 (Brain Float 16): Разработан Google. 1 знак, 8 бит экспоненты (как у FP32), и всего 2 бита мантиссы. Огромный диапазон значений предотвращает overflow. Это золотой стандарт для обучения и базовый формат для инференса на серверных ускорителях.
    • FP8 (8-bit Float): Текущий стандарт высокопроизводительного инференса. Делится на два формата:
    • E4M3: 4 бита экспоненты, 3 мантиссы. Высокая точность, малый диапазон. Используется для весов и активаций.
    • E5M2: 5 бит экспоненты, 2 мантиссы. Широкий диапазон, низкая точность. Используется для градиентов при обучении.
    • FP4 (4-bit Float): Экстремальное сжатие. Без аппаратной поддержки бесполезен — накладные расходы на программную распаковку съедают всю выгоду.

    2. Целочисленные форматы (Integer)

    • INT8: Фиксированная запятая. Отлично подходит для квантования весов, не требует сложной экспоненты.
    • INT4: Самый популярный формат для потребительских видеокарт (серии RTX 30/40, Mac). Алгоритмы AWQ и GPTQ работают именно с INT4, позволяя запускать 70B модели в 24 ГБ памяти.

    3. Микромасштабирование (MX — Microscaling)

    • MXFP8, MXFP6, MXFP4 (NVFP4): Это не просто типы данных, а упаковочный стандарт. Суть в том, что один 8-битный коэффициент масштабирования (scale) применяется к микроблоку из 32 элементов (например, FP8 или FP4). Это позволяет сохранить точность, близкую к FP16, используя при этом 4 или 8 бита памяти.

    Часть 1.1. Эффективная битовая плотность (Bits Per Parameter)

    Когда говорят «4-битная модель», имеют в виду сырой размер самих весов. Но на диске и в видеопамяти (VRAM) модель всегда весит больше. Это происходит из-за накладных расходов (overhead): коэффициентов масштабирования (scales), точек нуля (zero-points), метаданных и таблиц важности (importance matrix).

    Метрика BPP (Bits Per Parameter) показывает реальный размер, который занимает один параметр модели с учетом всех необходимых для его расшифровки метаданных.

    КатегорияТип данных / КвантСырой размер элементаЭффективная плотность (BPP)Откуда берутся накладные расходы?
    БазовыеFP3232 бита32.0 bppНет масштабирования.
    FP1616 бит16.0 bppНет масштабирования.
    BF1616 бит16.0 bppНет масштабирования.
    ПромышленныеFP8 (E4M3/E5M2)8 бит~8.0 bppМасштаб обычно per-tensor (1 значение на миллионы весов), его вклад ничтожен.
    INT88 бит~8.1 bppДобавляются per-channel/per-group масштабы и zero-point.
    INT4 (AWQ/GPTQ)4 бита~4.1 — 4.5 bppДобавляются 16-битные масштабы для групп (обычно по 128 элементов).
    Аппаратные MXMXFP88 бит8.25 bpp8 бит данных + 8 бит масштаба на каждые 32 элемента (264 бита / 32).
    MXFP66 бит6.25 bpp6 бит данных + 8 бит масштаба на каждые 32 элемента (200 бит / 32).
    MXFP4 (NVFP4)4 бита4.25 bpp4 бита данных + 8 бит масштаба на каждые 32 элемента (136 бит / 32).
    GGUF (llama.cpp)Q8_08 бит8.5 bpp8 бит данных + один 16-битный (FP16) масштаб на блок из 32 элементов.
    Q5_K_M5 бит5.5 bpp5 бит данных + иерархия 6-битных и 16-битных масштабов и минимумов.
    Q5_K_S5 бит~5.4 bppТо же, что Q5_K_M, но локальные масштабы урезаны до 4 бит.
    Q4_K_M4 бита4.5 bpp4 бита данных + иерархия 6-битных и 16-битных масштабов и минимумов.
    Q4_K_S4 бита~4.4 bppТо же, что Q4_K_M, но локальные масштабы урезаны до 4 бит.
    IQ4_XS4 бита~4.25 bppИспользует imatrix (таблицы важности) и супер-сжатые масштабы.

    Экспериментальная рубрика ИИ-шница. ИИ пишет про ИИ. Текст по сумме постоянных вопросов и обсуждений «почему в vLLM нет деградации производительности при большом количестве параллельных запросов». Промпты, вычитка и борьба с галлюцинациями авторские.

    Запуск большой языковой модели (LLM) — это непрерывная борьба с пропускной способностью памяти (Memory Wall). Вычислительные блоки современных процессоров простаивают в ожидании весов модели. Единственный способ радикально ускорить генерацию токенов без физического увеличения шины памяти — уменьшить размер данных и изменить способ их хранения.

    Часть 1. Алфавит точности: Форматы данных

    Веса нейросети — это огромные матрицы чисел. Исторически они хранились в формате FP32 (32-битный float), но для модели на 70 млрд параметров это потребовало бы ~140 ГБ памяти. Индустрия перешла на форматы низкой точности.

    1. Форматы с плавающей запятой (Float)

    • FP16 (Half Precision): 1 знак, 5 бит экспоненты, 10 бит мантиссы. Диапазон мал (до ~65504). При обучении LLM градиенты часто «вылетают» за этот предел (overflow), что приводит к появлению NaN и краху обучения.
    • BF16 (Brain Float 16): Разработан Google. 1 знак, 8 бит экспоненты (как у FP32), и всего 2 бита мантиссы. Огромный диапазон значений предотвращает overflow. Это золотой стандарт для обучения и базовый формат для инференса на серверных ускорителях.
    • FP8 (8-bit Float): Текущий стандарт высокопроизводительного инференса. Делится на два формата:
    • E4M3: 4 бита экспоненты, 3 мантиссы. Высокая точность, малый диапазон. Используется для весов и активаций.
    • E5M2: 5 бит экспоненты, 2 мантиссы. Широкий диапазон, низкая точность. Используется для градиентов при обучении.
    • FP4 (4-bit Float): Экстремальное сжатие. Без аппаратной поддержки бесполезен — накладные расходы на программную распаковку съедают всю выгоду.

    2. Целочисленные форматы (Integer)

    • INT8: Фиксированная запятая. Отлично подходит для квантования весов, не требует сложной экспоненты.
    • INT4: Самый популярный формат для потребительских видеокарт (серии RTX 30/40, Mac). Алгоритмы AWQ и GPTQ работают именно с INT4, позволяя запускать 70B модели в 24 ГБ памяти.

    3. Микромасштабирование (MX — Microscaling)

    • MXFP8, MXFP6, MXFP4 (NVFP4): Это не просто типы данных, а упаковочный стандарт. Суть в том, что один 8-битный коэффициент масштабирования (scale) применяется к микроблоку из 32 элементов (например, FP8 или FP4). Это позволяет сохранить точность, близкую к FP16, используя при этом 4 или 8 бита памяти.

    Часть 1.1. Эффективная битовая плотность (Bits Per Parameter)

    Когда говорят «4-битная модель», имеют в виду сырой размер самих весов. Но на диске и в видеопамяти (VRAM) модель всегда весит больше. Это происходит из-за накладных расходов (overhead): коэффициентов масштабирования (scales), точек нуля (zero-points), метаданных и таблиц важности (importance matrix).

    Метрика BPP (Bits Per Parameter) показывает реальный размер, который занимает один параметр модели с учетом всех необходимых для его расшифровки метаданных.

    КатегорияТип данных / КвантСырой размер элементаЭффективная плотность (BPP)Откуда берутся накладные расходы?
    БазовыеFP3232 бита32.0 bppНет масштабирования.
    FP1616 бит16.0 bppНет масштабирования.
    BF1616 бит16.0 bppНет масштабирования.
    ПромышленныеFP8 (E4M3/E5M2)8 бит~8.0 bppМасштаб обычно per-tensor (1 значение на миллионы весов), его вклад ничтожен.
    INT88 бит~8.1 bppДобавляются per-channel/per-group масштабы и zero-point.
    INT4 (AWQ/GPTQ)4 бита~4.1 — 4.5 bppДобавляются 16-битные масштабы для групп (обычно по 128 элементов).
    Аппаратные MXMXFP88 бит8.25 bpp8 бит данных + 8 бит масштаба на каждые 32 элемента (264 бита / 32).
    MXFP66 бит6.25 bpp6 бит данных + 8 бит масштаба на каждые 32 элемента (200 бит / 32).
    MXFP4 (NVFP4)4 бита4.25 bpp4 бита данных + 8 бит масштаба на каждые 32 элемента (136 бит / 32).
    GGUF (llama.cpp)Q8_08 бит8.5 bpp8 бит данных + один 16-битный (FP16) масштаб на блок из 32 элементов.
    Q5_K_M5 бит5.5 bpp5 бит данных + иерархия 6-битных и 16-битных масштабов и минимумов.
    Q5_K_S5 бит~5.4 bppТо же, что Q5_K_M, но локальные масштабы урезаны до 4 бит.
    Q4_K_M4 бита4.5 bpp4 бита данных + иерархия 6-битных и 16-битных масштабов и минимумов.
    Q4_K_S4 бита~4.4 bppТо же, что Q4_K_M, но локальные масштабы урезаны до 4 бит.
    IQ4_XS4 бита~4.25 bppИспользует imatrix (таблицы важности) и супер-сжатые масштабы.
  • Для начала, кто такой Джарвис из известного фильма:

    В фильме «Железный человек» (и в других фильмах киновселенной Marvel) Джарвис (J.A.R.V.I.S.) — это искусственный интеллект, помощник Тони Старка.
    Что он делает: — Управляет системами дома и лаборатории Старка: следит за безопасностью, климатом, доступом и т. д. — Помогает с бронёй Железного человека: анализирует данные в бою, подсказывает, помогает с диагностикой и управлением костюма. — Поддерживает диалог с Тони: нередко иронизирует и проявляет характер, оставаясь при этом предельно лояльным. — Его имя — акроним: Just A Rather Very Intelligent System («Просто довольно очень умная система»).

    Почему автор начинает с воспоминания об выдуманном ИИ помощнике? Из-за того, что похоже этот помощник больше не выдуманный. Или, иначе говоря, автор поймал «момент Джарвиса».

    Расскажу поподробнее. В домашней лаборатории присутствует несколько машин, включая моего любимца на базе двух Radeon. Во-первых, это самая бюджетная из всех машин (если не считать GPU, конечно), собранная на Авито. Материнская плата от барыги из Люберец, память из объявлений с Авито и, самое главное, плотная и постоянная любовь с софтом AMD для выжимания из двух потенциально хитовых GPU адекватной производительности. Романтика.

    Но в начале теория в максимально научно популярном виде.

    Посмотрим на характеристики Radeon в части вычислений:

    У Radeon 9000 есть аппаратные ускорители для FP16, FP8, INT8 и INT4 вычислений.

    Для тех, кто не погружен в дебри программирования, расскажу кратко про типы данных в ПК. Глобально они делятся на целочисленные — INT (Integer) и с плавающей точкой, проще говоря, с поддержкой дробей — FP (Floating Point). Целые числа просто хранят двоичное значение. Например 0011 в INT4 это 3 в привычной десятичной системе счисления. 4 в INT4 обозначает длину в 4 бита, т. е. нуля или единицы. Если нужно отличать положительные и отрицательные значения, то первый бит означает знак. Т.е. у INT4 могут быть значения от 0 до 15 или от -7 до 7 в зависимости от трактовки. В INT32 уже 32 нуля или единицы и диапазон значений до 4 миллиардов с лишним.
    С FP ровно точно так же, но система чуть хитрее. Числа хранятся в виде знака, экспоненты и мантиссы. Это та самая научная запись из школы, например 3,14×10^5 (3,14 умножить на 10 в 5 степени, т. е. приписать 5 нулей. В стандартной записи это 314000).
    Здесь:
    3,14 — это мантисса: она хранит «значимые цифры», то есть точность числа.
    10^5 — это экспонента (показатель степени): она говорит, «на сколько позиций сдвинуть запятую», то есть отвечает за масштаб (диапазон) числа.
    В ПК используют 2 как основание, поэтому вместо 10 будут степени двойки.

    Для начала, кто такой Джарвис из известного фильма:

    В фильме «Железный человек» (и в других фильмах киновселенной Marvel) Джарвис (J.A.R.V.I.S.) — это искусственный интеллект, помощник Тони Старка.
    Что он делает: — Управляет системами дома и лаборатории Старка: следит за безопасностью, климатом, доступом и т. д. — Помогает с бронёй Железного человека: анализирует данные в бою, подсказывает, помогает с диагностикой и управлением костюма. — Поддерживает диалог с Тони: нередко иронизирует и проявляет характер, оставаясь при этом предельно лояльным. — Его имя — акроним: Just A Rather Very Intelligent System («Просто довольно очень умная система»).

    Почему автор начинает с воспоминания об выдуманном ИИ помощнике? Из-за того, что похоже этот помощник больше не выдуманный. Или, иначе говоря, автор поймал «момент Джарвиса».

    Расскажу поподробнее. В домашней лаборатории присутствует несколько машин, включая моего любимца на базе двух Radeon. Во-первых, это самая бюджетная из всех машин (если не считать GPU, конечно), собранная на Авито. Материнская плата от барыги из Люберец, память из объявлений с Авито и, самое главное, плотная и постоянная любовь с софтом AMD для выжимания из двух потенциально хитовых GPU адекватной производительности. Романтика.

    Но в начале теория в максимально научно популярном виде.

    Посмотрим на характеристики Radeon в части вычислений:

    У Radeon 9000 есть аппаратные ускорители для FP16, FP8, INT8 и INT4 вычислений.

    Для тех, кто не погружен в дебри программирования, расскажу кратко про типы данных в ПК. Глобально они делятся на целочисленные — INT (Integer) и с плавающей точкой, проще говоря, с поддержкой дробей — FP (Floating Point). Целые числа просто хранят двоичное значение. Например 0011 в INT4 это 3 в привычной десятичной системе счисления. 4 в INT4 обозначает длину в 4 бита, т. е. нуля или единицы. Если нужно отличать положительные и отрицательные значения, то первый бит означает знак. Т.е. у INT4 могут быть значения от 0 до 15 или от -7 до 7 в зависимости от трактовки. В INT32 уже 32 нуля или единицы и диапазон значений до 4 миллиардов с лишним.
    С FP ровно точно так же, но система чуть хитрее. Числа хранятся в виде знака, экспоненты и мантиссы. Это та самая научная запись из школы, например 3,14×10^5 (3,14 умножить на 10 в 5 степени, т. е. приписать 5 нулей. В стандартной записи это 314000).
    Здесь:
    3,14 — это мантисса: она хранит «значимые цифры», то есть точность числа.
    10^5 — это экспонента (показатель степени): она говорит, «на сколько позиций сдвинуть запятую», то есть отвечает за масштаб (диапазон) числа.
    В ПК используют 2 как основание, поэтому вместо 10 будут степени двойки.
  • Большой тест 13 актуальных локальных LLM 30-300B классов и более 28 их вариантов весны-лета 2026. Исследуем влияние квантования и глубины мышления на результат в лесу вариантов
    Подпишитесь на уровень «Технологичный наблюдатель»Уже есть подписка?
    Протестирована вся dense линейка Qwen 27-30B начиная с Qwen 3, MoE Qwen 3.6, 3.8-Flash-Next, Laguna S 2.1, Ornith 35B 1.0 и 1.5, Deepseek V4 Flash, Step 3.7, Muse Glimmer и Gemma 4 31B. Qwen 3.8 27B разобран во всех адекватных (NV)FP4/8/16 и UD-Q квантах от Qwen и Unsloth. А главное, из всего этого в статье будет ряд выводов, причем куда интереснее чем берите FP16 и много железа. Наливайте чай и поехали!Подпишитесь, чтобы читать далее
    Технологичный наблюдатель
  • Сегодня для нас нет ничего важнее умнеющего ИИ

    Автор наконец-то закончил физически делать массовый тест различных актуальных моделей, включая различные кванты и пытается оформить это в статью и сделать какие-то выводы.

    Пока небольшое превью одного из тестов — рисования пейзажа по комплексному детальному промпту средствами HTML Canvas, т. е. картинка динамическая, со сменой времени суток и т. п.

    Для начала Qwen3-32B от апреля 2025 года:

    А теперь Qwen3.8-27B от августа 2026 года по тому же самому промпту:

    Комментировать тут толком нечего. Скачок за 16 месяцев выглядит где-то так. Не говорите, что вас не предупреждали.

    Сегодня для нас нет ничего важнее умнеющего ИИ

    Автор наконец-то закончил физически делать массовый тест различных актуальных моделей, включая различные кванты и пытается оформить это в статью и сделать какие-то выводы.

    Пока небольшое превью одного из тестов — рисования пейзажа по комплексному детальному промпту средствами HTML Canvas, т. е. картинка динамическая, со сменой времени суток и т. п.

    Для начала Qwen3-32B от апреля 2025 года:

    А теперь Qwen3.8-27B от августа 2026 года по тому же самому промпту:

    Комментировать тут толком нечего. Скачок за 16 месяцев выглядит где-то так. Не говорите, что вас не предупреждали.

  • Технологичный наблюдатель
  • Сегодня для нас нет ничего важнее Qwen 3.8 27B и эволюционного скачка.

    Как уже писал в Телеграм, первые тесты моделей я делаю при помощи задач вида «Реализуй 3Д тетрис» или «Полет через гиперпространство с мостика Тысячелетнего Сокола». Естественно не просто так, а на основе некой подготовленной спецификации, которая прогоняется через тестируемые модели.

    Мне такие тесты нравятся, т. к. визуально и просто показывают «глубину мышления» моделей. Например, обычный 2Д тетрис реализуют все модели за последний год. А если заменить спрайты объемными кубами, не меняя механику, то мозг у моделей сносит. Первая справившаяся с этим заданием модель была Qwen 3.5 122B A10B и 397B вариант, естественно. Квены 3.6, в целом, справлялись оба, но так же как и крупные 3.5 не без нюансов. А дальше… А дальше расскажу в большом тесте локальных моделей этой весны-лета, как закончу гонять все модели через тестовый набор.

    Естественно, дождался и Qwen 3.8 27B, т. к. 2.4T версия явно непригодна для домашнего локального запуска из-за своего размера. Скажу сразу, что модель справилась. А дальше я пошел накручивать всякие примочки, фон, анимацию времени суток, исправлять анимации и т. п. и, пожалуй впервые, не произошло деградации внимания модели относительно сцены. И получился результат со скриншота (см. приложенный файл etalon-qwen3.8-27b-fp8.html, просто открываем в десктопном браузере и играем).

    Это уже отлично, а далее я попросил модель написать детальную спецификацию, по которой она сама сможет повторить эталонный результат (см. tetris.adv.req.md).

    И, момент истины, запускаем генерацию просто по спецификации и получаем… А получаем функционально точную копию (tetris-adv.qwen3.8-27B-FP8.html). И копию на уровне, что автор не смог различить результат визуально.

    И вот это, на мой взгляд, реальный прорыв. В более ранних экспериментах такого не было даже случайно. Модель способная описать и повторить то, что делалось в виде интерактивной сессии это новый уровень взаимодействия. Пока не очевидно насколько такое поведение стабильно, но сама возможность заставляет задуматься о перспективах.

    Сегодня для нас нет ничего важнее Qwen 3.8 27B и эволюционного скачка.

    Как уже писал в Телеграм, первые тесты моделей я делаю при помощи задач вида «Реализуй 3Д тетрис» или «Полет через гиперпространство с мостика Тысячелетнего Сокола». Естественно не просто так, а на основе некой подготовленной спецификации, которая прогоняется через тестируемые модели.

    Мне такие тесты нравятся, т. к. визуально и просто показывают «глубину мышления» моделей. Например, обычный 2Д тетрис реализуют все модели за последний год. А если заменить спрайты объемными кубами, не меняя механику, то мозг у моделей сносит. Первая справившаяся с этим заданием модель была Qwen 3.5 122B A10B и 397B вариант, естественно. Квены 3.6, в целом, справлялись оба, но так же как и крупные 3.5 не без нюансов. А дальше… А дальше расскажу в большом тесте локальных моделей этой весны-лета, как закончу гонять все модели через тестовый набор.

    Естественно, дождался и Qwen 3.8 27B, т. к. 2.4T версия явно непригодна для домашнего локального запуска из-за своего размера. Скажу сразу, что модель справилась. А дальше я пошел накручивать всякие примочки, фон, анимацию времени суток, исправлять анимации и т. п. и, пожалуй впервые, не произошло деградации внимания модели относительно сцены. И получился результат со скриншота (см. приложенный файл etalon-qwen3.8-27b-fp8.html, просто открываем в десктопном браузере и играем).

    Это уже отлично, а далее я попросил модель написать детальную спецификацию, по которой она сама сможет повторить эталонный результат (см. tetris.adv.req.md).

    И, момент истины, запускаем генерацию просто по спецификации и получаем… А получаем функционально точную копию (tetris-adv.qwen3.8-27B-FP8.html). И копию на уровне, что автор не смог различить результат визуально.

    И вот это, на мой взгляд, реальный прорыв. В более ранних экспериментах такого не было даже случайно. Модель способная описать и повторить то, что делалось в виде интерактивной сессии это новый уровень взаимодействия. Пока не очевидно насколько такое поведение стабильно, но сама возможность заставляет задуматься о перспективах.

  • Итоги июня и планы на лето
    Подпишитесь на уровень «Технологичный наблюдатель»Уже есть подписка?
    Лето - тяжелый сезон отпусков и задач в физическом, отличных от ИИ. Про итоги июня и ближайшие планы. Опять будет про железо, масштабный командный эксперимент, занявший весь июнь, а так же почему нельзя менять модели в конвейере из-за разности в поведении.Подпишитесь, чтобы читать далее
    Технологичный наблюдатель
  • Ребята из OpenRouter утверждают, что коллектив моделей с арбитром может давать намного лучшие результаты, чем любая одиночная модель и вдвое дешевле. Т.е. модели дают свои ответы, а арбитр их суммаризирует и выбирает лучшее.

    И еще интересная заметка по этой же теме.

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

    Ребята из OpenRouter утверждают, что коллектив моделей с арбитром может давать намного лучшие результаты, чем любая одиночная модель и вдвое дешевле. Т.е. модели дают свои ответы, а арбитр их суммаризирует и выбирает лучшее.

    И еще интересная заметка по этой же теме.

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

  • Выходные ушли на пересборку железа в свежий корпус, не считая дел дачных, поэтому материалов пока немного.

    Но пара новостей есть, которыми хочется поделиться:

    1. Вышла в релиз поддержка Eagle3 в llama.cpp. Это еще один алгоритм спекулятивного декодирования. Работает иначе, чем MTP. Может давать лучшие результаты. Надо тестировать. Остается дождаться dflash и будет полный набор, благо PR уже готов.

    2. Крайне рекомендую прочитать обзор AI Disrupt PDLC от Сбера от блога конференций Олега Бунина. Ссылки на исходные материалы в статье. По сути, материал Сбера для ЦИПР эпохальный. Must read. Обзор компактный и даст представление. Мое чувство прекрасного говорит о том, что коллеги максимально правы из сегодняшнего дня с точки зрения направления разработки с ИИ.

    Выходные ушли на пересборку железа в свежий корпус, не считая дел дачных, поэтому материалов пока немного.

    Но пара новостей есть, которыми хочется поделиться:

    1. Вышла в релиз поддержка Eagle3 в llama.cpp. Это еще один алгоритм спекулятивного декодирования. Работает иначе, чем MTP. Может давать лучшие результаты. Надо тестировать. Остается дождаться dflash и будет полный набор, благо PR уже готов.

    2. Крайне рекомендую прочитать обзор AI Disrupt PDLC от Сбера от блога конференций Олега Бунина. Ссылки на исходные материалы в статье. По сути, материал Сбера для ЦИПР эпохальный. Must read. Обзор компактный и даст представление. Мое чувство прекрасного говорит о том, что коллеги максимально правы из сегодняшнего дня с точки зрения направления разработки с ИИ.

  • Экспериментальная рубрика ИИ-шница. ИИ пишет про ИИ. Текст по сумме постоянных вопросов и обсуждений «почему в vLLM нет деградации производительности при большом количестве параллельных запросов». Промпты, вычитка и борьба с галлюцинациями авторские.

    Управление KV-кэшем в vLLM и llama.cpp: Архитектурные различия и их последствия

    Фундамент: Prefill, Decode и роль KV-кэша

    Прежде чем обсуждать планировщики и сериализацию, необходимо детально разобраться в том, как именно LLM генерирует текст. Инференс любой авторегрессионной модели состоит из двух принципиально разных фаз: prefill и decode. Понимание их различий — ключ ко всей статье, потому что все оптимизации в vLLM и llama.cpp существуют исключительно для решения проблем, порождаемых этой двойственностью.

    Но сначала определим центральное понятие, вокруг которого строится вся статья.

    Что такое KV-кэш

    KV-кэш (Key-Value Cache) — это буфер в памяти GPU/CPU, в котором хранятся промежуточные тензоры Key и Value, вычисленные механизмом самовнимания (self-attention) для каждого обработанного токена.

    В трансформере на каждом слое внимания каждый токен формирует три вектора: Query (Q), Key (K) и Value (V). При генерации нового токена его Query должен быть сопоставлен с Keys всех предыдущих токенов, чтобы определить, на какие части контекста обратить внимание, и затем агрегировать соответствующие Values. Без кэша эти K и V пришлось бы пересчитывать заново на каждом шаге генерации, что привело бы к квадратичной сложности по времени. KV-кэш сохраняет их один раз, превращая каждый последующий шаг decode из O(N²) в O(N) по вычислениям. Именно этот кэш является главным потребителем VRAM при длинных контекстах и главным объектом оптимизаций, описанных в этой статье.

    Prefill (Фаза заполнения)

    Prefill — это первая фаза обработки запроса, на которой модель параллельно обрабатывает все входные токены промпта (включая системный промпт, историю диалога и текущее сообщение пользователя).

    Как это работает технически:

    1. Весь промпт токенизируется в последовательность token IDs длиной N.
    2. Токены превращаются в эмбеддинги (Embeddings — плотные векторные представления токенов фиксированной размерности, полученные из таблицы эмбеддингов модели; каждый токен отображается в точку в многомерном пространстве, где семантически близкие токены расположены рядом) и подаются в трансформер одним батчем размера N.
    3. На каждом слое attention вычисляется сразу для всех позиций: матрица Q умножается на транспонированную K, получается матрица attention scores размера N × N, которая затем умножается на V.
    4. Результатом prefill является матрица скрытых состояний (hidden states) размера N × d (где d — размерность модели), содержащая контекстуализированные представления всех токенов промпта, а также заполненный KV-кэш для всех N позиций. Из последнего столбца этой матрицы извлекается вектор, который проходит через выходной слой (lm_head) и превращается в логиты последнего токена.
    Логит (Logit) — это «сырой» числовой скор, выдаваемый финальным линейным слоем модели до применения функции softmax. Логиты представляют собой ненормализованные оценки правдоподобия каждого токена словаря; после softmax они превращаются в вероятности, из которых семплер выбирает следующий токен.

    Характеристики prefill:

    Экспериментальная рубрика ИИ-шница. ИИ пишет про ИИ. Текст по сумме постоянных вопросов и обсуждений «почему в vLLM нет деградации производительности при большом количестве параллельных запросов». Промпты, вычитка и борьба с галлюцинациями авторские.

    Управление KV-кэшем в vLLM и llama.cpp: Архитектурные различия и их последствия

    Фундамент: Prefill, Decode и роль KV-кэша

    Прежде чем обсуждать планировщики и сериализацию, необходимо детально разобраться в том, как именно LLM генерирует текст. Инференс любой авторегрессионной модели состоит из двух принципиально разных фаз: prefill и decode. Понимание их различий — ключ ко всей статье, потому что все оптимизации в vLLM и llama.cpp существуют исключительно для решения проблем, порождаемых этой двойственностью.

    Но сначала определим центральное понятие, вокруг которого строится вся статья.

    Что такое KV-кэш

    KV-кэш (Key-Value Cache) — это буфер в памяти GPU/CPU, в котором хранятся промежуточные тензоры Key и Value, вычисленные механизмом самовнимания (self-attention) для каждого обработанного токена.

    В трансформере на каждом слое внимания каждый токен формирует три вектора: Query (Q), Key (K) и Value (V). При генерации нового токена его Query должен быть сопоставлен с Keys всех предыдущих токенов, чтобы определить, на какие части контекста обратить внимание, и затем агрегировать соответствующие Values. Без кэша эти K и V пришлось бы пересчитывать заново на каждом шаге генерации, что привело бы к квадратичной сложности по времени. KV-кэш сохраняет их один раз, превращая каждый последующий шаг decode из O(N²) в O(N) по вычислениям. Именно этот кэш является главным потребителем VRAM при длинных контекстах и главным объектом оптимизаций, описанных в этой статье.

    Prefill (Фаза заполнения)

    Prefill — это первая фаза обработки запроса, на которой модель параллельно обрабатывает все входные токены промпта (включая системный промпт, историю диалога и текущее сообщение пользователя).

    Как это работает технически:

    1. Весь промпт токенизируется в последовательность token IDs длиной N.
    2. Токены превращаются в эмбеддинги (Embeddings — плотные векторные представления токенов фиксированной размерности, полученные из таблицы эмбеддингов модели; каждый токен отображается в точку в многомерном пространстве, где семантически близкие токены расположены рядом) и подаются в трансформер одним батчем размера N.
    3. На каждом слое attention вычисляется сразу для всех позиций: матрица Q умножается на транспонированную K, получается матрица attention scores размера N × N, которая затем умножается на V.
    4. Результатом prefill является матрица скрытых состояний (hidden states) размера N × d (где d — размерность модели), содержащая контекстуализированные представления всех токенов промпта, а также заполненный KV-кэш для всех N позиций. Из последнего столбца этой матрицы извлекается вектор, который проходит через выходной слой (lm_head) и превращается в логиты последнего токена.
    Логит (Logit) — это «сырой» числовой скор, выдаваемый финальным линейным слоем модели до применения функции softmax. Логиты представляют собой ненормализованные оценки правдоподобия каждого токена словаря; после softmax они превращаются в вероятности, из которых семплер выбирает следующий токен.

    Характеристики prefill:


  • Пока мы спокойно встречали пятницу, Google DeepMind выкатили обновление Gemma 4, позволяющее запустить полную 31B версию на 18GB VRAM — Gemma 4 QAT.

    А Unsloth еще и улучшили результат Google — https://unsloth.ai/docs/models/gemma-4/qat#run-gemma-4-qat-tutorials

    Автор не может проверить модель в моменте. Лес вокруг оставляет мало опций дотянуться до домашней лаборатории.

    Тем не менее, оригинальная Gemma 4 31B в Q4 кванте на 32Гб оперативной памяти была едва работоспособна с сильно урезанном контексте.

    Что такое QAT, как говорит нам оригинальная карточка модели на Hugging Face (машинный перевод):

    Эта карточка модели предназначена для новых версий семейства Gemma 4, оптимизированных с помощью обучения с учётом квантования (Quantization‑Aware Training, QAT), что позволяет сохранить качество, сопоставимое с форматом bfloat16, при значительном снижении требований к объёму памяти для загрузки модели. Доступны четыре версии чекпоинтов QAT:
    1.Не квантованные чекпоинты QAT (Q4_0): веса в полуточной точности, извлечённые из пайплайна QAT; идеально подходят для кастомной последующей компиляции и исследований. Доступны для моделей Gemma 4 E2B, E4B, 12B, 26B A4B и 31B, а также для их черновых (drafter) моделей.
    2. GGUF (Q4_0): готовые к развёртыванию форматы для широкой совместимости с различными экосистемами. Доступны для моделей Gemma 4 E2B, E4B, 12B, 26B A4B и 31B.
    3. Оптимизированные для мобильных устройств (wNa8o8): специальная схема, разработанная специально для повышения эффективности работы на мобильном оборудовании. Включает целевые слои декодирования с разрядностью 2 бита, оптимизированные кэши KV (Key‑Value) и статические активации для максимального сокращения использования видеопамяти (VRAM). Доступны для моделей Gemma 4 E2B и E4B.
    4. Сжатые тензоры (w4a16): чекпоинты QAT, сериализованные в формате сжатых тензоров для нативного оптимизированного вывода с использованием vLLM. Доступны для моделей Gemma 4 E2B, E4B, 12B и 31B.

    Т.е. мы получили новый способ сжатия моделей на 70% практически без потери качества.

    Стоит проверить.

    Подобная динамика очень сильно напоминает мир веб-разработки первой половины 2010-х, когда каждый понедельник надо было разбираться с новыми фреймворками веб-разработки. И это классно. Продолжаем погружение.


    Пока мы спокойно встречали пятницу, Google DeepMind выкатили обновление Gemma 4, позволяющее запустить полную 31B версию на 18GB VRAM — Gemma 4 QAT.

    А Unsloth еще и улучшили результат Google — https://unsloth.ai/docs/models/gemma-4/qat#run-gemma-4-qat-tutorials

    Автор не может проверить модель в моменте. Лес вокруг оставляет мало опций дотянуться до домашней лаборатории.

    Тем не менее, оригинальная Gemma 4 31B в Q4 кванте на 32Гб оперативной памяти была едва работоспособна с сильно урезанном контексте.

    Что такое QAT, как говорит нам оригинальная карточка модели на Hugging Face (машинный перевод):

    Эта карточка модели предназначена для новых версий семейства Gemma 4, оптимизированных с помощью обучения с учётом квантования (Quantization‑Aware Training, QAT), что позволяет сохранить качество, сопоставимое с форматом bfloat16, при значительном снижении требований к объёму памяти для загрузки модели. Доступны четыре версии чекпоинтов QAT:
    1.Не квантованные чекпоинты QAT (Q4_0): веса в полуточной точности, извлечённые из пайплайна QAT; идеально подходят для кастомной последующей компиляции и исследований. Доступны для моделей Gemma 4 E2B, E4B, 12B, 26B A4B и 31B, а также для их черновых (drafter) моделей.
    2. GGUF (Q4_0): готовые к развёртыванию форматы для широкой совместимости с различными экосистемами. Доступны для моделей Gemma 4 E2B, E4B, 12B, 26B A4B и 31B.
    3. Оптимизированные для мобильных устройств (wNa8o8): специальная схема, разработанная специально для повышения эффективности работы на мобильном оборудовании. Включает целевые слои декодирования с разрядностью 2 бита, оптимизированные кэши KV (Key‑Value) и статические активации для максимального сокращения использования видеопамяти (VRAM). Доступны для моделей Gemma 4 E2B и E4B.
    4. Сжатые тензоры (w4a16): чекпоинты QAT, сериализованные в формате сжатых тензоров для нативного оптимизированного вывода с использованием vLLM. Доступны для моделей Gemma 4 E2B, E4B, 12B и 31B.

    Т.е. мы получили новый способ сжатия моделей на 70% практически без потери качества.

    Стоит проверить.

    Подобная динамика очень сильно напоминает мир веб-разработки первой половины 2010-х, когда каждый понедельник надо было разбираться с новыми фреймворками веб-разработки. И это классно. Продолжаем погружение.

  • RTX PRO 5000 и первые тесты производительности
    Подпишитесь на уровень «Технологичный наблюдатель»Уже есть подписка?
    В лаборатории появилась карта RTX PRO 5000 Blackwell 72GB. Первые тесты и впечатления.Подпишитесь, чтобы читать далее
    Технологичный наблюдатель
  • Первый результативный подход к методологии работы с агентами
    Подпишитесь на уровень «Технологичный наблюдатель»Уже есть подписка?
    Сегодня пройдемся по кластеру для домашней ИИ лаборатории и минимально рабочей методологии работы с агентами, которая начала приносить результат автору в виде этого самого кластера. И теоретически заглянем дальше.Подпишитесь, чтобы читать далее
    Технологичный наблюдатель
  • Последние пару недель ушли, кроме оторванных от ИИ бытовых вещей, уже на реальные рабочие эксперименты с локальными моделями.

    Как писал в канале, к сожалению использование vLLM вместе с Ryzen 395 пока выглядит максимум как спортивная дисциплина. Всё работает, но вдвое медленнее чем под llama.cpp, а появление спекулятивного декодирования в виде MTP в последней сделало все остальные варианты запуска моделей малоинтересными на практике.

    Параллельно стало окончательно понятно, что Qwen 3.6 в обоих своих вариантах (27B dense и 35B MoE) фактически уничтожил на сегодня потребность запуска любых других моделей локально. Нет, модели несколько лучше есть, но для нормальной работы им нужны уже серверные конфигурации, т. к. объема памяти в 128Гб просто перестает хватать, а кластерные истории на мини-ПК для таких моделей глубоко сомнительны из-за относительно низкого абсолютного уровня производительности.

    Как итог, Qwen 3.6 наше все. Смотрим на тесты SWE-bench_Verified и SWE-bench_Pro на Hugging Face:


    Если учесть, что OrionLLM/GRM-2.6-Plus это «файнтюн» Qwen, то хорошо видно:

    • Лучше особо ничего нет, если меньше триллиона параметров
    • А то, что есть, хорошо работает на отдельных машинах без всякой магии

    Исходя из всего этого кластер было решено делать как интерфейс + прокси с автозагрузкой моделей по требованию + llama.cpp на воркерах. По крайней мере до следующего скачка в открытых моделях 70-128B, когда появится потребность или экономить память, или ускорять вычисления.

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

    Как писал в канале, к сожалению использование vLLM вместе с Ryzen 395 пока выглядит максимум как спортивная дисциплина. Всё работает, но вдвое медленнее чем под llama.cpp, а появление спекулятивного декодирования в виде MTP в последней сделало все остальные варианты запуска моделей малоинтересными на практике.

    Параллельно стало окончательно понятно, что Qwen 3.6 в обоих своих вариантах (27B dense и 35B MoE) фактически уничтожил на сегодня потребность запуска любых других моделей локально. Нет, модели несколько лучше есть, но для нормальной работы им нужны уже серверные конфигурации, т. к. объема памяти в 128Гб просто перестает хватать, а кластерные истории на мини-ПК для таких моделей глубоко сомнительны из-за относительно низкого абсолютного уровня производительности.

    Как итог, Qwen 3.6 наше все. Смотрим на тесты SWE-bench_Verified и SWE-bench_Pro на Hugging Face:


    Если учесть, что OrionLLM/GRM-2.6-Plus это «файнтюн» Qwen, то хорошо видно:

    • Лучше особо ничего нет, если меньше триллиона параметров
    • А то, что есть, хорошо работает на отдельных машинах без всякой магии

    Исходя из всего этого кластер было решено делать как интерфейс + прокси с автозагрузкой моделей по требованию + llama.cpp на воркерах. По крайней мере до следующего скачка в открытых моделях 70-128B, когда появится потребность или экономить память, или ускорять вычисления.

  • Железо для домашней ИИ лаборатории в мае 2026
    Подпишитесь на уровень «Технологичный наблюдатель»Уже есть подписка?
    Никогда не думал, что придется ставить в превью статьи про железо для ИИ фото процессора 2020 года спустя 6 лет после его выхода. Давайте чуть поговорим про железо для локального запуска моделей в мае 2026 года и что еще можно собрать за адекватные деньги для экспериментов. 3 принципиальных варианта по железу и адекватная сборка ПК из 2020 года, которую можно использовать.Подпишитесь, чтобы читать далее
    Технологичный наблюдатель