Apache Mahout es un proyecto de Apache Software Foundation para producir implementaciones gratuitas de algoritmos de aprendizaje automático distribuidos o escalables centrados principalmente en el álgebra lineal . En el pasado, muchas de las implementaciones usaban la plataforma Apache Hadoop , sin embargo, hoy se enfoca principalmente en Apache Spark . [3] [4] Mahout también proporciona bibliotecas Java / Scala para operaciones matemáticas comunes (centradas en álgebra lineal y estadísticas) y colecciones Java primitivas. Mahout es un trabajo en progreso; Se han implementado varios algoritmos. [5]
Desarrollador (es) | Fundación de software Apache |
---|---|
Versión inicial | 7 de abril de 2009 [1] |
Lanzamiento estable | 14.1 / 7 de octubre de 2020 [2] |
Repositorio | Repositorio Mahout |
Escrito en | Java , Scala |
Sistema operativo | Multiplataforma |
Tipo | Aprendizaje automático |
Licencia | Licencia Apache 2.0 |
Sitio web | mahout |
Características
Samsara
Apache Mahout-Samsara se refiere a un lenguaje específico de dominio de Scala (DSL) que permite a los usuarios utilizar una sintaxis similar a R en lugar de la sintaxis tradicional similar a Scala. Esto permite al usuario expresar algoritmos de forma concisa y clara.
val G = B % *% B . t - C - C . t + ( ksi punto ksi ) * ( s_q cruzar s_q )
Backend agnóstico
El código de Apache Mahout abstrae el lenguaje específico del dominio del motor donde se ejecuta el código. Si bien el desarrollo activo se realiza con el motor Apache Spark, los usuarios son libres de implementar cualquier motor que elijan: H2O y Apache Flink se han implementado en el pasado y existen ejemplos en la base de código.
Aceleradores de GPU / CPU
La JVM tiene un cálculo notoriamente lento, para resolver este problema se agregaron "solucionadores nativos" que mueven dentro del núcleo y, por extensión, las operaciones BLAS distribuidas fuera de la JVM, descargándolas a la memoria fuera del montón o GPU para su procesamiento mediante múltiples CPU / o núcleos de CPU o GPU cuando se compilan contra la biblioteca ViennaCL. [6] "Ampliación de Mahout Samsara a clústeres de GPU" .. ViennaCL es una biblioteca C ++ altamente optimizada con operaciones BLAS implementadas en OpenMP y OpenCL. A partir de la versión 14.1, la compilación de OpenMP se considera estable, dejando la compilación de OpenCL todavía en su fase POC experimental.
Recomendadores
Apache Mahout presenta implementaciones de mínimos cuadrados alternos, co-ocurrencia y co-ocurrencia correlacionada, un algoritmo de recomendación exclusivo de Mahout que extiende la co-ocurrencia para ser utilizado en múltiples dimensiones de datos.
Historia
Transición de Map Reduce a Apache Spark
Si bien los algoritmos centrales de Mahout para la agrupación en clústeres , la clasificación y el filtrado colaborativo basado en lotes se implementaron sobre Apache Hadoop utilizando el paradigma de mapa / reducción , no restringió las contribuciones a las implementaciones basadas en Hadoop. También se agradecieron las contribuciones que se ejecutan en un solo nodo o en un clúster que no es de Hadoop. Por ejemplo, el componente de recomendación de filtrado colaborativo 'Taste' de Mahout era originalmente un proyecto separado y se puede ejecutar de forma independiente sin Hadoop.
A partir de la versión 0.10.0, el proyecto cambió su enfoque a la construcción de un entorno de programación independiente del backend, llamado en código "Samsara". [7] [8] [9] El entorno consiste en un optimizador algebraico independiente del backend y un Scala DSL algebraico que unifica operadores algebraicos distribuidos y en memoria. Las plataformas algebraicas compatibles son Apache Spark , H2O y Apache Flink . [ cita requerida ] La compatibilidad con los algoritmos MapReduce comenzó a eliminarse gradualmente en 2014. [10]
Historial de versiones
Versión | Fecha de lanzamiento | Notas |
---|---|---|
0,1 | 2009-04-07 | |
0,2 | 2009-11-18 | |
0,3 | 2010-03-17 | |
0.4 | 2010-10-31 | |
0,5 | 2011-05-27 | |
0,6 | 2012-02-06 | |
0,7 | 2012-05-16 | |
0,8 | 2013-07-25 | |
0,9 | 2014-02-01 | |
0.10.0 | 2015-04-11 | Samsara DSL |
0.10.1 | 2015-05-31 | |
0.10.2 | 2015-08-06 | |
0.11.0 | 2015-08-07 | |
0.11.1 | 2015-11-06 | |
0.11.2 | 2016-03-11 | |
0.12.0 | 2016-04-11 | Se agregó el motor Apache Flink |
0.12.1 | 2016-05-19 | |
0.12.2 | 2016-06-13 | |
0.13.0 | 2018-05-04 | |
0.14.0 | 2019-03-07 | Solo fuente (sin binarios) |
14,1 | 2020-10-07 |
Desarrolladores
Apache Mahout es desarrollado por una comunidad. El proyecto es administrado por un grupo llamado "Comité de Gestión de Proyectos" (PMC). El PMC actual es Andrew Musselman, Andrew Palumbo, Drew Farris, Isabel Drost-Fromm, Jake Mannix, Pat Ferrel, Paritosh Ranjan, Trevor Grant, Robin Anil, Sebastian Schelter, Stevo Slavić. [11]
Referencias
- ^ "Apache Mahout: Primera versión 0.1 lanzada" .
- ^ "Apache Mahout: aprendizaje automático escalable y minería de datos" . Consultado el 6 de marzo de 2019 .
- ^ "Presentación de Apache Mahout" . ibm.com . 2011 . Consultado el 13 de septiembre de 2011 .
- ^ "InfoQ: Apache Mahout: algoritmos de aprendizaje automático altamente escalables" . infoq.com . 2011 . Consultado el 13 de septiembre de 2011 .
- ^ "Algoritmos - Apache Mahout - Apache Software Foundation" . cwiki.apache.org . 2011 . Consultado el 13 de septiembre de 2011 .
- ^ "ViennaCL" .
- ^ "Referencia DSL de álgebra lineal en el núcleo de Mahout-Samsara" .
- ^ "Referencia de DSL de álgebra lineal distribuida de Mahout-Samsara" .
- ^ "Mahout 0.10.x: primer lanzamiento de Mahout como entorno de programación" . www.weatheringthroughtechdays.com . Archivado desde el original el 9 de octubre de 2016 . Consultado el 29 de febrero de 2016 .
- ^ "MAHOUT-1510 (" Adiós MapReduce ")" .
- ^ https://projects.apache.org/committee.html?mahout
enlaces externos
- Página web oficial