В библиотеке Ollama нашли 7 «мёртвых» моделей из 305: они не пишут код

Скачивая модель для локального запуска, вы получаете сжатую копию (квантизацию) оригинала. Никто не проверяет, что она вообще работает. Авторы исследования прогнали код-тесты на всех 305 подходящих сборках официальной библиотеки Ollama. Семь сборок (2,3%) решили не больше 6 из 164 задач HumanEval+, это набор задач на Python с усиленными тестами. Все семь — сильное сжатие моделей до 4 млрд параметров. Пять таких файлов исследователи пересобрали из исходных весов. Побайтно всё совпало: файлы не повреждены. Просто сжатие шло без калибровки. Когда для Qwen2.5-Coder-3B добавили матрицу важности, результат вырос с нуля до 76–113 задач из 164. • Быстрый тест занимает около 30 секунд генерации на файл. • Из 66 выборочно проверенных «прошедших» сборок сломанных нет. • У 26 из 305 тегов до сих пор нет типа токенизатора.

AI-обработка оригинала Hugging Face Daily Papers; редакция Hamidun News
В библиотеке Ollama нашли 7 «мёртвых» моделей из 305: они не пишут код
Источник: Hugging Face Daily Papers. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHugging Face Daily Papers ↗
Главный редактор
Ключевой факт #1Быстрый тест занимает около 30 секунд генерации на файл.
Ключевой факт #2Из 66 выборочно проверенных «прошедших» сборок сломанных нет.
Ключевой факт #3У 26 из 305 тегов до сих пор нет типа токенизатора.

Когда разработчик запускает языковую модель у себя на компьютере, он почти всегда скачивает сжатый файл из публичного каталога. Сжатие называется квантизацией: веса модели хранят не в 16 битах, а в 2–8, чтобы файл влез в память. Такие файлы выпускают операторы каталогов или добровольцы, и ни на страницах каталогов, ни в метаданных нет записи о том, что файл проверили в деле. Исследователи решили проверить это на масштабе целого каталога: взяли все 305 подходящих сборок (тегов) из официальной библиотеки Ollama и запустили на каждой задачи по программированию. Семь сборок, то есть 2,3%, оказались нерабочими: они решили не больше 6 из 164 задач.

Как искали мёртвые файлы

В выборку вошли 15 линеек моделей: восемь заточены под код, семь универсальные. Всего 35 вариантов моделей; 291 сборка квантизована, 14 хранятся в обычной 16-битной точности. К ним добавили 22 популярных файла сообщества с Hugging Face из 12 репозиториев.

Проверка шла в два этапа:

• Быстрый фильтр. 15 задач из HumanEval+. Их выбрали из 39 задач, которые решили все 23 заведомо здоровые конфигурации Qwen2.5-Coder. Сборка, решившая меньше 9 из 15, попадала под подозрение. Генерация занимает около 30 секунд на файл. • Полный прогон. Подозреваемые получили все 164 задачи HumanEval+. Нерабочей считалась сборка, которая решила меньше 10% и при этом сильно отстаёт от своей же версии в высокой точности.

Все запуски шли на видеокарте RTX 4090 с жадным декодированием и фиксированным зерном (seed 42), так что повторный прогон на второй машине дал те же 225 ответов байт в байт. Попутно нашлась ошибка в самом подсчёте: из-за таймаутов задача HumanEval/15 засчитывалась проваленной почти везде. После перепроверки подозрительных сборок осталось 39 вместо 50, а семь главных подозреваемых не изменились.

Все семь — сильно сжатые версии моделей размером до 4 млрд параметров. Пять из них относятся к Qwen и phi3.5. Ещё два тега у llama3.2 на 1 млрд параметров. Их не стали пересобирать из-за лицензии на исходные веса, поэтому причина осталась невыясненной. Два файла сообщества тоже не заработали, их проверили отдельно на разных шаблонах чата.

Файлы целы, виновата рецептура

Исследователи пересобрали пять подозреваемых из оригинальных весов по тому рецепту, который указан в метаданных, то есть без калибровки. Потом сравнили тензоры: тип, форму и байты. Результат неожиданный: все пять файлов из каталога совпали с пересборкой полностью. Никакой порчи при конвертации нет. Это точные квантизации исходных весов, они просто не работают.

Дальше проверили калибровку. Это матрица важности (imatrix): статистика активаций, собранная на образце текста. Она подсказывает квантизатору, где ошибка округления опаснее, и он точнее подбирает масштабы блоков. Матрицу строили либо на 100 фрагментах WikiText-2 по 512 токенов, либо на 1,5 МБ кода Python из репозитория llama.cpp.

Ответ такой:

• У Qwen2.5-Coder-3B на трёх из четырёх сломанных уровней сжатия результат вырос с нуля до 76–113 задач из 164, то есть 46–69%. Четырёхбитная версия этой же модели решает около 80%. • Тот же рецепт без калибровки на Qwen2.5-Coder-1.5B дал рабочую модель. Значит, по одному рецепту поломку не предсказать. • Из 66 выборочно проверенных сборок, прошедших фильтр, нерабочих нет.

Первая версия исследования выбирала эталон по автору конвертации, а не по рецепту, и называла файлы бракованными. Пересборка по тому же рецепту исправила этот вывод.

Что делать операторам каталогов и пользователям

Проблемы с файлами в каталогах уже случались. В 2024 году мейнтейнеры llama.cpp обнаружили, что часть конвертаций использует неверную предобработку текста перед токенизацией, и пользователи жаловались на сбои. Спустя два года у 26 из 305 официальных тегов всё ещё не указан тип токенизатора.

Авторы рекомендуют вот что:

• Перед публикацией прогонять низкобитные сборки через короткий тест на выполнение кода. Для этого они выложили инструмент quantcheck и данные аудита. • Если сборка провалила тест, её нужно калибровать или не выпускать. • Пользователям не стоит считать тег в каталоге проверенным, особенно при 2–3 битах на вес и в моделях до 4 млрд параметров.

Ограничения тоже есть. Проверка охватывает только модели для кода и одну официальную библиотеку плюс небольшую выборку с Hugging Face. Два нерабочих тега llama3.2-1B остались без объяснения. Фильтр опирается на задачи, подобранные по здоровым Qwen-сборкам, а среди моделей deepseek-coder-1.3B шесть тегов и вовсе набирают 1–6 из 15 даже в высокой точности, хотя это другая история. Но главный вывод ясен: точное совпадение с рецептом ещё не значит, что файл работает, и дешёвый тест в 30 секунд поймал то, что месяцами лежало в каталоге.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: как искали мёртвые файлы?

В выборку вошли 15 линеек моделей: восемь заточены под код, семь универсальные. Всего 35 вариантов моделей; 291 сборка квантизована, 14 хранятся в обычной 16-битной точности. К ним добавили 22 популярных файла сообщества с Hugging Face из 12 репозиториев. Проверка шла в два этапа: Быстрый фильтр. 15 задач из HumanEval+. Их выбрали из 39 задач, которые решили все 23 заведомо здоровые конфигурации Qwen2.5-Coder. Сборка, решившая меньше 9 из 15, попадала под подозрение. Генерация занимает около 30 секунд на файл. Полный прогон. Подозреваемые получили все 164 задачи HumanEval+.

Что известно по теме: файлы целы, виновата рецептура?

Исследователи пересобрали пять подозреваемых из оригинальных весов по тому рецепту, который указан в метаданных, то есть без калибровки. Потом сравнили тензоры: тип, форму и байты. Результат неожиданный: все пять файлов из каталога совпали с пересборкой полностью. Никакой порчи при конвертации нет. Это точные квантизации исходных весов, они просто не работают. Дальше проверили калибровку. Это матрица важности (imatrix): статистика активаций, собранная на образце текста. Она подсказывает квантизатору, где ошибка округления опаснее, и он точнее подбирает масштабы блоков. Матр

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

Проблемы с файлами в каталогах уже случались. В 2024 году мейнтейнеры llama.cpp обнаружили, что часть конвертаций использует неверную предобработку текста перед токенизацией, и пользователи жаловались на сбои. Спустя два года у 26 из 305 официальных тегов всё ещё не указан тип токенизатора. Авторы рекомендуют вот что: Перед публикацией прогонять низкобитные сборки через короткий тест на выполнение кода. Для этого они выложили инструмент quantcheck и данные аудита. Если сборка провалила тест, её нужно калибровать или не выпускать. Пользователям не стоит считать тег в каталог

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика · Hamidun Academy

Соберите рабочего ИИ-агента или сервис своими руками без ручного кода

В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.

Открыть 72ч бесплатный доступ →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…