stringtranslate.com

Mahout apache

Apache Mahout es un proyecto de la 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 utilizan la plataforma Apache Hadoop , sin embargo, hoy en día se centra principalmente en Apache Spark . [3] [4] Mahout también proporciona bibliotecas Java/Scala para operaciones matemáticas comunes (centradas en el álgebra lineal y las estadísticas) y colecciones Java primitivas. Mahout es un trabajo en progreso; se han implementado varios algoritmos. [5]

Características

Samsara

Apache Mahout-Samsara hace referencia a un lenguaje específico de dominio (DSL) de Scala que permite a los usuarios utilizar una sintaxis similar a la de R en lugar de la sintaxis tradicional similar a la de 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 cruz s_q )                 

Agnóstico del backend

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 tienen la libertad 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 una computación notoriamente lenta. Para mejorar la velocidad, se agregaron "solucionadores nativos" que mueven las operaciones BLAS internas y, por extensión, distribuidas fuera de la JVM, descargándolas en memoria fuera del montón o en la GPU para su procesamiento a través de múltiples CPU y/o núcleos de CPU, o GPU cuando se compilan contra la biblioteca ViennaCL. [6] 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, mientras que la compilación de OpenCL aún se encuentra en su fase experimental de prueba de concepto.

Recomendadores

Apache Mahout presenta implementaciones de mínimos cuadrados alternativos, coocurrencia y coocurrencia correlacionada, un algoritmo de recomendación exclusivo de Mahout que extiende la coocurrencia para usarse en múltiples dimensiones de datos.

Historia

Transición de Map Reduce a Apache Spark

Si bien los algoritmos básicos de Mahout para la agrupación , 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 sea Hadoop. Por ejemplo, el componente recomendador de filtrado colaborativo "Taste" de Mahout fue originalmente un proyecto independiente y puede ejecutarse de forma independiente sin Hadoop.

A partir de la versión 0.10.0, el proyecto cambió su enfoque a la creación de un entorno de programación independiente del backend, cuyo nombre en código era "Samsara". [7] [8] [9] El entorno consta de un optimizador algebraico independiente del backend y un DSL algebraico de Scala que unifica operadores algebraicos distribuidos y en memoria. Las plataformas algebraicas compatibles son Apache Spark , H2O y Apache Flink . [ cita requerida ] El soporte para algoritmos MapReduce comenzó a eliminarse gradualmente en 2014. [10]

Historial de versiones

Desarrolladores

Apache Mahout es desarrollado por una comunidad. El proyecto está gestionado por un grupo llamado "Comité de Gestión de Proyectos" (PMC). El PMC actual está formado por Andrew Musselman, Andrew Palumbo, Drew Farris, Isabel Drost-Fromm, Jake Mannix, Pat Ferrel, Paritosh Ranjan, Trevor Grant, Robin Anil, Sebastian Schelter y Stevo Slavić. [11]

Referencias

  1. ^ "Apache Mahout: Primera versión 0.1 lanzada".
  2. ^ "Apache Mahout: aprendizaje automático escalable y minería de datos" . Consultado el 6 de marzo de 2019 .
  3. ^ "Presentación de Apache Mahout". ibm.com . 2011 . Consultado el 13 de septiembre de 2011 .
  4. ^ "InfoQ: Apache Mahout: algoritmos de aprendizaje automático altamente escalables". infoq.com . 2011 . Consultado el 13 de septiembre de 2011 .
  5. ^ "Algoritmos - Apache Mahout - Apache Software Foundation". cwiki.apache.org . 2011. Archivado desde el original el 22 de diciembre de 2013 . Consultado el 13 de septiembre de 2011 .
  6. ^ "Extensión de Mahout Samsara a clústeres de GPU". Archivado desde el original el 3 de noviembre de 2020. Consultado el 29 de octubre de 2020 .
  7. ^ "Referencia DSL de álgebra lineal interna de Mahout-Samsara". Archivado desde el original el 2 de agosto de 2016 . Consultado el 29 de febrero de 2016 .
  8. ^ "Referencia DSL de álgebra lineal distribuida de Mahout-Samsara". Archivado desde el original el 2 de agosto de 2016 . Consultado el 29 de febrero de 2016 .
  9. ^ "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 .
  10. ^ "MAHOUT-1510 ("Adiós MapReduce")".
  11. ^ "Información del Comité Apache".

Enlaces externos