В какой‑то момент я посмотрел на 13 ГБ весов LLaMA-7B и подумал: а почему, собственно, они должны занимать именно столько? Что, если не делать маленькую модель, не учить её заново и не заставлять копировать большую, а просто найти более короткую запись тех же «мозгов»?Здравый человек, вероятно, скачал бы готовую квантизацию и пошёл заниматься своими делами. Я вместо этого поставил цель ужать модель сначала до 2 ГБ, а в идеале — до одного. Без дообучения, дистилляции, pruning и изменения архитектуры. Только математика над уже готовыми весами и небольшая выборка текстов для калибровки.Так появился PCST — домашний исследовательский проект, который довольно быстро превратился в длинный сериал. В нём уже больше 60 проверенных методов, сотни конфигураций, несколько версий модели, один очень неприятный системный баг и приличная коллекция идей, которые выглядели прекрасно ровно до тех пор, пока я не запускал модель целиком.Спойлер: одного гигабайта и качества Q8 я не получил. Текущий артефакт занимает 2.05 GiB и пока проигрывает обычной Q3_K_M и по качеству, и по скорости. Зато я наткнулся на вещь, которая оказалась интереснее очередной красивой цифры: можно заметно улучшить восстановление отдельных весов и одновременно сделать всю модель глупее.Ниже — история о том, куда исчезают локальные улучшения, почему методы из картинок почти бесполезны для сырых весов и как одна ошибка с transpose заставила пересмотреть большую часть уже полученных результатов. Читать далее