Мохан Редди, технический директор The Hive

Введение

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

Справочная информация о Synapse

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

Многие компании, входящие в портфель The Hive, успешно использовали его для масштабирования своих приложений для обработки данных.

Евклид - мотивация и введение

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

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

Компоненты Евклида

Получение данных

Данные поступают из нескольких источников как в потоковом, так и в пакетном режимах с использованием богатого набора соединителей ввода-вывода, доступных в Apache Beam. Он также поддерживает широкий спектр форматов данных.

Предварительная обработка данных

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

Разработка функций

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

Маркировка данных

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

Обучение модели

Euclid стандартизирует процесс обучения, будь то с использованием TensorFlow, PyTorch или ванильных фреймворков машинного обучения для различных сценариев использования. Преобразование ноутбуков IPython в эту структуру требует минимальных усилий и делает ее независимой от алгоритмов. Обученные модели хранятся в хранилище моделей. В настоящее время предпринимаются попытки сделать это декларативным с помощью DSL.

Оценка модели

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

Обслуживание модели

Компонент обслуживания модели использует Docker для обслуживания сериализованной модели кандидата. Он поддерживает масштабирование как TensorFlow, так и фреймворков NVIDIA TensorRT.

Оркестровка

Euclid поддерживает AirFlow и Kubeflow для согласования конечных конвейеров. Он также включает поддержку визуализации и совместной работы, а также показатели времени выполнения и отслеживание происхождения.

Заключение

Практики программной инженерии, такие как разработка через тестирование (TDD), непрерывная интеграция, откат и восстановление, контроль изменений и т. Д., Внедряются в передовые практики машинного обучения. Специалисту недостаточно разработать ноутбук на Jupyter и бросить его через стену команде, чтобы она работала. Те же методы сквозного DevOps, которые мы находим сегодня в лучших инжиниринговых компаниях, также будут востребованы в усилиях по машинному обучению. Остается еще много интересных задач. Хотя Euclid является универсальным и уже поддерживает различные модели и типы данных, он является гибким и учитывает новые инновации от сообщества машинного обучения / глубокого обучения.

Евклид в настоящее время доступен для портфельных компаний The Hive. У нас есть планы открыть то же самое в более позднее время.

Чтобы узнать больше о преимуществах создания стартапа с помощью The Hive, посетите наш веб-сайт или напишите нам по адресу jobs [@] hivedata.com.