Apache Mahout - Apache Mahout

Apache Mahout
Apache Mahout logo.svg
Desarrollador (es) Fundación de software Apache
Versión inicial 7 de abril de 2009 ; Hace 12 años ( 2009-04-07 )
Lanzamiento estable
14.1 / 7 de octubre de 2020 ; Hace 12 meses ( 07/10/2020 )
Repositorio Repositorio Mahout
Escrito en Java , Scala
Sistema operativo Multiplataforma
Escribe Aprendizaje automático
Licencia Licencia Apache 2.0
Sitio web mahout .apache .org

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 . 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.

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 dot ksi) * (s_q cross 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 mejorar la velocidad, se agregaron "solucionadores nativos" que mueven en el núcleo y, por extensión, las operaciones BLAS distribuidas fuera de la JVM, descargándose a la memoria fuera del montón o GPU para su procesamiento a través de múltiples CPU y / o núcleos de CPU, o GPU cuando construido contra la biblioteca ViennaCL. "Extensió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". El entorno consta de un optimizador algebraico independiente de 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 . La compatibilidad con los algoritmos MapReduce comenzó a eliminarse gradualmente en 2014.

Historial de versiones

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 2017-04-17
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ć.

Referencias

enlaces externos