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

По моим наблюдениям, многие команды в достаточно крупных организациях внедрили Машинное обучение (ML) в свои проблемные области. Но они страдали огромной инерцией, пытаясь продвинуться вперед от первоначального принятия. Возможные причины -

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

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

Модельный поток: от обучения к переобучению

Путь к производству полон трудностей. Модели глубокой нейронной сети (DNN), которые оказались победителями в контролируемых экспериментах в лаборатории, теперь были представлены миру. Приемлема ли задержка на запросы логического вывода? Сколько параллельных запросов может обслуживать один экземпляр модели, чтобы максимизировать пропускную способность? Можно ли вывести поверхностную модель ученика из модели учителя, не теряя при этом большой точности? Есть ли фреймворк или ускоритель, который ускоряет работу с тензором? Способствует ли различное представление графа и связанное с ним время выполнения дальнейший рост эффективности? Должно ли преобразование тензора в NumPy дать вычислительное преимущество при работе на CPU? Должна ли архитектура модели быть представлена ​​в виде единой монолитной кодовой базы или ее можно представить в более модульной форме, такой как модельный каскад или ансамбль? Чтобы ответить на вышеуказанные вопросы, нам нужно хорошее сочетание знаний в области разработки программного обеспечения, а также науки о глубоком обучении. Инженер по машинному обучению (MLE) решает эти головоломки, чтобы превратить необработанные результаты из лаборатории в готовый продукт для всего мира. Роль MLE в организации, управляемой искусственным интеллектом, имеет решающее значение для быстрого развертывания, поскольку она позволяет преодолеть большой разрыв между наукой о машинном обучении и разработкой программного обеспечения. Отсутствие MLE в организации часто приводит к неоптимальному использованию ИИ или мучительно медленному конвейеру машинного обучения, не говоря уже о конфликте между учеными и инженерами. В то время как организации нанимают лучших ученых по машинному обучению (MLS) и разработчиков программного обеспечения (SDE), чтобы воспользоваться преимуществами ИИ, они часто игнорируют роль MLE, который может преодолеть разрыв между MLS и SDE.

Библиотека моделей: передача обучения в действии

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

«Если бы мы только знали то, что знаем» — Карла О’Делл

Заключение

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

В программном обеспечении 2.0 знания вплетены в нейронные сети. Если мы создадим DNN для автоматического завершения предложений в вашем электронном письме, то же самое или часть DNN также можно использовать для автокоррекции существующего абзаца. Или модель DNN, способная идентифицировать лицо знаменитости на изображении, может использоваться во многих задачах, включая злоупотребления и нарушение авторских прав. Новая форма знаний, глубоко встроенная в нейронные сети, требует полного воплощения, каталогизации и легкого доступа через MLS, MLE и SDE. Библиотека моделей имеет следующие преимущества:

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

  • Спасает нас от огромных затрат на предварительное обучение сетей общего обучения для каждой задачи внутри организации. Стоимость включает в себя стоимость действий MLS, стоимость вычислительной инфраструктуры и время, необходимое для обучения сети.
  • Благодаря полному воплощению и доступности через библиотеку оценка и развертывание моделей для задачи становятся быстрее, что приводит к быстрому внедрению глубокого обучения в бизнес-конвейер.
  • Путь модели DNN начинается с надежной системы обучения, в которой информация и наземные истины объединяются, образуя глубокие нейронные сети. Ученые используют популярные фреймворки, такие как «PyTorch», «TensorFlow» и т. д., для обучения совершенно новой нейронной сети или переобучения уже существующей. Это самый медленный процесс во всем потоке с высоким уровнем участия ученых и требует огромных вычислительных мощностей, зависящих от глубины и широты сети. Для обучения больших DNN часто используются распределенные обучающие среды, такие как «DeepSpeed», «Horovod» и т. д. После обучения DNN может потребоваться пройти несколько методов оптимизации, подходящих для реальных приложений. К таким методам относятся «обрезка», «дистилляция» и «квантование». Взаимодействие с MLE начинается на этом этапе, вместе с MLS они предлагают правильный размер и правильный компромисс между стоимостью и точностью. Как только оптимизированная DNN обладает большим объемом интеллектуальных данных для многих связанных задач, ее необходимо настроить для конкретной задачи. Часто «тонкая настройка» включает в себя распаковку последних нескольких слоев DNN и перестройку этих слоев с учетом конкретных задач, превращая DNN в предиктор или генератор. Эта форма «переносного обучения» не требует ни глубоких знаний в области машинного обучения, ни распределенной инфраструктуры, поэтому может быть легко реализована с помощью MLE. Существуют и другие формы трансферного обучения, для которых может потребоваться перестроить всю DNN с новым набором гиперпараметров, следовательно, потребуется опыт MLS. Мы можем относиться к отлаженной модели как к коду в «ПО 2.0», а значит, его еще нужно скомпилировать. Именно здесь MLE создает мост между MLS и SDE, они создают скомпилированную, ускоренную DNN, готовую к развертыванию в целевой среде выполнения и архитектуре процессора. Скомпилированная и ускоренная DNN создает чистый исполняемый файл, который использует базовую среду выполнения и аппаратное обеспечение для быстрого вывода, переход от MLE к SDE не может быть лучше. Впоследствии SDE добавляет SDK для различных вариантов и создает пакеты для производства. Например, они добавляют «обслуживающий стек Python» для запуска вывода в режиме синхронизации или библиотеку «Spark» для запуска пакетного вывода в виде задания Spark. Мы не должны упрощать этот этап, поскольку упаковка требует полного закрытия зависимостей; SDE необходимо иметь дело с «адом зависимостей», ошибками и предупреждениями. После упаковки SDE выбирает правильную технологию для их развертывания для различных моделей доступа, а именно для синхронизации, асинхронности и пакетного вывода. В типичном шаблоне доступа SDE выбирает комбинацию среды выполнения и оборудования для достижения наилучшей производительности. Например, для вывода синхронизации сервер «Triton», работающий на оборудовании с ускорением «GPU», может обслуживать модель, совместимую с GPU, с оптимальным использованием базовых CPU и GPU. Точно так же для пакетного вывода Spark может распределять данные на уровне записей и достигать максимальной параллелизации. Хотя важно, чтобы модель работала без проблем, не менее важно наблюдать за аномальными выводами, поскольку это может привести к серьезным негативным последствиям для бизнеса. Последним шагом в потоке модели является настройка инструментов наблюдаемости для мониторинга производительности модели в производственной среде. Аномалия данных и дрейф модели (аномальный вывод) обычно кодируются в статистических правилах и оцениваются на выборочных данных и выводах, собранных в производственной среде. Этап «наблюдаемости МО» может обнаруживать переобучение/недообучение модели, неизвестные неизвестные и устаревшие знания, следовательно, создает жизненно важный триггер для более глубокого научного анализа на этапе переобучения. Передавая обратную связь на фазу обучения, наблюдаемость ML завершает цикл потока ML.

Артефакт

Это в основном синтаксическое представление, состоящее из кода, весов, гиперпараметров и т. д. Этот аспект также абстрагирует две основные функции модели: fit() для точной настройки и predict() для вывода. Целевое время выполнения, аппаратное обеспечение, задержка, характеристики пакетной обработки и некоторые другие ограничения и характеристики выполнения представлены в виде артефакта.

Прием

Это представляет предметную область и модальность модели. Домен представляет собой вселенную, из которой модель получила знания. Например, модель НЛП, обученная на всем корпусе Википедии, или модель идентификации видов птиц из базы данных eBird. Знание предметной области помогает потребителям понять перекрытие предметных областей. Кроме того, модальность сообщает нам, какие данные приемлемы в качестве входных данных и в какой форме. На рисунке 2 показана иерархия модальности данных, используемая в качестве входных данных для модели. Знание модальности помогает потребителям поддерживать согласованность данных между этапами обучения и вывода модели.

Результат

Результат является определяющим аспектом модели глубокого обучения, поскольку это единственная цель ее существования. Этот аспект составляет основную часть семантической абстракции; помогает каталогизировать модель в библиотеке моделей. На рисунке 3 предпринята попытка представить иерархию результатов модели DL в ограниченной форме. Характеристики точности и охвата модели также фиксируются в аспекте результата.

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

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

Быстрое глубокое обучение: мост, который мы забыли построить