Apache SINGA — это проект Apache верхнего уровня для разработки библиотеки машинного обучения с открытым исходным кодом . Он предоставляет гибкую архитектуру для масштабируемого распределенного обучения, расширяем для работы на широком спектре оборудования и ориентирован на приложения в сфере здравоохранения.
Apache SINGA получила премию SIGMOD Systems Award 2024 [1] за разработку распределенной, эффективной, масштабируемой и простой в использовании платформы глубокого обучения для крупномасштабной аналитики данных .
Проект SINGA был инициирован DB System Group в Национальном университете Сингапура в 2014 году в сотрудничестве с группой баз данных Чжэцзянского университета с целью поддержки сложной аналитики в масштабе и повышения интеллектуальности и автономности систем баз данных . [2] Он был сосредоточен на распределенном глубоком обучении путем разбиения модели и данных на узлы в кластере и распараллеливания обучения. [3] [4] Прототип был принят Apache Incubator в марте 2015 года и получил статус проекта верхнего уровня в октябре 2019 года. В таблице ниже собрана информация о различных типах версий, например, последняя версия, последняя предварительная версия, более старые версии, которые все еще поддерживаются, и старые версии.
Программный стек SINGA включает три основных компонента, а именно ядро, IO и модель. На следующем рисунке эти компоненты показаны вместе с аппаратным обеспечением. Основной компонент обеспечивает управление памятью и тензорные операции; IO имеет классы для чтения (и записи) данных с (на) диск и сеть; Компонент модели предоставляет структуры данных и алгоритмы для моделей машинного обучения, например, слои для моделей нейронных сетей , оптимизаторы/инициализаторы/метрики/потери для общих моделей машинного обучения.
SINGA-Auto (также известная как Rafiki [5] в VLDB2018) — это подсистема Apache SINGA для предоставления услуг обучения и вывода моделей машинного обучения. SINGA-Auto освобождает пользователей от построения моделей машинного обучения, настройки гиперпараметров и оптимизации точности и скорости прогнозирования. Пользователи могут просто загрузить свои наборы данных, настроить службу для проведения обучения, а затем развернуть модель для вывода. Как облачная сервисная система, SINGA-Auto управляет аппаратными ресурсами, восстановлением после сбоев и т. д. Для простоты использования она предоставляет зоопарк моделей, который представляет собой набор встроенных моделей машинного обучения для популярных задач, таких как аналитика структурированных данных (например, данных EMR), распознавание изображений и обработка текста.
В сервисе обучения предлагается общая структура для распределенной настройки гиперпараметров, а также схема совместной настройки, разработанная специально для моделей глубокого обучения. В сервисе вывода предлагается алгоритм планирования на основе обучения с подкреплением для оптимизации общей точности и сокращения задержки. Он может адаптироваться к изменениям частоты запросов.
SINGA-Easy [6] (ACM Multimedia 2021) — это простая в использовании структура глубокого обучения, созданная как компонент Apache SINGA для облегчения принятия алгоритмов глубокого обучения и служб вывода пользователями доменных приложений, специфичных для определенной области (например, мультимедиа, анализ медицинских изображений). Она обеспечивает распределенную настройку гиперпараметров на этапе обучения, динамический контроль вычислительных затрат на этапе вывода и интуитивно понятное взаимодействие пользователя с мультимедийным контентом, облегчаемое объяснением модели. Для повышения точности она поддерживает методы регуляризации для регуляризации изображений и структурированных данных (ACM SIGMOD 2023). Для поддержки принятия пользователями домена результатов обучения SINGA-Easy предоставляет пользователям возможность оценивать производительность модели с точки зрения объяснения модели на основе LIME [7] и Grad-CAM. [8]
MLCask [9] (IEEE ICDE 2021) — это подсистема управления конвейерами, которая управляет конвейерами машинного обучения, от очистки данных до аналитики данных, чтобы упростить обслуживание развития и версионирования конвейеров машинного обучения для совместной аналитики. Она служит для снижения стоимости и упрощения внедрения. MLCask поддерживает сквозное управление жизненным циклом машинного обучения в стиле Git. Используя историю версий компонентов конвейера и рабочего пространства, MLCask может пропускать неизменные этапы предварительной обработки для решения частых проблем переобучения. Его нелинейная семантика управления версиями и операция слияния облегчают эффективную совместную разработку конвейера.
Начиная с версии 4.1.0, Apache SINGA обеспечивает поддержку выбора и вывода модели в базе данных в PostgreSQL. Система реализует ресурсоэффективный двухфазный алгоритм выбора модели, который включает в себя как методы выбора модели без обучения, так и методы выбора модели на основе обучения. Этот алгоритм выбора модели неинтрузивно интегрируется в PostgreSQL через хранимые процедуры с оптимизацией задержки выполнения и потребления памяти. Включение выбора модели в базе данных позволяет пользователям получать высокопроизводительные модели в рамках указанных ими требований по времени отклика.
Apache SINGA [10] используется в таких организациях, как NetEase , [11] Carnegie Technologies, CBRE , Citigroup , JurongHealth Hospital , National University of Singapore, National University Hospital , Noblis , Shentilium Technologies, Singapore General Hospital , Tan Tock Seng Hospital , YZBigData и других. Apache SINGA используется в приложениях в банковском деле, образовании, финансах, здравоохранении, недвижимости, разработке программного обеспечения и других категориях.
Больница общего профиля Ng Teng Fong [12] совместно с командой Apache SINGA разработала приложение для людей с диагнозом преддиабет — состояние, при котором уровень глюкозы в крови выше нормы, но недостаточно высок, чтобы его можно было классифицировать как диабет.
Приложение JurongHealth Food Log (JHFoodLg) использует Apache SINGA для сопоставления фотографий еды с базой данных местных блюд, включая наси паданг , лаксу и рис чар сью , и использует данные о питании из Health Promotion Board, JurongHealth Campus и Australian Food and Nutrient Database. После комплексной очистки данных (например, последовательного форматирования, дедупликации , классификации пищевых продуктов, калибровки человеком) база данных содержит 209 861 изображение, охватывающих 13 групп продуктов питания и 233 категории продуктов питания.
Приложение позволяет пользователям программы Lifestyle Intervention (Liven) больницы устанавливать цели по снижению веса и физическим упражнениям. Шестимесячное исследование показывает, что почти все 20 пациентов, которые использовали приложение, потеряли от 4 до 5 процентов от своего первоначального веса.