квантование
quantization
Хранение каждого веса в меньшем числе бит ради уменьшения модели. Полная точность — 16 бит на вес; 4-битное квантование использует 4, урезая файл примерно до четверти. Модель на 27B падает с 54 ГБ на 16 битах до примерно 16 ГБ на 4 битах, с небольшой и обычно приемлемой потерей качества.
4 бита означают, что каждый вес защёлкивается на одном из 16 возможных значений. Веса кучкуются между −1 и +1, поэтому эти 16 значений встают с шагом 2 ÷ 15 = 0,133, и каждый вес в файле округляется до ближайшего.
Это проще увидеть, чем обсудить. Утяните битность вниз — и на небе появится бэндинг, потому что плавному градиенту негде спрятаться, когда состоять он может всего из нескольких значений. Веса ведут себя так же, и ошибка проявляется не как сломанная в одном месте модель, а как чуть худшая во всём.
crushing the photo · drag to stop
2-bit · 4 levels
all 4 ticks drawn
Mixed costs 12.3 GB against 9.3 GB for uniform 2-bit, and 29.5 GB for uniform 8-bit.
Same budget, two ways to spend it
For the same file size, mixed precision keeps the sun and the ridge crisp and spends the banding on sky nobody was reading. Which weights count as the sun is the whole question, and a recipe name is somebody else's answer to it.
Uniform 4-bit at 16.0 GB, against mixed precision with a 3-bit background at 15.2 GB. Which photo survives?
Хорошие рецепты держат примерно 15% несущих весов в большей точности, а остальные опускают — это и делает переключатель смешанной точности выше. Ниже примерно 3 бит потери перестают быть незаметными, если только рецепт не делает чего-то умного с выбором того, какие веса сминать.