Почему локальная LLM кажется глупее, чем есть на самом деле

· Искусственный интеллект
Автор с форума Level1Techs провёл серию экспериментов, показав, что одни и те же веса модели выдают разные токены в зависимости от железа и софта — и что за этим стоит вполне материальная математика.

cover.svg

На форуме Level1Techs появился обстоятельный технический разбор под авторством пользователя thr3e, отвечающий на знакомую многим ситуацию: все хвалят некую модель, вы скачиваете её (чаще всего в квантованном виде) — и разочаровываетесь. Главный тезис прост и утешителен: ваша локальная реализация «тупит», но у всех остальных она тоже «тупит», просто по-своему.

Причина — в том, что каждая связка железа и ПО считает следующий токен чуть иначе. Разные поколения GPU, разные наборы инструкций, разные CUDA-ядра, а поверх этого — гора зависимостей: в ночной сборке контейнера vLLM автор насчитал 734 пакета, каждый со своими багами и особенностями. Отдельно он напоминает про настройки сэмплера: их стоит брать из карточки модели, а слишком низкая температура — типичная причина, по которой Qwen зацикливается в своих «размышлениях».

Математика есть математика

Самое любопытное — эксперименты на модели Qwen3.6-27B, где автор фиксировал полные логиты и сравнивал результаты. Оказалось, что даже смена одного лишь механизма внимания (FlashAttention 2, Flash Inference или Triton) при неизменных весах, драйверах и промпте приводит к тому, что модель начинает выбирать разные токены. Расхождения появляются не плавно с ростом контекста, а кластерами, привязанными к содержанию промпта. При этом повторные запуски с одним и тем же бэкендом дают бит-в-бит идентичные логиты — то есть виновата исключительно арифметика умножения матриц.

Ещё нагляднее — квантование KV-кеша. При урезании до int4 модель после определённого объёма контекста разваливается и не может корректно завершить вызов инструмента; int8 ошибается, но восстанавливается; bf16 работает штатно.

Битва квантов

В сравнении пяти вариантов весов лучше всех показал себя INT8 (W8A16), обойдя даже фирменный FP8. А вот релиз NVFP4 от NVIDIA пришёл последним, набрав к 88 тысячам токенов около 50% расхождений в топ-1. И NVFP4, и AWQ-квант не только не закрывали вызовы функций, но и путали синтаксис командной строки Cisco: вместо show arp выполняли show run.

Во второй части автор разбирает конкретные сбои: из-за одного «перевёрнутого» токена FlashAttention 2 обращается не к тому интерфейсу маршрутизатора — в бою это могло бы стать причиной серьёзного сбоя сети. Отдельно показано, что при tensor parallelism результат меняется нелогично (TP1 — верно, TP2 — ошибка, TP4 — снова верно), и чаще всего виноват NCCL.

Третья часть посвящена «раскованным» файнтюнам Qwen3.8. Некоторые (Heretic-ARA, Huihui) почти не портят рабочее поведение, тогда как другие вносят грубые ошибки: AEON, например, превратил порт 5432 в 543ql и повредил имена хостов в командах.

Общий вывод дискуссии в комментариях звучит трезво: маленькие модели не стоит доверять ответственным задачам, а красивые цифры KLD в карточках квантов бессмысленны без раскрытия полной методики измерений.


Источник: Hacker News

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.