Я попробовал ужать LLaMA-7B до 1 ГБ без дообучения. Вот что произошло после 60+ экспериментов
<img src="https://habrastorage.org/getpro/habr/upload_files/754/5d8/b37/7545d8b37a595a62ca0ddedf34f17893.png" /><p>В какой‑то момент я посмотрел на 13 ГБ весов LLaMA-7B и подумал: а почему, собственно, они должны занимать именно столько? Что, если не делать маленькую модель, не учить её заново и не заставлять копировать большую, а просто найти более короткую запись тех же «мозгов»?</p><p>Здравый человек, вероятно, скачал бы готовую квантизацию и пошёл заниматься своими делами. Я вместо этого поставил цель ужать модель сначала до 2 ГБ, а в идеале — до одного. Без дообучения, дистилляции, pruning и изменения архитектуры. Только математика над уже готовыми весами и небольшая выборка текстов для калибровки.</p><p>Так появился PCST — домашний исследовательский проект, который довольно быстро превратился в длинный сериал. В нём уже больше 60 проверенных методов, сотни конфигураций, несколько версий модели, один очень неприятный системный баг и приличная коллекция идей, которые выглядели прекрасно ровно до тех пор, пока я не запускал модель целиком.</p><p>Спойлер: <strong>одного гигабайта и качества Q8 я не получил</strong>. Текущий артефакт занимает <strong>2.05 GiB</strong> и пока проигрывает обычной Q3_K_M и по качеству, и по скорости. Зато я наткнулся на вещь, которая оказалась интереснее очередной красивой цифры: можно заметно улучшить восстановление отдельных весов и одновременно сделать всю модель глупее.</p><p>Ниже — история о том, куда исчезают локальные улучшения, почему методы из картинок почти бесполезны для сырых весов и как одна ошибка с <code>transpose</code> заставила пересмотреть большую часть уже полученных результатов.</p> <a href="https://habr.com/ru/articles/1080480/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1080480#habracut">Читать далее</a>
