2024-05-11
Полезная статья: unify.ai/blog/model-quantization
Перепощу в качестве ликбеза, для тех, кто желает врубиться в тему.
Перепощу в качестве ликбеза, для тех, кто желает врубиться в тему.
Квантование — это метод сжатия модели, который снижает точность весовых коэффициентов и активаций нейронной сети. Другими словами, он включает в себя представление весов и активаций нейронной сети с использованием меньшего количества битов, чем их исходная точность. Например, вместо использования 32-разрядных чисел с плавающей запятой квантование может использовать 8-разрядные целые числа. Такое преобразование значительно снижает требования к памяти и сложность вычислений. Несмотря на то, что некоторая потеря точности неизбежна, тщательные методы квантования могут обеспечить существенное сжатие модели с минимальным снижением точности.
По сути, квантование включает в себя отображение из непрерывного пространства в дискретное пространство таким образом, что значения полной точности преобразуются в новые значения с меньшей разрядностью, называемые уровнями квантования, с помощью функции отображения квантования.
В идеале квантование следует использовать, когда размер модели и требования к вычислительным ресурсам являются проблемой, а также когда снижение точности может быть допустимым без существенной потери производительности. Это часто случается с LLM в таких задачах, как классификация текста, анализ тональности и других задачах NLP, где модели являются массивными и ресурсоемкими. Квантование также лучше всего использовать при развертывании на устройствах с ограниченными ресурсами, таких как мобильные телефоны, Интернет вещей и периферийные устройства. За счет снижения точности весовых коэффициентов и активаций квантование может значительно уменьшить объем памяти и вычислительные требования нейронной сети, что делает ее работу на этих устройствах более эффективной.