Apache Mahout
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. Mahout también proporciona bibliotecas Java/Scala para operaciones matemáticas comunes y colecciones primitivas de Java. Mahout es un trabajo en progreso; Se han implementado una serie de algoritmos.
From Wikipedia, the free encyclopedia
| 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 | ||
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.
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.