Apache SINGA es un proyecto de alto nivel de Apache para desarrollar una biblioteca de aprendizaje automático de código abierto . Proporciona una arquitectura flexible para un entrenamiento distribuido escalable, es extensible para ejecutarse en una amplia gama de hardware y se centra en aplicaciones de atención médica.
Apache SINGA ha ganado el premio SIGMOD Systems Award 2024 [1] por el desarrollo de una plataforma de aprendizaje profundo distribuida, eficiente, escalable y fácil de usar para análisis de datos a gran escala .
El proyecto SINGA fue iniciado por el Grupo de Sistemas de Base de Datos de la Universidad Nacional de Singapur en 2014, en colaboración con el grupo de bases de datos de la Universidad de Zhejiang , con el fin de respaldar análisis complejos a escala y hacer que los sistemas de bases de datos sean más inteligentes y autónomos . [2] Se centró en el aprendizaje profundo distribuido al particionar el modelo y los datos en nodos de un clúster y paralelizar el entrenamiento. [3] [4] El prototipo fue aceptado por Apache Incubator en marzo de 2015 y se graduó como proyecto de alto nivel en octubre de 2019. La siguiente tabla captura información sobre diferentes tipos de versiones, por ejemplo, la última versión, la última versión de vista previa, versiones anteriores que aún se mantienen y versiones antiguas.
La pila de software de SINGA incluye tres componentes principales, a saber, núcleo, IO y modelo. La siguiente figura ilustra estos componentes junto con el hardware. El componente núcleo proporciona administración de memoria y operaciones de tensor ; IO tiene clases para leer (y escribir) datos desde (hacia) el disco y la red; El componente modelo proporciona estructuras de datos y algoritmos para modelos de aprendizaje automático, por ejemplo, capas para modelos de redes neuronales , optimizadores/inicializadores/métricas/pérdidas para modelos generales de aprendizaje automático.
SINGA-Auto (también conocido como Rafiki [5] en VLDB2018) es un subsistema de Apache SINGA para proporcionar el servicio de entrenamiento e inferencia de modelos de aprendizaje automático. SINGA-Auto libera a los usuarios de construir los modelos de aprendizaje automático, ajustar los hiperparámetros y optimizar la precisión y velocidad de la predicción. Los usuarios pueden simplemente cargar sus conjuntos de datos, configurar el servicio para realizar el entrenamiento y luego implementar el modelo para la inferencia. Como sistema de servicio en la nube , SINGA-Auto administra los recursos de hardware, la recuperación de fallas, etc. Para facilitar su uso, proporciona un zoológico de modelos, que es un conjunto de modelos de aprendizaje automático integrados para tareas populares como análisis de datos estructurados (por ejemplo, datos EMR), reconocimiento de imágenes y procesamiento de texto.
En el servicio de entrenamiento, se propone un marco general para el ajuste distribuido de hiperparámetros y se diseña un esquema de ajuste colaborativo específicamente para modelos de aprendizaje profundo. En el servicio de inferencia, se propone un algoritmo de programación basado en aprendizaje de refuerzo para optimizar la precisión general y reducir la latencia. Puede adaptarse a los cambios en las tasas de solicitudes.
SINGA-Easy [6] (ACM Multimedia 2021) es un marco de aprendizaje profundo fácil de usar creado como un componente de Apache SINGA para facilitar la adopción de algoritmos de aprendizaje profundo y servicios de inferencia por parte de usuarios de aplicaciones de dominio específico (por ejemplo, multimedia, análisis de imágenes médicas). Proporciona un ajuste de hiperparámetros distribuido en la etapa de entrenamiento, un control dinámico de costos computacionales en la etapa de inferencia e interacciones intuitivas del usuario con contenido multimedia facilitadas por la explicación del modelo. Para mejorar la precisión, admite métodos de regularización para regularizaciones de imágenes y datos estructurados (ACM SIGMOD 2023). Para respaldar la aceptación de los usuarios del dominio sobre los resultados del entrenamiento, SINGA-Easy brinda una opción para que los usuarios evalúen el rendimiento del modelo desde la perspectiva de la explicación del modelo basada en LIME [7] y Grad-CAM. [8]
MLCask [9] (IEEE ICDE 2021) es un subsistema de gestión de pipelines que gestiona pipelines de aprendizaje automático, desde la limpieza de datos hasta el análisis de datos, para facilitar el mantenimiento de la evolución y el control de versiones de pipelines de aprendizaje automático para el análisis colaborativo. Sirve para reducir el coste y facilitar la adopción. MLCask admite una gestión del ciclo de vida de ML de extremo a extremo similar a Git. Al aprovechar el historial de versiones de los componentes y el espacio de trabajo de pipeline, MLCask puede omitir los pasos de preprocesamiento sin cambios para abordar los desafíos frecuentes de reentrenamiento. Su semántica de control de versiones no lineal y la operación de fusión facilitan el desarrollo colaborativo eficaz de la pipeline.
A partir de la versión 4.1.0, Apache SINGA ofrece compatibilidad con la selección e inferencia de modelos en bases de datos en PostgreSQL. El sistema implementa un algoritmo de selección de modelos de dos fases que hace un uso eficiente de los recursos e incorpora técnicas de selección de modelos tanto con entrenamiento como sin entrenamiento. Este algoritmo de selección de modelos se integra de forma no intrusiva en PostgreSQL a través de procedimientos almacenados con optimizaciones en la latencia de ejecución y el consumo de memoria. La inclusión de la selección de modelos en bases de datos permite a los usuarios obtener modelos de alto rendimiento dentro de los requisitos de tiempo de respuesta especificados.
Apache SINGA [10] se utiliza en organizaciones como 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 y otras. Apache SINGA se utiliza en aplicaciones de banca, educación, finanzas, atención médica, bienes raíces, desarrollo de software y otras categorías.
El Hospital General Ng Teng Fong [12] colaboró con el equipo Apache SINGA para desarrollar una aplicación para personas diagnosticadas con prediabetes, una condición en la que los niveles de glucosa en sangre son más altos de lo normal, pero no lo suficientemente altos como para ser clasificados como diabetes.
La aplicación, llamada JurongHealth Food Log (JHFoodLg), utiliza Apache SINGA para hacer coincidir las fotos de los alimentos con una base de datos de platos locales (incluidos nasi padang , laksa y arroz char siew ) y utiliza datos nutricionales de la Junta de Promoción de la Salud, JurongHealth Campus y la Base de Datos Australiana de Alimentos y Nutrientes. Después de una limpieza exhaustiva de los datos (por ejemplo, formato uniforme, eliminación de duplicados , clasificación de alimentos, calibración humana), la base de datos contiene 209.861 imágenes, que abarcan 13 grupos de alimentos y 233 categorías de alimentos.
La aplicación permite a los usuarios del programa de intervención en el estilo de vida (Liven) del hospital establecer objetivos de pérdida de peso y ejercicio. Un estudio de seis meses muestra que casi todos los 20 pacientes que usaron la aplicación perdieron entre el 4 y el 5 por ciento de su peso corporal inicial.