Аннотация: В этой статье представлены основные методы оптимизации моделей в отрасли, а затем основное внимание уделяется количественной оценке моделей, представлены основные принципы количественной оценки, классификация методов, будущее развитие и интерпретируются передовые статьи.
Эта статья опубликована в сообществе Huawei Cloud Community "Обзор и применение модельного квантования, автор Alan_wen.
предисловие
С непрерывным развитием глубокого обучения нейронные сети широко используются в различных областях и достигают гораздо более высокой производительности.Однако параметры моделей глубоких сетей также становятся все больше и больше, что серьезно ограничивает применение глубоких сетей в отрасли.Поэтому В этой статье в настоящее время будут представлены основные методы оптимизации моделей в отрасли, а затем основное внимание будет уделено количественному определению моделей, представлению основных принципов количественного определения, классификации методов, будущему развитию и интерпретации передовых работ.
1. Метод оптимизации модели
1.1 Разработка эффективной сетевой структуры
Проектирование компактной структуры сети может реализовать оптимизацию модели, такой как предлагаемая серия сетей MobileNet, которые представляют собой краткую свертку по глубине и точечную сверток. Однако в настоящее время нейронная сеть, разработанная вручную, постепенно заменяется AutoML и поиском структуры сети.Благодаря поиску структуры сети можно получить высокоточную и компактную сеть.
1.2 Обрезка модели
Использование созданных вручную сетевых структур, как правило, может обеспечить более высокую точность, но трудно напрямую применить огромные сетевые параметры к промышленным продуктам. Модели обычно сокращаются. Сокращение моделей делится на структурированное и неструктурированное сокращение. Как правило, трудно добиться низкой ускорение уровня для неструктурированной обрезки, а обрезка модели постепенно заменяется поиском сетевой структуры.
1.3 Дистилляция знаний
В дополнение к сокращению, которое может уменьшить большую модель до маленькой модели, дистилляция знаний также может выполнять эту функцию. Дистилляция знаний использует исходную большую модель в качестве модели учителя и разрабатывает маленькую модель модели ученика, которая направляет обучение модели ученика через программную цель для реализации передачи знаний модели учителя.
1.4 Разреженный
Разреженность в основном связана с разреженностью весов или функций сети, что может быть достигнуто путем обучения регуляризации.После того, как веса сети разрежены, они обычно сочетаются с обрезкой модели, чтобы сократить неактивные веса для сжатия структуры сети.
1.5 Квантование модели
Квантование модели является одним из наиболее эффективных методов оптимизации модели в отрасли, например, FP32-> INT8 может обеспечить 4-кратное сжатие параметров, в то время как сжатая память может обеспечить более быстрые вычисления, экстремальное квантование с двумя значениями является теоретическим.32-кратное сжатие может быть достигнуто, но чрезмерное сжатие может привести к быстрому снижению точности модели. Квантование модели будет подробно описано ниже.
2. Обзор модельного квантования
2.1 Что такое количественная оценка?
Квантование в информационной системе — это процесс приближения непрерывного значения сигнала к конечному числу дискретных значений (его можно рассматривать как метод сжатия информации).
В компьютерных системах квантование - это установление отношения отображения данных между указанными точками и данными с плавающей запятой, чтобы можно было получить лучшие преимущества с меньшей потерей точности.Это можно просто понять как использование «младших битов» чисел для представления FP32. эквивалентное значение.
Прежде чем мы начнем знакомить с принципами квантования, задайте три вопроса:
Почему количественная оценка полезна?
- Поскольку сверточные нейронные сети нечувствительны к шуму, квантование эквивалентно добавлению большого количества шума к исходному входу.
Зачем использовать количественную оценку?
- Модель слишком велика, например, размер параметра VGG19 превышает 500 МБ, а объем хранилища велик;
- Диапазон весов каждого слоя в основном определен, и колебания невелики, что подходит для количественного сжатия;
- Кроме того, квантование уменьшает как доступ к памяти, так и вычисления.
Почему бы просто не обучить низкоточную модель?
- Поскольку для обучения требуется обратное распространение и градиентный спуск, int8 является дискретным значением.Например, наша скорость обучения обычно составляет несколько десятых от нескольких точек, а int8 не соответствует и не может быть обновлен обратным распространением.
2.2 Принцип квантования
Квантование относится к процессу аппроксимации непрерывного значения сигнала до конечного числа дискретных значений. Его можно понимать как метод сжатия информации. Рассмотрим эту концепцию на компьютерных системах, обычно представленных «младшими битами».
Квантование модели устанавливает отношение отображения данных между данными с фиксированной и плавающей запятой, так что можно получить лучшие преимущества при небольших потерях точности. Подробности следующие:
R представляет собой реальное значение с плавающей запятой, Q представляет собой квантованное значение с фиксированной запятой, Z представляет собой квантованное значение с фиксированной запятой, соответствующее 0 значению с плавающей запятой, а S является наименьшим масштабом, который может быть представлен после квантования с фиксированной запятой. . Формула квантования от плавающей запятой к фиксированной выглядит следующим образом:
Квантование с плавающей запятой в фиксированную точку:
2.3 Количественная оценка базовой вероятности
Равномерное и неравномерное квантование:
Как показано на рисунке выше, квантование можно разделить на равномерное квантование и неравномерное квантование.Равномерное квантование на левом изображении вышеприведенного рисунка представляет собой линейное квантование по формуле (1). Однако веса сети или распределения признаков не обязательно однородны. Простое линейное квантование может привести к очевидной потере информации в исходной сети. Следовательно, также может быть выполнено неравномерное квантование. Например, Kmeans используется для кластеризации весов сети для получения различные центры кластера.Центр кластера затем используется в качестве количественного представления веса одного и того же кластера.
Симметричное и асимметричное квантование:
В идеальной ситуации, как показано на левом изображении вышеприведенного рисунка, распределение признаков относительно равномерное, поэтому модель можно квантовать симметрично, то есть квантовать с равными абсолютными значениями слева и справа от 0 -значение балла. Однако во многих случаях веса или признаки модели распределены неравномерно и не обязательно симметричны по обе стороны от значения, равного 0. Как показано на правом рисунке выше, прямое симметричное квантование сильно сжимает признаки с одной стороны и потерять много сетевой информации.Поэтому, чтобы максимально сохранить информацию, представленную исходной сетью, может быть выполнено асимметричное квантование.
Динамическое и статическое квантование:
Существуют различные методы калибровки для определения диапазона отсечения показанного выше рисунка [α, β]. Еще одним важным отличительным фактором для методов количественного определения является определение диапазона отсечения. Диапазон весов можно вычислить статически, так как в большинстве случаев параметры фиксируются во время логического вывода. Однако карты активации для каждого входного образца различны. Следовательно, существует два способа квантования активаций: динамическое квантование и статическое квантование.
При динамическом квантовании этот диапазон вычисляется динамически для каждой карты активации во время выполнения. Этот подход требует расчета статистики сигнала в реальном времени (минимум, максимум, процентили и т. д.), что может быть очень дорогостоящим. Однако динамическое квантование обычно обеспечивает более высокую точность, поскольку диапазон сигнала рассчитывается точно для каждого входа.
Другим методом квантования является статическое квантование, при котором диапазон отсечения предварительно вычисляется и является статическим во время логического вывода. Этот подход не требует каких-либо вычислительных затрат во время логического вывода, но обычно приводит к более низкой точности по сравнению с динамическим квантованием. Популярным методом предварительного расчета является запуск серии калибровочных входных данных для расчета типичных диапазонов активации.
В общем, динамическое квантование динамически вычисляет диапазон обрезки для каждой активации и обычно обеспечивает высочайшую точность. Однако динамическое вычисление обрезанного диапазона требует больших вычислительных ресурсов, поэтому статическое квантование чаще всего используется в отрасли, где обрезанный диапазон фиксирован для всех входных данных.
Различная степень детализации квантования:
В задачах компьютерного зрения вход активации каждого слоя имеет множество различных сверток фильтра свертки, как показано на рисунке. Каждый из этих сверточных фильтров может иметь различный диапазон значений. Следовательно, одно различие в методах квантования заключается в том, как вычисляется степень детализации диапазона кадрирования [α, β] для весов. Их можно разделить на квантование по слоям, квантование по группам и квантование по каналам:
а) Квантование слоев: в этом методе диапазон обрезки определяется с учетом всех весов в сверточных фильтрах слоя, как показано в третьем столбце на рисунке выше. Пройдитесь по статистике всех параметров в слое (таких как минимум, максимум, процентили и т. д.), а затем используйте один и тот же диапазон обрезки для всего слоя сверточных фильтров. Хотя этот метод очень прост в реализации, он часто приводит к неоптимальным решениям, поскольку диапазон каждого фильтра свертки может сильно различаться, что приводит к тому, что некоторые ядра свертки с относительно узкими диапазонами параметров теряют скорость разрешения квантования.
б) Квантование пакетов: несколько различных каналов внутри слоя могут быть сгруппированы для вычисления диапазона кадрирования (активация или ядро). Это может быть полезно в ситуациях, когда распределения параметров сильно различаются в пределах одной свертки/активации, а групповое квантование может обеспечить хороший компромисс между разрешением квантования и вычислительными затратами.
в) Квантование канала: Обычный выбор для диапазонов обрезки — использовать фиксированные значения для каждого фильтра свертки, независимые от других каналов, как показано в последнем столбце изображения выше. То есть каждому каналу назначается выделенный коэффициент масштабирования. Это обеспечивает лучшее разрешение квантования и, как правило, приводит к более высокой точности. Канальное квантование в настоящее время является стандартным методом квантования ядер свертки.
случайное квантование
При выводе схемы квантования обычно детерминированы. Однако это не единственная возможность, и в некоторых работах стохастическое квантование изучалось для обучения с учетом квантования, а также для обучения с пониженной точностью. Интуиция высокого уровня заключается в том, что стохастическое квантование может позволить НС исследовать больше, чем детерминированное квантование. Часто предполагается, что небольшие обновления веса могут не привести к каким-либо изменениям веса, поскольку операция округления может всегда возвращать один и тот же вес. Однако включение случайного округления может дать NN шанс сдвинуться, тем самым обновив свои параметры. Следующие формулы представляют собой методы случайного округления при квантовании Int и двоичном квантовании.
метод тонкой настройки
После квантования часто необходимо настроить параметры в нейронной сети (NN). Это может быть выполнено путем повторного обучения модели, процесс, называемый обучением с учетом квантования (QAT), или это может быть выполнено без повторного обучения, процесс, часто называемый квантованием после обучения (PTQ). На приведенной выше диаграмме показано схематическое сравнение двух методов (обучение с учетом квантования слева и квантование после обучения справа) и обсуждается ниже.
- Обучение с учетом квантования (псевдоквантование)
Для обученной модели квантование может внести возмущения в параметры обученной модели, что может отдалить модель от точки, к которой она сходилась при обучении с точностью с плавающей запятой. Эту проблему можно решить путем переобучения модели NN с квантованными параметрами, чтобы модель могла сходиться к точке с лучшими потерями. Популярным подходом является использование обучения с учетом квантования (QAT), при котором обычные прямые и обратные проходы выполняются с плавающей запятой для квантованной модели, но параметры модели квантуются после каждого обновления градиента. В частности, важно выполнить эту проекцию после выполнения обновлений веса с точностью с плавающей запятой. Важно выполнять обратный проход с использованием плавающей запятой, потому что накопление градиентов с квантованной точностью может привести к нулевым градиентам или градиентам с высокой ошибкой, особенно с низкой точностью.
Важная тонкость в обратном распространении заключается в том, как обрабатываются недифференцируемые операторы квантования (уравнение 1). Без какого-либо приближения градиент этого оператора почти всюду равен нулю, поскольку операция округления в формуле является кусочно-плоским оператором. Популярным способом решения этой проблемы является аппроксимация градиента этого оператора так называемой прямой оценкой (STE). STE в основном игнорирует операцию округления и аппроксимирует ее с помощью функции тождества, как показано на рисунке ниже.
Хотя STE является грубым приближением, было показано, что QAT работает. Однако основным недостатком QAT являются вычислительные затраты на переобучение модели NN. Такое переобучение может потребовать выполнения нескольких сотен эпох для восстановления точности, особенно для квантования с малоразрядной точностью. Если квантованная модель должна использоваться в течение длительного периода времени, инвестиции в переобучение могут быть оправданы, если особенно важны эффективность и точность. Однако это не всегда так, поскольку некоторые модели имеют относительно короткий срок службы.
- Квантование после тренировки
Альтернативой дорогостоящим методам QAT является квантование после обучения (PTQ), которое выполняет квантование и корректировку веса без какой-либо тонкой настройки. Следовательно, накладные расходы PTQ очень малы и часто незначительны. В отличие от QAT, который требует достаточного количества обучающих данных для переобучения, PTQ имеет дополнительное преимущество, заключающееся в том, что его можно применять в ситуациях с ограниченными или неразмеченными данными. Однако это обычно происходит за счет более низкой точности по сравнению с QAT, особенно для квантования с низкой точностью.
- Zero Shot (т.е. без данных)
Как обсуждалось до сих пор, чтобы добиться минимального падения точности после квантования, нам нужен доступ ко всем или части обучающих данных. Во-первых, нам нужно знать степень активации, чтобы мы могли обрезать значения и определить соответствующий коэффициент масштабирования (часто называемый в литературе калибровкой). Во-вторых, квантованные модели часто требуют тонкой настройки для настройки параметров модели и восстановления после потери точности. Однако во многих случаях невозможно получить доступ к исходным обучающим данным во время квантования. Это связано с тем, что обучающие наборы данных либо слишком велики для распространения, либо являются собственностью (например, JFT-300M от Google), либо конфиденциальны из-за соображений безопасности или конфиденциальности (например, медицинские данные). В настоящее время предлагается несколько различных подходов для решения этой проблемы, которую мы называем нулевым квантованием (ZSQ). Следуя работе Qualcomm [2], можно описать два разных уровня квантования Zero Shot:
Уровень 1: Нет данных, нет тонкой настройки (ZSQ+PTQ).
Уровень 2: Нет данных, но требуется точная настройка (ZSQ +QAT).
Уровень 1 обеспечивает более быстрое и простое квантование без какой-либо тонкой настройки. Тонкая настройка часто занимает много времени и часто требует дополнительных поисков гиперпараметров. Уровень 1 можно скорректировать путем выравнивания веса или статистических параметров BatchNorm без тонкой настройки.
Однако уровень 2 обычно приводит к более высокой точности, поскольку точная настройка помогает квантованной модели восстанавливаться после снижения точности, особенно при сверхнизких настройках битовой точности. Входные данные для точной настройки уровня 2 в основном генерируются GAN, и GAN можно использовать для генерирования приблизительных данных распределения в соответствии с моделью перед квантованием без доступа к внешним данным.
Квантование Zero Shot (также известное как без даты) выполняет полное квантование без доступа к данным обучения/проверки. Это особенно важно для поставщиков, стремящихся ускорить развертывание рабочих нагрузок клиентов без доступа к своим наборам данных. Кроме того, это важно в ситуациях, когда проблемы безопасности или конфиденциальности могут ограничивать доступ к обучающим данным.
2.4 Расширенные количественные концепции
- FP32, псевдоквантование и квантование с фиксированной точкой
Существует два распространенных способа развертывания квантованных моделей NN: аналоговое квантование (также известное как псевдоквантование) и квантование только целых чисел (также известное как квантование с фиксированной точкой). При аналоговом квантовании параметры квантованной модели сохраняются с низкой точностью, но такие операции, как матричное умножение и свертка, выполняются с помощью арифметики с плавающей запятой. Следовательно, параметры квантования должны быть подвергнуты обратному квантованию перед операциями с плавающей запятой, как показано на изображении выше (посередине). Следовательно, нельзя в полной мере воспользоваться быстрой и эффективной низкоточной логикой и аналоговым квантованием. Однако при чисто целочисленном квантовании все операции выполняются с использованием целочисленной арифметики низкой точности, как показано на рисунке выше (справа). Это позволяет выполнять весь вывод с помощью эффективной целочисленной арифметики без какого-либо деквантования с плавающей запятой каких-либо параметров или активаций.
В общем, использование арифметики с плавающей запятой для выполнения логического вывода с полной точностью может помочь с конечной квантованной точностью, но за счет невозможности извлечь выгоду из логики с более низкой точностью. Логика низкой точности предлагает множество преимуществ по сравнению с логикой полной точности с точки зрения задержки, мощности и эффективности площади. Только целочисленное квантование и двоичное квантование предпочтительнее аналогового/ложного квантования. Это связано с тем, что только целые числа используют логику более низкой точности для арифметики, в то время как аналоговое квантование использует логику с плавающей запятой для выполнения операций. Однако это не означает, что псевдоквантование никогда не бывает полезным. На самом деле методы псевдоквантования выгодны для задач с ограниченной полосой пропускания, а не с вычислительными ограничениями, например, в рекомендательных системах, для которых узким местом является занимаемая память и стоимость загрузки параметров из памяти. Следовательно, в этих случаях допустимо выполнять псевдоквантование.
- квантование со смешанной точностью
Легко видеть, что производительность оборудования улучшается, когда мы используем квантование с меньшей точностью. Однако равномерное квантование модели до сверхнизкой точности может привести к значительному падению точности. Эта проблема может быть решена с помощью квантования со смешанной точностью. В этом подходе каждый слой квантуется с разной битовой точностью, как показано выше. Проблема с этим подходом заключается в том, что пространство поиска для выбора этой битовой настройки экспоненциально зависит от количества слоев.
В настоящее время предлагаются различные подходы для решения этой огромной области поиска.
а) Выбор этой смешанной точности для каждого слоя по своей сути является проблемой поиска, и было предложено множество различных методов поиска.
б) Другой класс методов смешанной точности использует периодическую регуляризацию функций для обучения моделей смешанной точности, автоматически различая разные уровни и их различную важность с точки зрения точности, при изучении их соответствующей разрядности.
c) HAWQ представляет автоматический метод, основанный на чувствительности модели второго порядка, для поиска настроек смешанной точности.
Было показано, что квантование со смешанной точностью является эффективным аппаратно-эффективным методом для низкоточного квантования различных моделей нейронных сетей. В этом подходе слои NN сгруппированы как чувствительные/нечувствительные к квантованию, и каждый уровень использует старшие/младшие биты. Таким образом, можно свести к минимуму падение точности и при этом получить выгоду от уменьшения занимаемой памяти и более быстрого ускорения низкоточного квантования.
- Аппаратное квантование
Одной из целей квантования является уменьшение задержки логического вывода. Однако не все оборудование обеспечивает одинаковую скорость после квантования определенного слоя/операции. На самом деле, преимущества квантования зависят от аппаратного обеспечения, и многие факторы, такие как встроенная память, пропускная способность и иерархия кэш-памяти, могут влиять на скорость квантования.
Учет этого факта важен для достижения наилучших результатов при аппаратном квантовании. Следовательно, необходимо моделировать аппаратную задержку, а при аппаратном развертывании операции квантования необходимо измерять фактическую задержку развертывания каждого уровня с разной битовой точностью квантования.
- Количественное определение с помощью дистилляции
Интересным направлением работы в квантовании является включение дистилляции модели для повышения точности квантования. Дистилляция модели — это метод, помогающий обучить компактную модель ученика, используя большую высокоточную модель в качестве учителя. Во время обучения модели ученика дистилляция модели предлагает использовать мягкие вероятности, сгенерированные учителем, которые могут содержать больше входной информации, вместо того, чтобы просто использовать метки истинного класса. То есть общая функция потерь включает потери студентов и потери перегонки.
- Экстремальная количественная оценка
Бинаризация — это самый экстремальный метод квантования, при котором квантованное значение ограничено 1-битным представлением, что снижает требования к памяти в 32 раза. В дополнение к преимуществам памяти, двоичные (1-битные) и троичные (2-битные) операции часто могут быть эффективно вычислены с использованием битовой арифметики и могут обеспечить значительное ускорение при более высокой точности, такой как FP32 и INT8. Однако простой метод бинаризации приведет к значительному падению точности. Поэтому существует большой объем работ, в которых предлагаются различные решения этой проблемы, в основном разделенные на следующие три категории:
- Минимизация ошибок квантования (имитация аппроксимации с использованием нескольких комбинаций двоичных матриц или использование более широких сетей)
- Улучшить функцию потерь (например, добавить потери при дистилляции)
- Улучшить методы обучения (например, заменить знак более плавной функцией при обратном распространении)
Квантование с очень низкой битовой точностью является очень многообещающим направлением исследований. Однако по сравнению с базовыми уровнями существующие методы обычно приводят к снижению высокой точности, если только не выполняется очень обширная настройка и поиск гиперпараметров. Но это падение точности может быть приемлемым для менее критичных приложений.
2.5 Будущее направление квантования
Здесь мы кратко обсудим несколько проблем и возможностей для будущих количественных исследований. Это разделено на совместную разработку инструментов квантования, аппаратного обеспечения и архитектуры NN, совместных методов множественного сжатия и обучения квантованию.
-
Количественные инструменты:
Используя современные методы, можно легко определить количество и внедрить различные модели NN в INT8 без существенной потери точности. Существует несколько пакетов для развертывания квантованных моделей INT8 (например, TensorRT от Nvidia, TVM и т. д.), каждый из которых имеет хорошую документацию. Однако программное обеспечение для квантования с низкой битовой точностью не является широко доступным, а иногда и не существует. Например, TensorRT от Nvidia в настоящее время не поддерживает квантование, отличное от INT8. Кроме того, в TVM совсем недавно была добавлена поддержка квантования INT4. Использование INT4/INT8 для квантования с низкой и смешанной точностью допустимо и необходимо на практике, поэтому разработка эффективных программных API для квантования с низкой точностью будет иметь важные последствия. -
Совместная разработка аппаратного обеспечения и архитектуры NN:
Как упоминалось выше, важным отличием классической работы по низкоточному квантованию от недавней работы по машинному обучению является то, что параметры нейронной сети могут иметь очень разные квантованные значения и при этом хорошо обобщаться до аппроксимаций. Например, при обучении с учетом квантования мы можем сходиться к другому решению, отличному от исходного решения, с одним параметром точности, но при этом достигать хорошей точности. Можно воспользоваться этой степенью свободы, а также настроить ее по мере квантования архитектуры НС. Например, изменение ширины архитектуры NN может уменьшить/устранить разрыв генерализации после квантования. Одной из будущих работ является совместная настройка других архитектурных параметров, таких как глубина или отдельные ядра, при квантовании модели. Еще одна будущая работа — распространить эту совместную разработку на аппаратные архитектуры. -
Комбинируйте несколько методов сжатия:
Как упоминалось выше, квантование — это только один из способов эффективного развертывания NN. Другие методы включают эффективный дизайн архитектуры NN, совместную разработку аппаратного обеспечения и архитектуры NN, сокращение и дистилляцию знаний, поиск сетевой структуры и т. д. Количественная оценка может использоваться в сочетании с этими другими методами. Однако в настоящее время мало работ по изучению оптимального сочетания этих подходов. Например, совместное квантование NAS, сокращение и квантование могут применяться к модели вместе, чтобы уменьшить ее накладные расходы, важно понимать оптимальное сочетание структурированного/неструктурированного сокращения и квантования. Также еще одним направлением в будущем является изучение стыка этих методов с другими упомянутыми выше методами. -
Квантовое обучение:
Возможно, наиболее важным применением квантования является ускорение обучения НС с половинной точностью. Это позволяет проводить обучение с использованием более быстрой и энергоэффективной низкоточной логики. Тем не менее, очень сложно продвинуть это дальше к точной тренировке INT8. Хотя в этой области есть интересные работы, предлагаемые методы обычно требуют обширной настройки гиперпараметров или подходят только для некоторых моделей нейронных сетей для относительно простых задач обучения. Основная проблема заключается в том, что при точности INT8 обучение может стать нестабильным и расходящимся. Решение этой проблемы может иметь серьезные последствия для многих приложений, особенно для передового обучения.
3. Интерпретация количественных статей
3.1 Квантование без данных
Data-Free Quantization Through Weight Equalization and Bias Correction[2]. (ICCV2019)
Это статья, предложенная Qualcomm, которая предлагает Data-Free для достижения квантования после обучения, Основное нововведение в статье состоит в том, чтобы предложить методы выравнивания веса и коррекции смещения.
Как показано на рисунке ниже (слева), распределение диапазона значений ядра свертки одного и того же слоя крайне неравномерно, а квантование каждого канала относительно сложно и требует дополнительного времени, поэтому предлагается уравнять веса, т.к. показано на рисунке ниже (справа), после выравнивания общее распределение диапазона значений относительно сбалансировано.
Баланс веса в основном использует принцип эквивалентного масштабирования, такой как формула
Эквивалентно, в полносвязном слое ядер свертки масштабирование весов предыдущего слоя может быть передано следующему слою через коэффициент масштабирования.
Коррекция смещения связана с тем, что данные будут подвергаться общему смещению в процессе квантования модели, поэтому путем вычисления ошибки смещения и последующего устранения ошибки можно добиться более точного эффекта квантования. Как показано в таблице ниже, два метода, предложенные в статье, могут достигать результатов, близких к поканальному квантованию в способе послойного квантования.
Post training 4-bit quantization of convolutional networks for rapid-deployment[3]. (NIPS2019)
В этой статье реализовано квантование после обучения с 4-битной точностью и предлагается аналитический расчет оптимального диапазона отсечения (ACIQ) и настроек битовой ширины канала. ACIQ предлагает взять минимальную ошибку квантования в качестве цели оптимизации и получить оптимальное значение обрезки квантования с различной точностью посредством оптимизации.В то же время он также предлагает, чтобы при фиксированной общей битовой точности разные каналы устанавливались с разной точностью. для квантования, что может обеспечить более подходящее и точное квантование, но трудно добиться промышленного ускорения, устанавливая разные биты в разных каналах для квантования. В следующей таблице показаны полученные экспериментальные результаты.При 4-битном квантовании точность модели падает примерно на 2%.
Differentiable Soft Quantization: Bridging Full-Precision and Low-Bit Neural Networks[4].(ICCV2019)
Для низкобитового квантования, такого как двоичное квантование, можно эффективно ускорить логический вывод при одновременном снижении потребления памяти глубокими нейронными сетями, что имеет решающее значение для развертывания моделей на устройствах с ограниченными ресурсами, таких как встроенные устройства. Однако из-за дискретного характера низкобитового квантования существующие методы квантования часто сталкиваются с проблемой нестабильности процесса обучения и серьезного снижения производительности. Чтобы решить эту проблему, в этой статье предлагается метод Microsoft Quantization (DSQ), позволяющий преодолеть разрыв между сетями с полной точностью и сетями с низким битрейтом. DSQ может автоматически развиваться во время обучения, постепенно приближаясь к стандартному квантованию, как показано на рисунке ниже. Благодаря дифференцируемости DSQ в пределах соответствующего диапазона отсечения DSQ может отслеживать точные градиенты при обратном распространении, уменьшая потери при квантовании в прямом процессе.
DSQ использует ряд функций гиперболического тангенса для постепенной аппроксимации ступенчатой функции для низкобитового квантования (такой как знаковая функция в 1-битном случае), сохраняя при этом гладкость для вычисления градиента. В этой статье реконструируется функция DSQ для приближенной переменной признака и, соответственно, разрабатывается эволюционная стратегия обучения для постепенного изучения функции дифференциального квантования. Во время обучения приближением между DSQ и стандартным квантованием можно управлять с помощью переменных признаков, а переменные признаков и значения отсечения могут автоматически определяться в сети. DSQ уменьшает смещение, вызванное квантованием с чрезвычайно низким битом, делая прямой и обратный процессы обучения более последовательными и стабильными.
В приведенной ниже таблице показано, что этот метод почти не имеет снижения точности по сравнению с FP32 в случае квантования с более низкими битами.
Mixed Precision Quantization of ConvNets via Differentiable Neural Architecture Search[5].(ICLR2019)
Как показано на рисунке выше, в документе предлагается дифференцируемый NAS (DNAS), который случайным образом активирует операции-кандидаты с вероятностью θ вместо прямого взвешивания softmax, а вероятность θ используется в качестве параметра, который можно оптимизировать в процессе поиска. Поскольку начальная инициализация DNAS выполняет случайные операции активации с равной вероятностью, а вероятность θ будет существенно отличаться на позднем этапе обучения, DNAS подобен DARTS на раннем этапе обучения и ENAS на более позднем этапе.
Чтобы реализовать количественную оценку смешанной точности на основе DNAS, в этой статье используется различное квантование битов как разные структуры (как показано на рисунке ниже), а оптимизация поиска позволяет получить разные точности квантования разных слоев.
Квантование смешанной точности получается с помощью дифференцируемого поиска.Как показано в следующей таблице, на наборе данных Cifar10 его можно ускорить более чем в 10 раз, а уровень точности после квантования немного выше, чем у FP32.
APQ: Joint Search for Network Architecture, Pruning and Quantization Policy[6]. (CVPR2020)
В этом документе предлагается APQ для эффективного вывода на основе глубокого обучения на оборудовании с ограниченными ресурсами. В отличие от предыдущих подходов, которые ищут нейронные архитектуры, стратегии обрезки и стратегии квантования по отдельности, в этой статье они оптимизируются совместно. Чтобы справиться с большим пространством для проектирования, которое он приносит, предлагается обучить предсказатель точности с учетом квантования, чтобы быстро получить точность квантованной модели и передать ее обратно в поисковую систему для выбора наилучшего соответствия.
Однако обучение такого предсказателя точности с учетом квантования требует сбора большого количества квантованных пар модель-точность, что включает в себя тонкую настройку с учетом квантования и, таким образом, требует много времени. Для решения этой задачи в статье предлагаетсяПеренос знаний из предикторов точности с полной точностью (например, fp32) в предикторы точности с учетом квантования (например, int8)., что значительно повышает эффективность выборки. Кроме того, для сбора наборов данных предикторов точности fp32 требуется только оценка нейронных сетей путем выборки из предварительно обученных однократных [7] сетей без каких-либо затрат на обучение, что является эффективным. На рисунке ниже показан процесс перехода от предиктора полной точности к обучению предсказателя точности, поддерживающего квантование.
В следующей таблице показаны результаты для набора данных ImageNet:
использованная литература:
-
A Survey of Quantization Methods for Efficient Neural Network Inference.
-
Data-Free Quantization Through Weight Equalization and Bias Correction, ICCV2019.
-
Post training 4-bit quantization of convolutional networks for rapid-deployment, NIPS2019.
-
Differentiable Soft Quantization: Bridging Full-Precision and Low-Bit Neural Networks, ICCV2019.
-
Mixed Precision Quantization of ConvNets via Differentiable Neural Architecture Search, ICLR2019.
-
APQ: Joint Search for Network Architecture, Pruning and Quantization Policy, CVPR2020.
-
Раз и навсегда: обучите одну сеть и настройте ее для эффективного развертывания, ICLR2020.
-
Binary Neural Networks: A Survey, Pattern Recognition, 2020.
-
Forward and Backward Information Retention for Accurate Binary Neural Networks, CVPR2020.
Нажмите «Подписаться», чтобы впервые узнать о новых технологиях HUAWEI CLOUD~