Задний план

Системы машинного обучения (точнее контролируемого обучения [1]) действительно хорошо работают в производственной среде [2]. Однако создание систем машинного обучения:

  • Утомительно: для каждой системы существует множество вариантов функций потерь (и показателей), построения набора данных, архитектуры, динамики обучения и командного рабочего процесса. Множество вариантов неизбежно увеличивает шансы на ошибку.
  • Требуется много знаний в предметной области: для запуска успешного проекта требуется много знаний в предметной области. Получение этих знаний не масштабируется, и эти знания постоянно меняются по мере того, как вы изучаете новую информацию о том, как пользователи / клиенты реагируют на эксперименты, которые вы проводите.
  • Высокая вероятность неудачи: большинство проектов терпят неудачу из-за того, что многие вещи могут пойти не так [4]. Это также означает потраченные впустую усилия и время, поскольку много времени тратится на работу над вещами, которые нельзя использовать повторно.
  • Значительные накладные расходы на обслуживание. После того, как вы преодолеете указанные выше препятствия, вам придется поддерживать этих зверей в рабочем состоянии.

Когда люди пытаются решить проблему, они используют сильную априорную схему (построенную на протяжении всей их жизни). Однако наши системы обычно обучаются с нуля, и даже если они настраиваются с самого начала, им требуется множество обучающих примеров, чтобы добраться до состояния, при котором мы будем чувствовать себя комфортно, вводя их в производство.

Я думал об этой проблеме и оценивал, есть ли лучший способ сделать что-то. Я делюсь своими выводами, полученными в результате изучения соответствующих исследований, общения с коллегами в этой области, а также на основе моего личного опыта создания систем машинного обучения и работы с ними.

Структура этого поста

В этом посте я разбил свои выводы на следующие разделы:

Состояние экосистемы (Раздел 1): чтобы узнать, как дела обстоят в настоящее время. Я считаю, что это даст нам представление о том, где мы можем улучшить.

Обзор метаобучения (Раздел 2): изучите многообещающую область исследований, которая, судя по моему опыту, хорошо работает в производственной среде. Я также проанализировал, как академические круги подошли к этой проблеме, чтобы увидеть, можем ли мы узнать что-нибудь о том, как она переносится в производственные системы.

Последствия (Раздел 3): конкретно озвучьте, как меняются команды и рабочий процесс, если кто-то должен принять эту новую структуру.

Раздел 1: Текущее состояние экосистемы

Объем доступных данных и вычислений растет экспоненциально, и глубокие модели не отстают [11]. В дополнение к увеличению объема данных и вычислений, специалисты в этой области нашли способ сократить время цикла от исследования до производства. Экосистема инструментов машинного обучения становится все более зрелой [10] [9], и мы совершенствуемся в реализации исследовательских идей. Однако то, как исследования в области машинного обучения основаны на сборе строительных блоков (свертка, LSTM, преобразователи и т. Д.) [12] и на практике (или производстве), предполагает, что они могут соединить эти строительные блоки вместе для решения проблем, относящихся к конкретным объектам. использованный случай [как показано на Рисунке 3].

Эта парадигма проектирования вынуждает нас продвигать сложные конструкции в производство, на создание которых уходит много времени и еще больше усилий для обслуживания. Кроме того, эти условия вынуждают к существованию различных микросервисов [13], каждый из которых имеет свою специализацию. В большинстве компаний стек машинного обучения выглядит примерно так:

Модели глубоких нейронных сетей в производстве хорошо справляются с изучением распределения данных. У многих команд машинного обучения очень жесткий процесс, в котором они могут создавать / обучать / развертывать эти модели. Это привело к взрывному росту моделей в производстве [20], и поддерживающая это инфраструктура всегда играет в догонялки и едва держится по швам.

Этот паттерн также вызывает:

  • Системы с высокой степенью взаимосвязанности: команды или отдельные лица, накопившие опыт или модели, должны предоставить доступ подчиненным командам. Граф зависимостей может иметь много промежуточных узлов. Однако это увеличивает вероятность сбоев молчания в этих массивных сложных сетях и затрудняет отладку.
  • Высокая энергия активации. Каждая новая идея требует большого объема стандартной работы (настройка наборов данных, показателей, извлечение функций, обновление конфигурации и т. д.). Это добавляет дополнительное трение при опробовании новых идей и излишне снижает скорость работы команды.
  • Высокие инвестиционные затраты. Даже для начала нужно заплатить высокие фиксированные затраты. Инструменты с открытым исходным кодом в значительной степени понесли эту стоимость, однако для новых команд и организаций, пытающихся экспериментировать, они должны заплатить высокую стоимость настройки своей инфраструктуры, прежде чем даже увидят какую-либо рентабельность инвестиций.

Пример из практики: изучение истории

Ограничено вычислением

Вещи, созданные вручную, в конечном итоге уступают изученным решениям

Features
* HOG/SIFT -> Learned
Architectures
* Hand designed -> Learned
Hyperparameters
* Manually tuned -> Learned

Эта тенденция предполагает, что есть лучший способ сделать что-то: если у вас есть проектное решение, которое реализуется путем ручной настройки или «экспериментов» на людях, это лишь вопрос времени, когда оно станет узким местом в системе в целом [14]. .

Раздел 2: Мета-обучение и многозадачное обучение

Модели контролируемого обучения изучают функцию, которая сопоставляет входные данные с выходными на основе примеров пар входов и выходов. Он выводит функцию из помеченных данных обучения, чтобы во время тестирования он мог вывести метку для невидимых данных. Предполагается, что данные обучения и данные теста поступают из одного и того же базового распределения. Однако во многих приложениях это предположение нарушается, если:

  • Хотите быстро узнать что-то новое (новый пользователь, новое окружение, новая задача и т. Д.)
  • Базовое распределение имеет длинный хвост. Так бывает много рекомендуемых систем и систем обнаружения новинок.
  • У вас нет большого набора данных, на котором можно было бы учиться, и / или создание помеченного набора данных стоит дорого.

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

  • Извлечение предшествующей информации из набора (мета-обучения) задач, которые позволяют эффективно изучать новые задачи.
  • Изучение новой задачи использует этот предыдущий и (небольшой) обучающий набор для определения наиболее вероятных апостериорных параметров.
  • При обучении этой сети используется набор метаданных, который состоит из множества наборов данных, каждый для отдельной задачи.

На концептуальном уровне модели контролируемого обучения изучают пики градиента для конкретного используемого случая в определенный момент времени. Они очень хорошо справляются с поставленной задачей, но могут быстро снизить производительность. Однако с помощью подхода метаобучения человек изучает ландшафт градиентов, который может быстро научиться обобщать для новой задачи несколько обучающих примеров.

Я не обращал внимания на детали реализации метаобучения, однако Челси Финн [17] в своем Стэнфордском классе CS330 [18] отлично разбирается в деталях. Один из основных выводов, который необходимо пройти, - это вероятностная постановка проблемы метаобучения. Используя максимизацию ожидания, многозадачное обучение становится частным случаем метаобучения [19]. Эта характеристика отлично подходит для случая метаобучения, поскольку мы можем использовать многозадачные модели в качестве промежуточного шага при обобщении для метаобучения.

Пример использования: Meta-World 50 [23]

В этой статье демонстрируется случай метаобучения с использованием робототехники. Я считаю, что эта статья - хорошее представление о том, как выглядят экосистемы машинного обучения в различных технологических компаниях. Существует множество моделей машинного обучения, каждая из которых ориентирована на схожие задачи. Например, компания может иметь в производстве модели, которые:

  • Постарайтесь предсказать, собирается ли пользователь читать следующий фрагмент контента, учитывая то, что он потребляет.
  • Выясните, как организовать контент так, чтобы пользователь сначала находил наиболее похожие комментарии.
  • Выясните, что безопасно показать конкретному пользователю.

Это несколько примеров, но обратите внимание, как все они связаны с поведением пользователя. Формулировка метаобучения позволит изучить лежащее в основе распределение поведения пользователей.

В этой статье делается попытка метаобучения по 45 задачам и мета-теста по 5 задачам. Первоначальная попытка использования метаобучения и многозадачного обучения оказалась неудачной (

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

Литературный обзор

Для тех, кто хочет пойти немного глубже, вот коллекция статей, которые я нашел полезными. Эти сборники статей также дают представление о том, как сообщество решило эту проблему [24–47] (сборник из 24 статей для вашего удовольствия от чтения).

Сообщество думает и работает над этой проблемой с 1992 года. Однако только недавно эти подходы начали показывать значительный прогресс (особенно в связи с недавней шумихой вокруг больших моделей трансформаторов (GPT, BERT и т. Д.).

На «мета» уровне большинство статей попадают в один из следующих двух лагерей:

  • Новые архитектуры.
  • Решение для взвешенных задач и разделения градиентов.

Вызовы

Помимо положительных моментов, при реализации решений для метаобучения следует учитывать следующие моменты:

Отрицательный перенос. Иногда независимые модели обучаются лучше, чем отдельная модель, и это связано с феноменом «отрицательного переноса».

  • Вызвано градиентными обновлениями межзадачного взаимодействия
  • Разные задачи могут учиться с разной скоростью
  • Ограничения возможностей, многозадачность или модели метаобучения должны быть намного больше, чем модели, изучающие одну задачу, следовательно, им может не хватить мощности.

Переобучение: модель может не разделять достаточное количество весов и, следовательно, переобучаться для подмножества задач. Один из способов преодолеть это - разделить больше весов. Это будет действовать как более сильная форма регуляризации и потенциально может меньше переобучать.

Раздел 3: Последствия

Вот некоторые свойства, которые открывает мета-обучение:

Более низкая энергия активации: это позволяет быстро и дешево поэкспериментировать с новыми корпусами, а также с местами, где у нас очень мало этикеток.

  • Это поможет снизить затраты на эксперименты, которые не увенчались успехом.
  • Это также поможет увеличить количество экспериментов, уменьшив при этом трение, связанное с опробованием новых идей.
  • Небольшие проблемы с данными также могут работать.
  • Посмотрите, сколько новеньких бывших в употреблении футляров больших трансформеров открывают.

Низкое управление зависимостями: метаобучение предоставляет альтернативу сильно связанным структурам, которые сложно поддерживать.

  • Традиционно вывод модели используется в последующих приложениях. Это приводит к возникновению тесно связанной сети зависимостей, когда конечный покупатель не имеет представления о том, что в середине нуждается в обновлении.
  • Это также позволит экспериментировать с большим количеством моделей с открытым исходным кодом непосредственно в производстве (очень похоже на традиционное программное обеспечение).

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

  • В традиционном мире вам нужно будет создать собственную инфраструктуру для каждой модели (и / или настроить инфраструктуру для каждого используемого случая). При таком подходе нагрузка значительно снижается, если вы можете создать настраиваемую инфраструктуру для обслуживания и поддержки нескольких моделей.
  • Это позволит многим командам, не имеющим опыта в области машинного обучения, экспериментировать с идеями в тех случаях, когда у них есть наибольший опыт.

Ссылки и примечания

[1] https://en.wikipedia.org/wiki/Supervised_learning

[2] Я использую слово «производство» для обозначения тех случаев, когда цель состоит в том, чтобы обслуживать реальных конечных пользователей, а не просто побить эталонный тест.

[4] https://www.prnewswire.com/news-releases/pactera-white-paper-reveals-85-percent-of-ai-projects-ultimate-fail-300871826.html

[5] https://xkcd.com/1425/

[6] http://www.graduatewings.co.uk/classic-abstract-test-patterns/

[7] Графики тенденций исследований ИИ

[8] Экосистема инструментов машинного обучения

[9] Записки Дэнни Бритца

[10] Что я узнал, изучив 200 инструментов машинного обучения

[11] https://arxiv.org/pdf/2005.04305.pdf

[12] Компоненты - Статьи с Кодексом

[13] https://microservices.io/

[14] http://www.incompleteideas.net/IncIdeas/BitterLesson.html

[15] Эмпирическая модель крупномасштабного обучения

[16] Законы масштабирования для моделей нейронного языка

[17] https://ai.stanford.edu/~cbfinn/

[18] http://cs330.stanford.edu/

[19]

Одно из преимуществ, которые вы получаете от формулировки проблемы метаобучения с использованием вероятностной структуры, - многозадачное обучение становится особым случаем. То же самое и с оптимизацией гиперпараметров и авто-мл.

[20] https://www.slideshare.net/MeetupDataScienceRoma/giovanni-galloro-how-to-use-machine-learning-on-google-cloud-platform (слайд 3/51)

[21] Изображения с сайта https://openreview.net/forum?id=rJY0-Kcll

[22] Градиентные изображения взяты из https://sites.google.com/view/berkeley-cs294-158-sp20/home

[23] https://arxiv.org/pdf/1910.10897.pdf

Следующие 24 ссылки относятся к разделу обзора литературы:

[24] Bengio et al. (1992) Об оптимизации правила синаптического обучения

[25] Каруна (1997). Многозадачное обучение

[26] Трун (1998). Разве выучить n-ю вещь легче, чем выучить первую?

[27] Hochreiter et al. (2001) Обучение обучению с использованием градиентного спуска

[28] Янгер и др. (2001), Мета-обучение с обратным распространением

[29] Koch et al., (2015) Сиамские нейронные сети для одноразового распознавания изображений.

[30] Санторо и др. (2016) Мета-обучение с нейронными сетями с расширенной памятью

[31] Виньялс и др. ((2016) Соответствующие сети для однократного обучения

[32] Эдвардс и др., (2016) К нейронному статистику.

[33] Рави и др. (2017) Оптимизация как модель для пошагового обучения

[34] Munkhdalai et al. (2017) Мета Сети

[35] Снелл и др., (2017) Прототипные сети для быстрого обучения.

[36] Shyam et al. (2017) Внимательные рекуррентные компараторы

[37] Finn et al. (2017) Мета-обучение, не зависящее от модели, для быстрой адаптации глубоких сетей

[38] Мехротра и др. (2017), Генеративные состязательные остаточные парные сети для обучения одним выстрелом.

[39] Mishra et al., (2017) Мета-обучение с временными свертками.

[40] Ли и др., (2017) Meta-SGD: Обучение быстрому обучению для небольшого краткого обучения

[41] Финн и Левин, (2017) Мета-обучение и универсальность: глубокое представление и градиентный спуск могут приблизить любой алгоритм обучения

[42] Grant et al. (2017) Переосмысление метаобучения на основе градиентов как иерархического байесовского

[43] Рагху и др. (2019) Быстрое обучение для повторного использования функций? На пути к пониманию эффективности MAML

[44] Lake et al. (2019) The Omniglot Challenge: отчет о прогрессе за 3 года

[45] Rajeswaran et al. (2019): Мета-обучение с неявными градиентами

[46] Ван и др. (2019): Пересмотр классификации ближайшего соседа для быстрого обучения

[47] Ю и др., (2019) Мета-мир: эталон и оценка многозадачности и мета-подкрепления.