Часть IV • Резюме и заключительное слово
16битное квантование никакого ощутимого снижения безошибочности не дает,
а 8битное приводит лишь к незначительному снижению безошибочности. В по
добном случае нужно просто решить, перевешивают ли выгоды от дополнительного
25%ного снижения размера модели недостатки снижения степени безошибочности.
Наконец, для некоторых типов моделей (например, как в нашем случае класси
фикации изображений ImageNet с помощью MobileNetV2) 8битное квантование
приводит к резкому падению степени безошибочности, в большинстве сценариев
использования неприемлемому. Для таких задач следует применять исходную мо
дель или 16битное квантование.
Приведенные в примере квантования сценарии — типовые задачи, возможно
несколько примитивные. Задачи, с которыми вы столкнетесь, могут оказаться
более сложными и сильно отличаться от этих сценариев. Так что главный вывод:
производить ли квантование модели перед развертыванием и до какой битовой глу
бины — эмпирические вопросы, универсального ответа на которые не существует.
Необходимо экспериментировать с квантованием и тестировать полученные модели
на настоящих тестовых данных, прежде чем принимать какоелибо решение. При
мер 1 в конце главы позволит вам поэкспериментировать с ACGAN MNIST, обу
ченной нами в главе 10, и решить, что лучше подходит для подобной генеративной
модели — 16 или 8битное квантование.
Квантование весовых коэффициентов и сжатие gzip
Стоит учесть также, что при 8битном квантовании можно добиться дополнительно
го сокращения размера передаваемой через Интернет модели с помощью различных
методик сжатия данных, например, gzip. gzip широко применяется для передачи
больших файлов через Интернет. Всегда включайте сжатие gzip при передаче через
Интернет файлов моделей TensorFlow.js. Неквантованные весовые коэффициен
ты нейронной сети с типом данных float32 обычно плохо подходят для подобного
сжатия изза шумоподобных колебаний значений параметров, содержащих мало
повторяющихся паттернов. По нашим наблюдениям, gzip обычно не дает более
10–20 % сжатия для неквантованных весовых коэффициентов моделей. То же самое
справедливо и для моделей с 16битным квантованием. Однако после 8битного
квантования весов модели, коэффициент сжатия часто резко возрастает (до 30–40 %
для маленьких моделей и 20–30 для больших; табл. 12.2).
Причина в малом числе интервалов значений при таком резком сокращении
точности (только 256), так что многие значения (например, близкие к 0) попадают
в один интервал, в результате чего число повторяющихся паттернов в бинарном
представлении весовых коэффициентов сильно возрастает. Это еще одна причина
для предпочтения 8битного квантования в случаях, когда оно не приводит к непри
емлемому ухудшению степени безошибочности на контрольном наборе.
В общем, благодаря квантованию весовых коэффициентов модели после обу
чения можно существенно сократить размер моделей TensorFlow.js, передаваемых
через Интернет и сохраняемых на диске, особенно с помощью различных методик
сжатия данных, например gzip. Для такого улучшения коэффициента сжатия разра
Do'stlaringiz bilan baham: |