Apache Mahout
Apache Mahout | ||
---|---|---|
![]() | ||
Información general | ||
Tipo de programa | software libre | |
Desarrollador | Apache Software Foundation | |
Lanzamiento inicial | 31 de mayo de 2011 | |
Licencia | licencia Apache | |
Información técnica | ||
Programado en | Java | |
Plataformas admitidas | máquina virtual Java | |
Enlaces | ||
Sitio web oficial Repositorio de código Seguimiento de errores | ||
[editar datos en Wikidata] |
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 en día se enfoca principalmente en Apache Spark.[1][2] Mahout también proporciona bibliotecas Java/Scala para operaciones matemáticas comunes (centradas en álgebra lineal y estadísticas) y colecciones primitivas de Java. Mahout es un trabajo en progreso; Se han implementado una serie de algoritmos.
Características
Samsara
Apache Mahout-Samsara se refiere a un lenguaje específico de dominio (DSL) de Scala que permite a los usuarios usar la sintaxis R-Like en lugar de la sintaxis tradicional similar a Scala. Esto permite al usuario expresar algoritmos de manera concisa y clara.
val G = B %*% B.t - C - C.t + (ksi dot ksi) * (s_q cross s_q)
Agnóstico de back-end
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 implementaron en el pasado y existen ejemplos en la base del código.
Aceleradores GPU/CPU
La JVM tiene un cálculo notoriamente lento. Para mejorar la velocidad, se agregaron "solucionadores nativos" que mueven operaciones de BLAS en el núcleo y, por extensión, distribuidas fuera de la JVM, descargándolas en memoria GPU o fuera del montón para el procesamiento a través de múltiples CPU y/o núcleos de CPU, o GPU cuando construido contra la biblioteca ViennaCL.[3] ViennaCL es una biblioteca de 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 consideró estable, por lo que la compilación de OpenCL aún se encuentra en su fase POC experimental.
Recomendadores
Apache Mahout presenta implementaciones de Alternating Least Squares, Co-Occurrence y Correlated Co-Occurrence, un algoritmo de recomendación exclusivo de Mahout que extiende la co-ocurrencia para usarse en múltiples dimensiones de datos.
Historia
Transición de Map Reduce a Apache Spark
Si bien los algoritmos centrales de Mahout para el agrupamiento, la clasificación y el filtrado colaborativo basado en lotes se implementaron sobre Apache Hadoop utilizando el paradigma map/reduce, no restringió las contribuciones a las implementaciones basadas en Hadoop. También se recibieron con agrado 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 puede ejecutarse de forma independiente sin Hadoop. A partir de la versión 0.10.0, el proyecto cambió su enfoque para construir un entorno de programación independiente del backend, cuyo nombre en código es "Samsara". El entorno consta de un optimizador algebraico independiente del back-end y un Scala DSL algebraico que unifica operadores algebraicos en memoria y distribuidos. Las plataformas algebraicas admitidas son Apache Spark, H2O y Apache Flink. La compatibilidad con los algoritmos de MapReduce comenzó a eliminarse gradualmente en 2014.[4]
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 | ADSL Samsara |
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 | Añadido 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 del Proyecto" (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ć.[5]
Véase también
- Lista de proyectos de inteligencia artificial
Referencias
- ↑ «Introducing Apache Mahout». ibm.com. 2011. Consultado el 13 de septiembre de 2011.
- ↑ «InfoQ: Apache Mahout: Highly Scalable Machine Learning Algorithms». infoq.com. 2011. Consultado el 13 de septiembre de 2011.
- ↑ «ViennaCL».
- ↑ «MAHOUT-1510 ("Good-bye MapReduce")».
- ↑ «Apache Committee Information».
Datos: Q4778931
Multimedia: Apache Mahout / Q4778931