Почему локальная LLM кажется глупее, чем есть на самом деле
На форуме 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
Комментарии
Войдите, чтобы комментировать.