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

Недавно я запустил образовательный информационный бюллетень, посвященный ИИ, у которого уже более 125 000 подписчиков. TheSequence — это информационный бюллетень, ориентированный на машинное обучение, без BS (то есть без шумихи, без новостей и т. д.), чтение которого занимает 5 минут. Цель состоит в том, чтобы держать вас в курсе проектов машинного обучения, научных работ и концепций. Пожалуйста, попробуйте, подписавшись ниже:



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

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

Машинное обучение с людьми в цикле

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

Инфраструктура машинного обучения в масштабе

Ядром инфраструктуры машинного обучения LinkedIn является запатентованная система Pro-ML. Концептуально Pro-ML контролирует все жизненные циклы моделей машинного обучения, от обучения до мониторинга. Чтобы масштабировать Pro-ML, LinkedIn построила архитектуру, которая сочетает в себе некоторые технологии с открытым исходным кодом, такие как Kafka или Samza, со структурными элементами инфраструктуры, такими как Spark или Hadoop YARN.

Хотя большинство технологий, используемых как часть стека машинного обучения LinkedIn, хорошо известны, есть пара новых вкладов, которые заслуживают дальнейшего изучения:

· Ambry:Ambry от LinkedIn — это распределенная неизменяемая система хранения больших двоичных объектов, которая отличается высокой доступностью, очень легко масштабируется, оптимизирована для обслуживания неизменяемых объектов размером от нескольких КБ до нескольких ГБ с высокой пропускной способностью и низкой задержкой. и обеспечивает сквозную потоковую передачу от клиентов к уровням хранения и наоборот. Система была создана для работы в режиме активный-активный в нескольких центрах обработки данных и обеспечивает очень дешевое хранилище.

· TonY: TensorFlow на YARN (TonY) — это фреймворк для изначального запуска TensorFlow на Apache Hadoop. TonY позволяет запускать либо одиночный узел, либо распределенное обучение TensorFlow в качестве приложения Hadoop.

· PhotonML:Photon ML — это библиотека машинного обучения, основанная на Apache Spark. В настоящее время Photon ML поддерживает различные типы обучения обобщенных линейных моделей (GLM) и обобщенных линейных смешанных моделей (модель GLMM/GLMix): логистические, линейные и пуассоновские.

TensorFlow на Hadoop

В прошлом месяце команда инженеров LinkedIn открыла исходный код первого выпуска своего TensorFlow на платформе YARN (TonY). Цель выпуска состояла в том, чтобы позволить программам TensorFlow работать в распределенных кластерах YARN. В то время как рабочие процессы TensorFlow широко поддерживаются в таких инфраструктурах, как Apache Spark, YARN по-прежнему игнорируется сообществом машинного обучения. Тонкая первоклассная поддержка выполнения заданий TensorFlow в Hadoop путем обработки таких задач, как согласование ресурсов и настройка среды контейнера.

По своей сути TonY берет программы TensorFlow и разбивает их на несколько параллельных задач, которые можно выполнять в кластере YARN. При этом сохраняется полная поддержка графа вычислений TensorFlow, а это означает, что такие инструменты, как TensorBoard, можно использовать на TonY без каких-либо модификаций.

TonY — это интересный вклад в экосистему TensorFlow, который может улучшить работу приложений TensorFlow, работающих в масштабе. Кроме того, TonY может извлечь выгоду из широкого спектра инструментов и библиотек, доступных в экосистеме YARN, чтобы обеспечить высокомасштабируемую среду выполнения для обучения и запуска приложений TensorFlow.

Тестирование

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

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