Квантование НЛП-модели DistilBERT Humor

Dec 13 2022
Переход от FP32 к INT8 для более быстрого вывода с помощью Optimum Intel и Intel Neural Compressor
Квантование — это метод сжатия модели, который помогает сократить время логического вывода. Квантование из 32-битного типа с плавающей запятой (FP32) в 8-битный целочисленный тип (INT8) повышает производительность при незначительном снижении точности.
Фото Тенгярта на Unsplash

Квантование — это метод сжатия модели, который помогает сократить время логического вывода. Квантование из 32-битного типа с плавающей запятой (FP32) в 8-битный целочисленный тип (INT8) повышает производительность при незначительном снижении точности. Как правило, размер модели может уменьшиться в 4–5 раз, а время вывода может быть сокращено более чем в 3 раза ( источник ).

Мы должны сначала импортировать еще несколько библиотек для квантования, в том числе neural_compressorи optimum.intel:

Я настраиваю torchустройство на cpu:

Теперь мы можем применить квантование. Взгляните на примеры классификации текста в optimum.intel репозитории GitHub , чтобы узнать больше. Давайте загрузим ранее обученную модель:

Я настроил тренажер для использования IncTrainerкласса Intel® Neural Compressor Trainer или класса:

Теперь все готово для запуска квантования. Обратите внимание, что я использую файл конфигурации, quantization.yml загруженный из репозитория optimum.intel GitHub . Вы можете изменить параметры конфигурации в этом файле, чтобы настроить квантование модели. Здесь я применяю динамическое квантование после обучения, метод, который не требует повторного обучения, но обычно немного жертвует точностью:

Затем мы можем продолжить квантование с помощью optimizer.fit():

Теперь, когда у нас есть оптимизированная модель, мы можем сравнить ее с базовой моделью:

Мы можем сохранить квантованную модель на диск и иметь доступ как к модели FP32, так и к новой квантованной модели INT8:

Модель INT8 сохранена на диск

Запустив оценку с моделью FP32, мы получим:

И для INT8:

Точность примерно такая же, но модель INT8 в 1,5 раза быстрее, чем модель FP32. Полный код можно найти на GitHub здесь .

Вы можете установить Intel Neural Compressor отдельно или в составе набора инструментов Intel AI Analytics . Чтобы узнать больше об аппаратных и программных решениях Intel для искусственного интеллекта, посетите здесь .