Квантование НЛП-модели DistilBERT Humor
Квантование — это метод сжатия модели, который помогает сократить время логического вывода. Квантование из 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:
Запустив оценку с моделью FP32, мы получим:
И для INT8:
Точность примерно такая же, но модель INT8 в 1,5 раза быстрее, чем модель FP32. Полный код можно найти на GitHub здесь .
Вы можете установить Intel Neural Compressor отдельно или в составе набора инструментов Intel AI Analytics . Чтобы узнать больше об аппаратных и программных решениях Intel для искусственного интеллекта, посетите здесь .

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































