Моделирование разговоров на устройстве с помощью TensorFlow Lite

Google машинное обучение искусственный интеллект TensorFlow глубокое обучение
Моделирование разговоров на устройстве с помощью TensorFlow Lite
Автор: Суджит Рави, исследователь, команда Google Expander

Ранее в этом году мы опубликовалиAndroid Wear 2.0, который содержит первый для смарт-сообщенийМашинное обучение «на устройстве»Технологии. Это позволяет Smart Reply (ранее вGmail,InboxиAlloВпервые такие облачные технологии, как эта, можно использовать напрямую в любом приложении (включая сторонние приложения для обмена сообщениями) без подключения к облаку. Таким образом, вы можете отвечать на входящие сообщения чата прямо со своих умных часов в любое время и в любом месте.

мы объявляемTensorFlow Lite, этот выпуск представляет собой упрощенное решение TensorFlow для мобильных и встроенных устройств. Эта платформа оптимизирована для логического вывода моделей машинного обучения с небольшим объемом памяти и высокой производительностью. В составе библиотеки мы также выпускаемДиалоговая модель на устройствеидемонстрационное приложение, который представляет собой пример приложения на естественном языке, реализованного в TensorFlow Lite, инициатив, призванных упростить разработчикам и исследователям создание новых возможностей машинного интеллекта, основанных на выводах о машинах. Эта модель может генерировать предложения ответов на входящие сообщения диалогового чата, а ее эффективный вывод можно легко интегрировать в ваше приложение для чата, чтобы улучшить диалоговый интеллект на устройстве.

Наша выпущенная модель диалога на устройстве использует новую архитектуру машинного обучения для обучения компактных нейронных сетей (и других моделей машинного обучения) в соответствии с совместной структурой оптимизации, первоначально разработанной вProjectionNet: изучение эффективных глубоких сетей на устройстве с использованием нейронной проекциипредоставлено в. Эта архитектура, которая может эффективно работать на мобильных устройствах с ограниченной вычислительной мощностью и памятью, преобразует любой ввод в компактное представление битового вектора, используя эффективную операцию «проекции» — аналогичные входные данные проецируются на близлежащие плотные или разреженные векторы. Это зависит от тип проекции. Например,"Эй, как дела?"и— Как дела, приятель?Сообщения могут быть проецированы на одно и то же векторное представление.

Основываясь на этой идее, диалоговая модель сочетает в себе эти эффективные операции, которые потребляют меньше вычислительных ресурсов и ресурсов памяти. Мы обучаем эту модель на устройстве от начала до конца, используя структуру машинного обучения, которая совместно обучает обе модели — две модели по отдельности компактны.проекциямодель (как указано выше) итренерМодель. Две модели обучаются совместно, спроецированная модель учится у модели тренера — тренер является экспертом и моделируется с использованием более крупной и сложной архитектуры машинного обучения, а спроецированная модель аналогична тому, как студент учится у эксперта. Во время тренировки мы также можем сочетать другие техники (например,количественноилипереработка) для дальнейшего сжатия или выборочной оптимизации определенных частей целевой функции. После обучения меньшую спроецированную модель можно использовать непосредственно для логического вывода на устройстве.
Для логического вывода обученная проекционная модель компилируется в набор операций TensorFlow Lite, оптимизированных для быстрого выполнения на мобильных платформах и непосредственно на устройстве. Ниже приведен график логического вывода TensorFlow Lite модели диалога на устройстве.
Выполнение диалоговых моделей TensorFlow Lite на устройстве.
Обсуждение открытого исходного кода опубликовано сегодняМодель(а такжекод) проходят сквозное обучение с использованием архитектуры совместного машинного обучения, представленной выше. Сегодняшний релиз также включает в себядемонстрационное приложение, вы можете легко загрузить приложение и попробовать умный ответ одним щелчком мыши на своем мобильном устройстве. Благодаря этой архитектуре размер модели и качество прогнозирования можно легко настроить в зависимости от потребностей приложения. ты сможешьздесьНайдите список примеров сообщений, для которых подходит эта модель. Система также может отступать и предлагать ответы из фиксированного набора изученных и скомпилированных популярных намерений ответов, наблюдаемых в разговорах в чате. базовая модель и Google использует другую модель для ответов «Умный ответ» в своих приложениях.1.

За пределами разговорной модели
Интересно, что представленная выше архитектура машинного обучения допускает гибкость в выборе базовой модели. Мы также разработали архитектуры, совместимые с различными стилями машинного обучения — например, в сочетании с глубоким обучением TensorFlow мы можем заставить базовую модель обучаться облегченной нейронной сети (ProjectionNet), а другая схема (ProjectionGraph), затем используйтеДиаграммаМодель представляет каркас, а не нейронная сеть.

Федеративную платформу также можно использовать для обучения облегченных моделей на устройстве другим задачам с использованием различных архитектур моделирования машинного обучения. В качестве примера мы создали архитектуру ProjectionNet, которая использует сложную архитектуру с прямой или рекуррентной связью (например, LSTM) для модели коучинга в сочетании с простой архитектурой проекций, состоящей из операций динамического проецирования и некоторых полностью связанных узких слоев. Вся модель в TensorFlow Обратное распространение используется для сквозного обучения в , а компактный ProjectionNet используется непосредственно для логического вывода. Используя этот подход, мы успешно обучаем крошечные модели ProjectionNet, которые значительно уменьшены в размере (до семи порядков) и хорошо справляются с задачами множественного зрения и классификации языков (здесьбыли введены некоторые примеры) и достигнута высокая точность. Точно так же мы использовали нашСтруктура обучения диаграммамсуществуетполуконтролируемыйДругие облегченные модели обучаются настройке.
Архитектуры машинного обучения для обучения моделей на устройстве: использование глубокого обучения для обученияProjectionNet(слева) с использованием обучения графуProjectionGraph(правильно).
Мы продолжим улучшать и выпускать обновленные модели TensorFlow Lite в проекте с открытым исходным кодом. Мы считаем, что опубликованные модели (и будущие модели), изученные с помощью этих архитектур машинного обучения, можно повторно использовать для многих приложений естественного языка и компьютерного зрения или интегрировать в существующие приложения для обеспечения машинного интеллекта. Мы надеемся, что сообщества машинного обучения и обработки естественного языка будут опираться на эти результаты и решать новые проблемы и варианты использования, о которых мы еще не думали.

Спасибо
Ичэн Фан и Гаурав Немаде внесли большой вклад в эту работу. Особая благодарность Раджату Монге, Андре Хенцу, Эндрю Селле, Саре Сираджуддин и Аните Виджаякумар из команды TensorFlow, а также Робину Дуа, Патрику МакГрегору, Андрею Бродеру, Эндрю Томкинсу и команде Google Expander.



1 Опубликованные модели для устройств специально обучены и оптимизированы для небольших приложений с малой задержкой на мобильных телефонах и носимых устройствах. Однако прогнозы Smart Reply в приложении Google генерируются с использованием более крупных и сложных моделей. В производственных системах мы также используем несколько обученных классификаторов для обнаружения неприемлемого контента и применения дополнительной фильтрации и настройки для оптимизации взаимодействия с пользователем и уровней качества. Мы рекомендуем разработчикам, использующим версию TensorFlow Lite с открытым исходным кодом, также следовать этой практике для своих конечных приложений.