Angel — это высокопроизводительная распределенная платформа машинного обучения, разработанная на основе концепции Parameter Server.
Лицензионное соглашение: БСД
Язык разработки: Ява
Операционная система: кросс-платформенный
Разработчик: Тенсент
Angel — это высокопроизводительная распределенная платформа машинного обучения, разработанная на основе концепции Parameter Server.Она неоднократно настраивалась на основе массивных данных внутри Tencent и имеет широкую применимость и стабильность.Чем очевиднее преимущество. Angel был совместно разработан Tencent и Пекинским университетом с учетом высокой доступности в промышленности и инноваций в научных кругах.
Основная философия дизайна Angel вращается вокруг моделей. Он разумно разделяет многомерные большие модели на серверные узлы с несколькими параметрами и легко реализует различные эффективные алгоритмы машинного обучения с помощью эффективных интерфейсов обновления моделей и операционных функций, а также гибких протоколов синхронизации.
Angel разработан на основе Java и Scala, и его можно напрямую планировать и запускать в Yarn сообщества. Он основан на PS Service, поддерживает Spark на Angel. В будущем он будет поддерживать интеграцию графовых вычислений и сред глубокого обучения.
1. Общая структура
Клиент, как и клиент Angel, предоставляет приложениям функции для управления выполнением задач. Рабочий отвечает за обучение конкретной модели или прогнозирование результатов; Мастер отвечает за распределение конкретных задач, координацию и планирование, а также за использование ресурсов.
Архитектура Parameter Sever, принятая Angel, больше подходит для решения проблемы обновления параметров в огромных моделях, чем другие типы архитектур; функции Parameter Server:
● Автоматическая сегментация и управление моделями на основе Matrix/Vector с учетом как разреженных, так и плотных форматов.
● Поддержка операций Push и Pull в модели, вы можете настроить сложные функции psFunc.
● Обеспечение нескольких механизмов управления синхронизацией (BSP/SSP/ASP).
По характеристикам разных измерений можно увидеть сравнение времени каждой итерации и общего времени сходимости Angel и Spark из данных Чем больше модель, тем очевиднее преимущество Angel по сравнению со Spark.
2. Структура системы
3. Библиотека алгоритмов и оптимизация
Теперь в официальную версию с открытым исходным кодом Angel 1.0.0 также добавлена интеграция алгоритмов машинного обучения, таких как логистическая регрессия, SVM, KMeans, LDA, MF и GBDT:
● Интегрируйте алгоритмы машинного обучения, такие как логистическая регрессия, SVM, KMeans, LDA, MF, GBDT и т. д.
● LDA использует алгоритм F+LDA для увеличения скорости выборки и в то же время использует метод потокового сбора параметров для уменьшения задержки сбора сетевых параметров.
● GBDT использует двухэтапный алгоритм разделения дерева для передачи части вычислений в PS, что снижает передачу данных по сети и повышает скорость.
● Различные методы оптимизации, включая ADMM, OWLQN, LBFGS и GD.
● Поддержка различных функций потерь, индикаторов оценки, включая обычные элементы L1, L2.
4. Оптимизация сети
Сетевое решение Angel использует Chukonu из Гонконгского университета науки и технологий. С помощью Chukonu Angel может решить проблему ожидания быстрых узлов медленных узлов в полусинхронном механизме координации работы SSP за счет перераспределения сетевого трафика, а также сократить время простоя окна. Как показано на рисунке, при оценке производительности 100 миллионов измерений и 30 итераций Chukonu сокращает накопленное время простоя примерно в 3,79 раза.
5. Режим работы ангел
Angel поддерживает следующие два режима работы:
● ANGEL_PS: Режим службы PS. В этом режиме Angel запускает только Master и PS, а конкретные расчеты передаются другим вычислительным платформам (таким как Spark, Tensorflow), а Angel отвечает только за обеспечение функции сервера параметров.
● ANGEL_PS_WORKER: запустите Master, PS и Worker, Angel самостоятельно завершит обучение модели.
Вокруг Angel Tencent также создала небольшую экосистему, которая может поддерживать MLLib на Spark, поддерживать обучение сотен миллионов измерений и поддерживать более сложные модели графических вычислений. В то же время, опираясь на Angel, Tencent выиграла четыре чемпионата в бенчмарке Sort в 2016 году и выполнила сортировку данных 100T за 98,8 секунды, побив четыре мировых рекорда. В 2015 году время сортировки достигло 329 секунд.
Angel с открытым исходным кодом от Tencent предоставляет новую возможность для тех, кто занимается крупномасштабными расчетами моделей машинного обучения.
Откажитесь от Dubbo и выберите архитектуру микросервисов Spring Cloud. Практика и опыт.
Ноябрьский рейтинг языков программирования TIOBE, что случилось со скриптовыми языками?
Углубленная интерпретация модели NIO в Tomcat