Руководство сестры Али: В этой статье рассказывается о механизме глубокого обучения в приложении Alipay — xNN. Путем оптимизации как модели, так и вычислительной среды xNN решает ряд проблем, связанных с внедрением глубокого обучения на стороне мобильных устройств. Инструмент сжатия моделей xNN (xqueeze) достигает коэффициента сжатия почти в 50 раз для бизнес-моделей, что позволяет развертывать алгоритмы глубокого обучения в больших масштабах в мобильных приложениях с чрезвычайно ограниченным бюджетом пакета. Вычислительная производительность xNN была глубоко оптимизирована на уровне алгоритмов и инструкций, что значительно снижает порог модели для мобильного DL.
Глубокое обучение — облачное или мобильное?
В последнее время глубокое обучение (ГО) совершило прорыв во многих областях, таких как распознавание изображений, распознавание речи и обработка естественного языка. DL обычно производит на людей впечатление сложных вычислений и огромных моделей — от голосового помощника Siri до различных чат-роботов, до «пятерки благ» Alipay, сбор данных мобильного терминала + облачная обработка — это кажется здравым смыслом. Однако для многих приложений этот режим на самом деле является беспомощным выбором.
Во время мероприятия «Sweeping Five Fortunes» во время Весеннего фестиваля в прошлом году, чтобы распознать написанный от руки символ «Fu», команда Alipay Multimedia мобилизовала почти тысячу серверов для развертывания модели распознавания изображений. Однако такой масштабный кластер не смог устоять перед энтузиазмом жителей всей страны собрать пять благ. Чтобы не допустить перегрузки мощностей облачных вычислений, на средней и поздней стадиях события пришлось запустить план понижения — модель глубокого обучения была заменена традиционными алгоритмами машинного зрения с низкой вычислительной сложностью и низкой точностью. Хотя понижение рейтинга не мешает всем продолжать собирать Fuka в полном разгаре, оно, несомненно, окажет определенное влияние на пользовательский опыт.Например, некоторые непроизносимые китайские иероглифы также были ошибочно восприняты как слово «Фу».
С другой стороны, DL в облаке означает, что данные необходимо загружать. Даже без учета вычислительной нагрузки это также накладывает различные ограничения на взаимодействие с пользователем с точки зрения сетевой задержки, трафика и защиты конфиденциальности. Таким образом, для значительного числа приложений продвижение модели DL к мобильному развертыванию можно рассматривать как жесткое требование.
Две основные проблемы
В последнее время, с повышением производительности процессора мобильного телефона и развитием технологии облегченных моделей, мобильное DL становится все более и более осуществимым и привлекает все большее внимание. Apple и Google соответственно анонсировали фреймворки DL Core ML и Tensorflow Lite для своих операционных систем, что, несомненно, будет способствовать развитию мобильного DL. Тем не менее, особенно для национальных приложений, таких как Alipay, все еще существуют серьезные проблемы, которые нельзя решить путем непосредственного применения решения производителя.
1.Широкий спектр моделей: Приложение Alipay имеет сотни миллионов аудиторий, и бизнес, в котором оно реализовано, должен предоставлять качественный опыт как можно большему количеству пользователей и как можно большему количеству моделей. Для Alipay неуместно ссылаться на практику Core ML по открытию функций только для нескольких моделей высокого класса. Таким образом, с точки зрения показателей производительности, таких как скорость работы и использование памяти, или с точки зрения совместимости, мобильный DL Alipay должен быть максимальным, чтобы значительно снизить порог использования.
2.Строгие требования к размеру пакета: приложение Alipay объединяет множество бизнес-функций, а ресурсы установочного пакета очень ограничены.Интеграция новой модели в установочный пакет часто означает, что другие функции должны быть отключены. Даже если она развернута в форме динамического распространения, размер модели DL сильно повлияет на взаимодействие с пользователем. С постоянным улучшением интеллекта мобильного терминала неизбежно будет все больше и больше приложений DL, работающих непосредственно на терминале, что почти невообразимо с точки зрения текущего размера одной модели, который составляет десятки или сотни мегабайт. При этом SDK самого мобильного DL-движка нужно максимально урезать.
Пять голов
Alipay xNN — это мобильное решение DL, адаптированное для национальной среды приложений.Проект сформулировал следующие технические цели.
1.Облегченная модель: благодаря эффективному алгоритму сжатия модели размер модели может быть значительно уменьшен при условии обеспечения точности алгоритма.
2.Малый движок: подробное сокращение мобильного SDK.
3.Быстро: в сочетании с оптимизацией уровня инструкций и уровня алгоритмов эффективность расчета DL значительно повышается.
4.Общее: чтобы обеспечить максимальное покрытие модели, в качестве ключевой платформы оптимизации используется наиболее универсальный ЦП вместо более мощного графического процессора. Поддерживает не только классическую сеть CNN, DNN, но также поддерживает RNN, LSTM и другие формы сети.
5.Простота использования: цепочка инструментов очень удобна для бизнеса, позволяя инженерам-алгоритмам лучше сосредоточиться на самом алгоритме и может быстро преобразовать облачную модель в мобильную модель, не будучи экспертом в сжатии моделей, преобразовании и развертывании мобильных приложений.
Краткий обзор основных характеристик
xNN Он предоставляет решение для всего жизненного цикла моделей DL от сжатия до развертывания и статистического мониторинга во время выполнения. Среда xNN состоит из двух частей: серверной части разработки и интерфейса развертывания.
Фон разработки основан на цепочке инструментов xqueeze и поддерживает множество обучающих сред. Предприятия могут использовать xqueeze для сжатия и оптимизации собственных моделей DL, чтобы получить версии моделей со значительно меньшим размером и значительно более высокой скоростью работы. Сжатую модель можно развернуть на мобильном терминале в виде встроенного установочного пакета приложения или распространять по запросу в соответствии со сценарием использования.
На переднем плане развертывания вычислительная структура xNN обеспечивает эффективные возможности прямого прогнозирования. Прикладной уровень xNN также предоставляет универсальные возможности, такие как распределение моделей, статистика данных и отчеты об ошибках на основе вычислений. xNN также предоставляет возможность напрямую подключаться к приложениям H5 через jsapi — благодаря динамическому распределению модели DL и H5 можно добиться полного динамизма, так что алгоритм + логика могут обновляться одновременно без выдачи клиентом версия.
На приведенном выше рисунке показаны основные функции xNN. Помимо сжатия модели xqueeze, xNN также поддерживает повышенную производительность за счет быстрой обработки разреженных сетей. xNN поддерживает разнообразные типы сетевых структур, включая классические CNN/DNN, обнаружение объектов SSD и LSTM. Структура развертывания xNN изначально совместима с Caffe, и бизнес может напрямую запускать существующую модель Caffe на мобильном терминале без преобразования, чтобы быстро оценить эффект. Модель сжатого частного формата меньше и быстрее. Модели, обученные на платформах Tensorflow и Keras, также можно сжать в исходной среде, а затем преобразовать в формат, поддерживаемый xNN, для развертывания на мобильном терминале. В отличие от базового ML, xNN теоретически поддерживает все модели на Android и iOS.
сжатие модели xqueeze
xNN-xqueeze Процесс сжатия модели показан в (а) на следующем рисунке, включая сокращение нейронов, сокращение синапсов, квантование и преобразование структуры сети. (сетевое преобразование), адаптивное кодирование Хаффмана (adaptive Huffman), всего 5 шагов. Первые три шага теоретически сопряжены с потерями, и использование xqueeze для точной настройки весов сети и гиперпараметров сжатия может удерживать падение точности на управляемом или даже незначительном уровне. Последние два шага никак не влияют на точность вывода сети. Весь процесс не только уменьшает размер модели, но и значительно повышает скорость прямого прогнозирования за счет разреживания сети и структурной оптимизации.
На основе классического решения DeepCompression в полевых условиях xqueeze еще больше расширяет возможности сокращения нейронов и преобразования сети. Среди них обрезка нейронов может последовательно вырезать «неважные» нейроны и соответствующие им весовые параметры. Благодаря сочетанию сокращения нейронов и сокращения синапсов достигается лучший баланс между точностью модели и коэффициентом сжатия. В xqueeze также есть network transform — возможность оптимизации на макроуровне сети, скрипт networktransform сканирует всю сеть, диагностируя точки, которые можно оптимизировать, включая автоматическое совмещение слоев и эквивалентную замену при условном . Кроме того, xqueeze эффективно улучшает степень сжатия моделей с различными уровнями разреженности за счет адаптивного использования кодирования Хаффмана.
Как показано на рисунке ниже, для модели бизнес-классификации использование цепочки инструментов xqueeze может обеспечить сжатие в 45,5 раз, а степень сжатия превышает классическое решение на 60% при той же степени потери точности.
Оптимизация вычислительной производительности xNN
xNN Оптимизация производительности Xqueeze не ограничивается нижним уровнем, но благодаря сотрудничеству с цепочкой инструментов xqueeze одновременно прилагает усилия на уровне алгоритмов и инструкций, чтобы создать пространство для более глубокой оптимизации.
Как показано на рисунке ниже, на уровне алгоритма сокращение xqueeze не только сжимает размер модели, но и способствует разреженности сети, то есть генерируется большое количество нулевых весов. Соответственно, xNN реализует разреженный операционный модуль на уровне инструкций.В вычислениях свертки и полного соединения эти веса с нулевым значением автоматически игнорируются, что снижает вычислительные затраты и повышает скорость. Как упоминалось ранее, на этапе сетевого преобразования xqueeze сеть будет оптимизирована на макроуровне, включая эквивалентную комбинацию и замену соседних слоев для уменьшения вычислительной избыточности и повышения эффективности доступа к памяти. Чтобы в полной мере использовать производительность сетевого преобразования, оно также неотделимо от поддержки реализации уровня инструкций.
На уровне инструкций xNN повышает производительность в многопоточной среде, интеллектуально регулируя загрузку каждого ядра. При разработке xNN не только уделяется внимание вычислительным ресурсам, но также полностью учитываются накладные расходы на доступ к памяти и повышается частота попаданий в кэш за счет точного планирования чтения и записи данных. Что наиболее важно, все основные вычислительные модули написаны вручную один за другим ассемблерным кодом экспертом по архитектуре набора команд из индустрии микросхем.
В модели бизнес-классификации, основанной на SqueezeNet, xNN может выводить частоту кадров прямого предсказания 29,4 кадра в секунду на ЦП Qualcomm 820, а частота кадров на ЦП Apple A10 (iPhone 7) достигает 52,6 кадра в секунду, что выше, чем у ЦП и ГП. , Core ML еще быстрее.
бизнес-лендинг
Приложение Alipay интегрировало xNN. На входе Alipay «Сканирование дополненной реальности» более 90% моделей Android и iOS используют xNN для завершения классификации предустановленных элементов и рекомендуют пользователям удобные функции, такие как «Сканирование цветов дополненной реальности, чтобы узнать цветы». Надежность самой xNN также выдержала испытание высокоинтенсивными и крупномасштабными операциями, такими как «Отправить вам цветок в китайский День святого Валентина». Последняя версия модели была сжата до размера менее 100 КБ, что обеспечивает точность. На платформе Android приращение полнофункционального пакета xNN SDK составляет всего 200 КБ, но если его настроить в соответствии с конкретными приложениями, его можно легко уменьшить до более чем 100 КБ.
xNN После своего запуска он вызвал сильный резонанс в Ant и Ali, и большое количество мобильных приложений DL находятся в стадии интенсивной разработки на основе xNN и будут постепенно предоставляться пользователям в течение следующих нескольких месяцев.
жаждущий
Наконец, войдите в центр этой статьи!
Если вы увлечены самой передовой мобильной технологией DL и надеетесь вместе разработать мощный механизм DL и мощную модель DL, мы подготовили для вас, возможно, лучший сценарий применения в отрасли — граждане сотен миллионов пользователей App, широчайшее пространство для разработки — Ant Financial Group и самые надежные товарищи по команде — техническая команда, состоящая из старших инженеров, докторов, постдоков и профессоров из различных областей программного и аппаратного обеспечения!
Доставка резюме: dajiang.zdj@antfin.com Мы с нетерпением ждем вашего приезда!
Вам также может понравиться
Нажмите на изображение ниже, чтобы прочитать
Али официально выпустил финальную версию «Руководства по разработке Java»!
Доктор Пекинского университета в Али: Из-за ожиданий нужно быть лучше!
обрати внимание на «Али Технологии»
Уловите пульс передовых технологий