Apache SINGA es un proyecto de alto nivel de Apache para el desarrollo de una biblioteca de aprendizaje automático de código abierto . Proporciona una arquitectura flexible para el entrenamiento distribuido escalable, es extensible para ejecutarse en una amplia gama de hardware y se centra en aplicaciones para el sector sanitario.
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 el análisis de datos a gran escala .
Historia
El proyecto SINGA fue iniciado por el DB System Group de la Universidad Nacional de Singapur y el grupo de bases de datos de la Universidad de Zhejiang en 2014, con el fin de soportar 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 mediante la partición del modelo y los datos en nodos en un clúster y la paralelización del entrenamiento. [ 3 ] [ 4 ] El prototipo fue aceptado por Apache Incubator en marzo de 2015 y se graduó como un proyecto de nivel superior en octubre de 2019. La tabla a continuación 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 reciben mantenimiento y versiones antiguas.
Pila de software
La pila de software de SINGA incluye tres componentes principales: núcleo, E/S y modelo. La siguiente figura ilustra estos componentes junto con el hardware. El componente de núcleo proporciona gestión de memoria y operaciones tensoriales ; E/S cuenta con clases para leer (y escribir) datos desde (hacia) el disco y la red; el componente de 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/funciones de pérdida para modelos generales de aprendizaje automático.

SINGA-Auto
SINGA-Auto (también conocido como Rafiki [ 5 ] en VLDB2018) es un subsistema de Apache SINGA que proporciona el servicio de entrenamiento e inferencia de modelos de aprendizaje automático. SINGA-Auto libera a los usuarios de la necesidad de construir los modelos de aprendizaje automático, ajustar los hiperparámetros y optimizar la precisión y la velocidad de predicción. Los usuarios simplemente pueden 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 gestiona los recursos de hardware, la recuperación ante fallos, etc. Para facilitar su uso, proporciona un repositorio de modelos, que es un conjunto de modelos de aprendizaje automático integrados para tareas comunes como el análisis de datos estructurados (por ejemplo, datos de registros médicos electrónicos), el reconocimiento de imágenes y el procesamiento de texto.
En el servicio de entrenamiento, se propone un marco general para la optimización distribuida de hiperparámetros y se diseña un esquema de optimización colaborativa específicamente para modelos de aprendizaje profundo. En el servicio de inferencia, se propone un algoritmo de planificación basado en aprendizaje por refuerzo para optimizar la precisión general y reducir la latencia. Este algoritmo puede adaptarse a las variaciones en la frecuencia de las solicitudes.
SINGA-Fácil
SINGA-Easy [ 6 ] (ACM Multimedia 2021) es un marco de aprendizaje profundo fácil de usar, integrado en 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íficas (por ejemplo, multimedia, análisis de imágenes médicas). Proporciona ajuste distribuido de hiperparámetros en la etapa de entrenamiento, control dinámico del costo computacional 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 imágenes y datos estructurados (ACM SIGMOD 2023). Para apoyar la aceptación de los resultados del entrenamiento por parte de los usuarios del dominio, SINGA-Easy ofrece la opción de evaluar el rendimiento del modelo desde la perspectiva de la explicación del modelo, basada en LIME [ 7 ] y Grad-CAM. [ 8 ]
MLCask
MLCask [ 9 ] (IEEE ICDE 2021) es un subsistema de gestión de pipelines que administra pipelines de aprendizaje automático, desde la limpieza de datos hasta el análisis de datos, para facilitar el mantenimiento y el versionado de pipelines de aprendizaje automático en evolución para el análisis colaborativo. Su objetivo es reducir los costos y facilitar la adopción. MLCask admite una gestión integral del ciclo de vida del aprendizaje automático similar a Git. Al aprovechar el historial de versiones de los componentes del pipeline y el espacio de trabajo, MLCask puede omitir los pasos de preprocesamiento sin cambios para abordar los frecuentes desafíos del reentrenamiento. Su semántica de control de versiones no lineal y la operación de fusión facilitan el desarrollo colaborativo efectivo del pipeline.
Selección de modelos en la base de datos
A partir de la versión 4.1.0, Apache SINGA ofrece soporte para la selección e inferencia de modelos en la base de datos PostgreSQL. El sistema implementa un algoritmo de selección de modelos de dos fases, eficiente en recursos, que incorpora técnicas de selección de modelos tanto sin entrenamiento como con entrenamiento. Este algoritmo se integra de forma no intrusiva en PostgreSQL mediante 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 la base de datos permite a los usuarios obtener modelos de alto rendimiento dentro de los plazos de respuesta especificados.
Aplicaciones
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.
Apache SINGA y el bien social
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, denominada JurongHealth Food Log (JHFoodLg), utiliza Apache SINGA para cotejar fotografías de alimentos con una base de datos de platos locales, como nasi padang , laksa y arroz char siew . Además, utiliza datos nutricionales del Consejo de Promoción de la Salud, el Campus JurongHealth y la Base de Datos Australiana de Alimentos y Nutrientes. Tras una exhaustiva limpieza de datos (por ejemplo, formato uniforme, eliminación de duplicados , clasificación de calidad alimentaria y calibración manual), 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 utilizaron la aplicación perdieron entre un 4 y un 5 por ciento de su peso corporal inicial.
Véase también
Referencias
- ↑ "Premio SIGMOD Systems" .
- ↑ Wei, Wang; Meihui, Zhang; Gang, Chen; HV, Jagadish; Beng Chin, Ooi; Kian-Lee, Tan (junio de 2016). "Database Meets Deep Learning: Challenges and Opportunities". SIGMOD Record . 45 (2): 17– 22. arXiv : 1906.08986 . doi : 10.1145/3003665.3003669 . S2CID 6526411 .
- ^ Ooi, Beng Chin; Tan, Kian-Lee; Sheng, Wang; Wang, Wei; Cai, Qingchao; Chen, pandilla; Gao, Jinyang; Luo, Zhaojing; Tung, Anthony KH; Wang, Yuan; Xie, Zhongle; Zhang, Meihui; Zheng, Kaiping (2015). "SINGA: una plataforma distribuida de aprendizaje profundo" (PDF) . Actas de la 23ª conferencia internacional ACM sobre multimedia . MM '15. págs. 685– 688. doi : 10.1145/2733373.2807410 . ISBN 978-1-4503-3459-4. S2CID 1840240 . Consultado el 8 de septiembre de 2016 .
- ↑ Wei, Wang; Chen, Gang; Anh Dinh, Tien Tuan; Gao, Jinyang; Ooi, Beng Chin; Tan, Kian-Lee; Sheng, Wang (2015). "SINGA: Poniendo el aprendizaje profundo en manos de los usuarios multimedia" (PDF) . Actas de la 23.ª conferencia internacional ACM sobre multimedia . MM '15. págs. 25–34 . doi : 10.1145/2733373.2806232 . ISBN 978-1-4503-3459-4. S2CID 7169465 . Consultado el 8 de septiembre de 2016 .
- ↑ Wang, Wei; Gao, Jinyang; Zhang, Meihui; Sheng, Wang; Chen, Gang; Khim Ng, Teck; Ooi, Beng Chin; Shao, Jie; Reyad, Moaz (2018). "Rafiki: Machine Learning as an Analytics Service System" (PDF) . Actas de la Fundación VLDB . 12 (2): 128– 140. arXiv : 1804.06087 . Bibcode : 2018arXiv180406087W . doi : 10.14778/3282495.3282499 . S2CID 4898729. Recuperado el 9 de enero de 2019 .
- ↑ Xing, Naili; Yeung, Sai Ho; Cai, Chenghao; Ng, Teck Khim; Wang, Wei; Yang, Kaiyuan; Yang, Nan; Zhang, Meihui; Chen, Gang; Ooi, Beng Chin (2021). "SINGA-Easy: Un marco de trabajo fácil de usar para el análisis multimodal" (PDF) . Actas de la 29.ª conferencia internacional ACM sobre multimedia . págs. 1293–1302 . doi : 10.1145/3474085.3475176 . ISBN 978-1-4503-8651-7Consultado el 17 de octubre de 2021 .
- ↑ Ribeiro, Marco Tulio; Singh, Sameer; Guestrín, Carlos (2017). "«¿Por qué debería confiar en ti?»: Explicando las predicciones de cualquier clasificador (PDF) . Actas de la 22.ª conferencia internacional ACM SIGKDD sobre descubrimiento de conocimiento y minería de datos . KDD '16. págs. 97–101 . arXiv : 1602.04938 . doi : 10.1145/2939672.2939778 . ISBN 978-1-4503-4232-2Consultado el 1 de agosto de 2016 .
- ↑ Selvaraju, Ramprasaath R.; Cogswell, Michael; Das, Abhishek; Vedantam, Ramakrishna; Parikh, Devi; Batra, Dhruv (2017). "Grad-CAM: Explicaciones visuales de redes neuronales profundas mediante localización basada en gradientes" (PDF) . Conferencia Internacional IEEE de Visión por Computadora (ICCV) de 2017. págs. 618–626 . arXiv : 1610.02391 . doi : 10.1109/ICCV.2017.74 . ISBN 978-1-5386-1032-9.
- ↑ Luo, Zhaojing; Yeung, Sai Ho; Zhang, Meihui; Zheng, Kaiping; Zhu, Lei; Chen, Gang; Fan, Feiyi; Lin, Qian; Ngiam, Kee Yuan; Ooi, Beng Chin (2021). "MLCask: Gestión eficiente de la evolución de componentes en pipelines de análisis de datos colaborativos". 2021 IEEE 37.ª Conferencia Internacional sobre Ingeniería de Datos (ICDE) . págs. 1655–1666 . arXiv : 2010.10246 . doi : 10.1109/ICDE51399.2021.00146 . ISBN 978-1-7281-9184-3. S2CID 224802796 .
- ↑ "LA FUNDACIÓN DE SOFTWARE APACHE ANUNCIA APACHE SINGA COMO UN PROYECTO DE ALTO NIVEL" . news.apache.org . 4 de noviembre de 2019. Consultado el 4 de noviembre de 2019 .
- ↑网易 (2 de junio de 2017). "网易携手Apache SINGA角逐人工智能新战场_网易科技" . tech.163.com . Consultado el 3 de junio de 2017 .
- ↑ "Nueva aplicación permite a los prediabéticos usar fotos de sus comidas para comprobar si son saludables" . The Straits Times . 24 de enero de 2019. Consultado el 6 de abril de 2019 .
Enlaces externos
- Sitio web oficial
- Proyectos de la Apache Software Foundation
- Software de aprendizaje profundo
- Software libre programado en C++
- Software libre programado en Python
- Software libre multiplataforma
- Software gratuito para Linux
- Software gratuito para Windows
- Software gratuito para macOS
- Software que utiliza la licencia Apache.