Эта статья организована в соответствии с выступлением на [i Technology Conference]
Перед созданием платформы машинного обучения у iQIYI уже была относительно зрелая платформа глубокого обучения Javis, но Javis нацелен на высокоуровневых и профессиональных инженеров-алгоритмов, которым необходимо отправлять код в выделенный вычислительный кластер для выполнения вычислений, а порог для использования составляет относительно высокая. .
Кроме того, помимо глубокого обучения, алгоритмы включают машинное обучение, интеллектуальный анализ данных, анализ данных и другие области. Для многих малых предприятий нет соответствующей платформы для поддержки такого неглубокого обучения, и необходимо самостоятельно разрабатывать алгоритмы и инженерные платформы для поддержки лендингов.
Это часто называют построением дымохода.Каждому бизнесу необходимо создать свою собственную алгоритмическую платформу, которая подвержена двум проблемам: одна связана с алгоритмами, многие предприятия не основаны на алгоритмах как на основном бизнесе, а использование машинное обучение может использоваться только для помощи или оптимизации бизнеса, поэтому может быть не очень профессиональный персонал по алгоритмам, который имеет относительно глубокое понимание модели или алгоритма; другая проблема, хотя есть персонал по алгоритмам, но реализация Алгоритму все еще нужно делать некоторые инженерные вещи.Для разных предприятий это все равно, что заново изобретать велосипед.
Кроме того, для стратегии промежуточного офиса данных iQIYI интеллектуальные сервисы являются необходимой функцией промежуточной станции данных.
Из вышеперечисленных трех пунктов создание платформы машинного обучения имеет более четкое позиционирование.
К числу людей, обслуживаемых платформой машинного обучения, относятся инженеры по алгоритмам, аналитики данных и бизнес-инженеры по исследованиям и разработкам.Мы надеемся, что, создавая эффективные службы прогнозирования в автономном режиме и в режиме реального времени, мы сможем снизить стоимость использования машинного обучения для пользователей, повысить эффективность доступ к алгоритмам и использование данных.Преимущества Китая и Тайваня способствуют стандартизации и обмену данными и моделями.
путь развития
Кратко представим историю разработки платформы машинного обучения iQIYI.
1.0
До сих пор он в основном прошел через три основные версии.Первая версия также является этапом построения дымоходов на основе бизнеса. Поскольку эта версия строит службы для конкретных предприятий, во всей архитектуре очень мало алгоритмов, однако в этой версии мы реализовали асинхронное распределенное планирование алгоритмов через базовую систему алгоритмов планирования Spark ML. После выхода в интернет эффективность доступа к алгоритму значительно повышается.
Основываясь на техническом опыте, накопленном в первом издании, мы обнаружили текущий спрос на платформы машинного обучения общего назначения, поэтому мы повторили второе издание, чтобы реализовать платформу машинного обучения, ориентированную на требования общего назначения.
2.0
Наиболее примечательной особенностью второго издания является добавление визуального интерфейса к пользовательскому уровню, который позволяет пользователям создавать свои собственные процессы машинного обучения путем перетаскивания. Пользователи могут свободно создавать компоненты алгоритма для решения требований процесса сотни цветов после обобщения.
Другим важным моментом является изоляция службы планирования. Среди них экспериментальная подсистема планирования отслеживает состояние задачи и отвечает за планирование задачи.Суммируя пульсацию задач, глобальное состояние кластера задач может быть известно в любое время.Когда узел выполнения задачи аварийно прерывается, он может повторить попытку или перераспределить в первый раз.Для других узлов стабильность службы в значительной степени гарантируется.
Механизм выполнения задач является ядром выполнения задач. Механизм выполнения задач получает задачи, отправляемые службой планирования экспериментов, получает ресурсы модели из пула моделей в соответствии с содержимым конфигурации задачи, считывает и записывает данные из подсистемы управления данными и выполняет сценарии. Поскольку механизм выполнения задач не привязан к какой-либо конкретной платформе алгоритма, реализация выполнения алгоритма может легко охватывать различные платформы алгоритмов и платформы.
Благодаря мониторингу журнала сообщений информация журнала и информация терминала, сгенерированные различными алгоритмами и платформами, автоматически собираются и планируются, а полезная информация и данные извлекаются путем настройки ключевых слов, агрегируются и отображаются во внешнем интерфейсе или в режиме реального времени функции диаграммы определенных функций реализуются.
Пул алгоритмических моделей также управляется как независимая служба, предназначенная для автономных и прогнозируемых моделей выборки и синхронизации моделей в реальном времени.
Система отказывается от планирования задач кластера Spark через Europa в v1, а также от запланированных задач, поддерживаемых самой собой, и получает доступ к платформе больших данных iQIYI Babel и сервисной платформе планирования запланированных задач Gear. После подключения к этим двум платформам будет реализовано соединение с центром обработки данных, а во-вторых, будет реализован офлайн-сервис.
В рамках алгоритма, поскольку механизм выполнения отделен, легко добавить дополнительные рамки.Во втором издании, в дополнение к некоторым общим алгоритмам в SparkML, он также расширяет часто используемые алгоритмы, такие как XGBoost и классы графов. алгоритм.
3.0
Основная цель 3.0 — улучшить функциональную компоновку, в основном реализовать сервис онлайн-прогнозирования. В ответ на некоторые требования повышения эффективности, выдвинутые пользователями, он также обеспечивает поддержку автоматической настройки параметров и добавления серверов параметров для увеличения объема данных модели. Кроме того, поскольку пользователям необходимо получить доступ к платформе машинного обучения через другие платформы, также предоставляются услуги API.
На данный момент сформирована универсальная платформа, которая в основном охватывает весь процесс машинного обучения. Благодаря работе платформы пользователи могут реализовать полный набор процессов машинного обучения, от разработки функций до обучения моделей, оценки моделей, онлайн- и офлайн-прогнозирования. Путем подключения источника данных и назначения данных процесса машинного обучения ко всей платформе разработки больших данных создается полный набор замкнутых циклов.
системный опыт
Поделитесь некоторым опытом в реальном процессе.
1. Автоматическая настройка параметров
Когда пользователь настраивает конкретную модель, если параметры модели установлены неправильно, это сильно повлияет на точность модели. Параметры модели не одинаковые, как LR, линейная регрессия 4 параметра, больше как XGBoost выставляет 17 параметров, хотя не каждый параметр участвует в настройке параметров, но всегда сталкивается с некоторыми перестановками и комбинациями. Если вы регулируете параметры вручную, то есть всего несколько десятков групп параметров и целых сотни комбинаций. Например, XGBoost, практически невозможно использовать рабочую силу для настройки параметров.
Текущие платформы машинного обучения обычно имеют свои собственные функции настройки параметров, такие как Spark ML, но возможности настройки параметров весьма ограничены, поскольку они могут выполнять только случайные и полные комбинации (исчерпывающий поиск). Используя собственный метод настройки параметров Spark, если у пользователя нет интуитивного опыта, чтобы исключить диапазон настройки параметров, ему нужно бороться за вычислительные ресурсы или персонажа.
Еще одно ограничение системы настройки параметров, которая поставляется с каркасом алгоритма, заключается в том, что алгоритм настройки параметров нельзя повторно использовать на разных платформах. Поэтому мы разрабатываем платформу настройки параметров на уровне системы, которая может вызывать различные платформы алгоритмов, такие как Spark и python, а также может разрабатывать собственные алгоритмы настройки параметров, не ограничиваясь языковыми ограничениями платформы алгоритмов.
Наша система автоматической настройки параметров относительно проста с точки зрения процесса. Система разделяет корректировку параметров на несколько циклов итераций. Традиционные алгоритмы настройки параметров, такие как настройка случайных параметров и настройка параметров поиска по сетке, имеют только один раунд.Расширенные алгоритмы имеют несколько раундов настройки параметров.Диапазон настройки параметров соответствующим образом сужается на основе результатов оценки предыдущего раунда настройки параметров и, наконец, параметры сходятся к максимальному значению добротности.
После того, как система считывает интервал параметра, установленный пользователем, она делит интервал на несколько подинтервалов в соответствии с потребностями пользователя и случайным образом выбирает параметры в каждом подинтервале как комбинацию первой настройки параметров и отправляет их в механизм выполнения через службу распределения задач для планирования соответствующих параметров.Алгоритмическая основа для обучения и оценки. После завершения обучающей задачи механизм выполнения возвращает результаты оценки службе настройки параметров.
После сбора всех результатов оценки текущего раунда служба настройки параметров активирует алгоритм для расчета пространства настройки параметров для следующего раунда, корректирует количество выборок для следующего раунда и снова отправляет его в механизм выполнения для тестирования. и цикл повторяется до тех пор, пока не будет достигнут максимальный раунд, вторичный предел или степень сходимости.
Мы можем рассматривать весь процесс настройки параметров как крупномасштабный процесс обучения модели и процесс непрерывного поиска экстремальных значений посредством обратной связи по результатам. Исходя из этой идеи, многие применимые алгоритмы могут быть добавлены в качестве алгоритмов настройки параметров.
Помимо поддержки случайных алгоритмов и алгоритмов поиска по сетке, текущая платформа машинного обучения также реализует байесовскую оптимизацию и собственные генетические алгоритмы. Тест показал, что эффективность настройки параметров самостоятельно разработанного алгоритма намного выше, чем у традиционного алгоритма по умолчанию.
2. Поддержка масштаба данных
На начальном этапе работы системы поддерживается только фреймворк SparkML, и обычное обучение с набором данных из десятков тысяч уровней можно пройти за несколько минут, однако, когда пользовательский набор данных составляет всего порядка десятков-сотни на несколько порядков задача также должна выполняться в течение нескольких минут.По сравнению с обучением Python на одной машине обучение может быть выполнено за секунды.Время довольно медленное. Одна из причин заключается в том, что задачи, отправленные в кластер Spark, должны ждать выделения ресурсов. Реальное время обучения короткое, но остальное время подготовки также кажется пользователю медленным. Поэтому мы также ссылаемся на автономный движок python в последующих версиях. Когда объем данных невелик, пользователи могут выполнять эту операцию непосредственно на одном компьютере.
С другой стороны, традиционное обучение SparkML происходит довольно медленно или даже дает сбой, когда объемы обучающих данных превышают 100 миллионов. Это связано с тем, что Spark не подходит для обучения крупномасштабных моделей. Модель обучения Spark разделена на несколько раундов итерации. Каждый раунд требует выполнения всех задач исполнителя до суммирования параметров. В соответствии с принципом ствола вся задача Spark будет подвергаться влиянию самого медленного рабочего времени выполнения.
Кроме того, все исполнители будут обмениваться параметрами через широковещательную рассылку, что занимает значительную часть пропускной способности сети для модели с большим количеством параметров, а также приводит к очень низкому эффекту использования системы.
Решение - решить проблему средствами сервера параметров.Сам сервер параметров внес некоторые улучшения в принцип распределенного обучения.Он не ждет пока запустятся все экзекьюторы,а некоторые из них работают больше заданного значения и принудительно прекращаются. Для повышения эффективности всего кластера некоторые части скорости конвергенции приносятся в жертву.Кроме того, для передачи параметров отменяется широковещательный механизм, и параметры помещаются на независимый сервер параметров, называемый сервером параметров.Чтение, это также экономит потребление сети.
Платформа машинного обучения iQIYI с самого начала поддерживает кросс-алгоритмическое планирование. Мы исследовали различные серверы параметров с открытым исходным кодом и, наконец, интегрировали сервер параметров Angel от Tencent и протестировали несколько типичных моделей. Тесты показали, что при обучении моделей с масштабом более 100 миллионов эффективность обучения сервера параметров существенно повышается более чем на 50% по сравнению со Spark.
3. Платформа управления моделями и планирование алгоритмов
Будь то предсказание модели Sklearn или Spark ML, с точки зрения кода функция предсказания — это метод внутри разных моделей. Не существует универсального метода прогнозирования, совместимого со всеми моделями. Нет проблем, когда разработчики пишут свой собственный код, но если должна использоваться общая платформа, необходимо рассмотреть унифицированный компонент прогнозирования для обработки всех прогнозов модели, и он имеет определенную масштабируемость.Компонент прогнозирования совместим с моделями различные алгоритмы.
Другая проблема, похожая на компонент прогнозирования, заключается в том, как можно единообразно развернуть различные модели алгоритмов или даже межплатформенные модели в службе онлайн-прогнозирования?
Вышеупомянутые 2 проблемы могут быть решены с помощью файлов пользовательских моделей. После обучения модели в дополнение к выходному файлу модели по умолчанию также выводятся пользовательский файл и файл PMML. PMML — это стандартный язык определения моделей, который можно использовать для чтения моделей на разных платформах, подходящий для автономного обучения и сценариев онлайн-прогнозирования. Кроме того, в настраиваемый файл можно вывести больше полезной для платформы информации, такой как оценка модели, тип модели, имена связанных таблиц и полей для обучения модели, параметры модели, контекст обучения и т. д.
Когда модель подключена к компоненту прогнозирования, компонент прогнозирования считывает пользовательский файл, получает структуру и тип модели модели и загружает файл модели через соответствующую структуру модели.
В онлайн-прогнозировании путем чтения контекста обучения процесс предварительной обработки, необходимый перед обучением модели, может быть загружен в процесс онлайн-прогнозирования, что снижает нагрузку на отдельный процесс предварительной обработки пользователя.
4. Построение системы онлайн-прогнозирования
Система онлайн-прогнозирования предоставляет различные методы вызова для различных сценариев пользовательского спроса.
Локальный режим заключается в том, что платформа онлайн-прогнозирования автоматически инкапсулирует всю информацию о модели в пакете службы jar и предоставляет облегченные вызовы пользователям; облачный режим заключается в том, что платформа службы онлайн-прогнозирования объединяет службы докеров для создания набора вычислительных кластеров. Облачный режим поддерживает службу HTTP и службу RPC. В службе HTTP система подает заявку на динамическое доменное имя через службу консула и связывает службу докера через службу автоматического обнаружения. Пользователям нужно только получить доступ к доменному имени, предоставленному службой, и им не нужно понимать внутренний процесс развертывания.
Служба RPC реализована на базе Dubbo. Служба прогнозирования модели инкапсулирована Dubbo и подключена к zookeeper через докер для реализации обнаружения службы. Клиенту нужно только подключить указанное слово соединения через клиента, чтобы получить доступ к службе.
Платформы офлайн-прогнозирования публикуются на основе процессов, а онлайн-прогнозы публикуются на основе моделей и информации о контексте модели. В платформе управления моделями онлайн-сервисы развернуты в двух режимах: режиме push и режиме pull. Режим извлечения — это режим, в котором пользователь активно обновляет службу, а режим извещения — это режим, в котором модель обновляется пассивно после того, как модель обновляется на платформе управления моделями. Объединив два метода, онлайн-сервис покрывает все сценарии обновления модели.
Введение в дело
Служба защиты от мошенничества — это независимая бизнес-система, которая управляет бизнес-логикой и бизнес-данными, связанными с защитой от мошенничества. Платформа защиты от мошенничества определяет и создает различные сценарии идентификации и фильтрации защиты от мошенничества, а также автоматически разбирает их на рабочие процессы для конкретной работы и обслуживания в центре обработки данных. Процессы, связанные с алгоритмами, передаются на платформу машинного обучения через центр обработки данных для обработки, а обработанные результаты также будут возвращены в центр обработки данных.
На следующем рисунке представлены все сценарии и сопутствующие алгоритмы борьбы с накруткой трафика, в том числе общие алгоритмы наблюдения, алгоритмы наблюдения, черно-белые выборки, затем алгоритмы кластеризации, алгоритмы обнаружения аномалий, кроме того, есть аналогичные алгоритмы, основанные на бандах, и некоторые алгоритмы глубинного обучения.
Ежедневно можно фильтровать журналы более десяти миллионов уровней, а пик онлайн-предсказания больше, чем KPS, который может достигать десяти тысяч уровней.С такой платформой повышение эффективности составляет примерно более 80%.