Pregunta Opciones para implementar modelos R en producción


No parece haber demasiadas opciones para implementar modelos predictivos en la producción, lo cual es sorprendente dada la explosión en Big Data.

Entiendo que el PMML de código abierto se puede usar para exportar modelos como una especificación XML. Esto se puede usar para la puntuación / predicción en la base de datos. Sin embargo, parece que para hacer esto, necesitas usar el plugin PMML de Zementis, lo que significa que la solución no es realmente de código abierto. ¿Hay alguna manera más fácil de asociar PMML a SQL para la puntuación?

Otra opción sería usar JSON en lugar de XML para generar predicciones del modelo. Pero en este caso, ¿dónde estaría el modelo R? Supongo que siempre tendrá que estar mapeado en SQL ... a menos que el modelo R pueda estar en el mismo servidor que los datos y luego correr contra los datos entrantes con un guión R?

Alguna otra opción?


32
2018-03-10 19:15


origen


Respuestas:


La respuesta realmente depende de cuál sea su entorno de producción.

Si sus "grandes datos" están en Hadoop, puede probar este relativamente nuevo motor de calificación de PMML de código abierto llamado Patrón.

De lo contrario, no tiene otra opción (salvo escribir código personalizado específico del modelo), sino ejecutar R en su servidor. Utilizarías save para guardar sus modelos ajustados en archivos .RData y luego load y ejecuta el correspondiente predict en el servidor. (Eso seguramente será lento, pero siempre puedes probar y lanzarle más hardware).

Cómo lo haces realmente depende de tu plataforma. Por lo general, hay una forma de agregar funciones "personalizadas" escritas en R. El término es UDF (función definida por el usuario). En Hadoop puede agregar tales funciones a Pig (p. https://github.com/cd-wood/pigaddons) o puedes usar RHadoop para escribir código simple map-reduce que cargaría el modelo y llamaría predict en R. Si sus datos están en Hive, puede usar Colmena TRANSFORMACIÓN para llamar guión R externo.

También hay formas específicas de proveedores para agregar funciones escritas en R a varias bases de datos SQL. Nuevamente busque UDF en la documentación. Por ejemplo, PostgreSQL tiene PL / R.


13
2018-03-11 01:09



La siguiente es una lista de las alternativas que he encontrado hasta ahora para implementar un modelo R en producción. Tenga en cuenta que el flujo de trabajo para usar estos productos varía significativamente entre ellos, pero de alguna manera están orientados a facilitar el proceso de exposición de un modelo R entrenado como un servicio:


19
2017-11-23 19:59



Puede crear API RESTful para sus scripts R utilizando fontanero (https://github.com/trestletech/plumber)

Escribí una publicación en el blog sobre eso (http://www.knowru.com/blog/how-create-restful-api-for-machine-learning-credit-model-in-r/) utilizando la implementación de modelos de crédito como ejemplo.

En general, no recomiendo PMML porque los paquetes que usó podrían no ser compatibles con la traducción a PMML.


6
2018-03-02 21:25



Una práctica común es anotar un conjunto de datos nuevo / actualizado en R y mover solo los resultados (ID, puntajes, probabilidades, otros campos necesarios) al entorno de producción / almacén de datos.

Sé que esto tiene sus limitaciones (actualizaciones poco frecuentes, confianza en TI, restricciones en el tamaño del conjunto de datos / potencia de computación) y puede no ser la respuesta de vanguardia que muchos (de sus jefes) están buscando; pero para muchos casos de uso, esto funciona bien (¡y es económico!).


1
2017-11-16 14:57



Elise de Yhat aquí.

Como se mencionó en @Ramnath y @ leo9r, nuestro software le permite poner cualquier modelo R (o Python, para el caso) directamente en producción a través de puntos finales REST API.

Manejamos en tiempo real o por lotes, así como también todas las pruebas de modelo y control de versiones + sistemas asociados con el proceso.

Esta caso de estudio Nosotros co-autorizamos con VIA SMS podría ser útil si está pensando en cómo hacer que los modelos R entren en producción (su equipo de ciencia de datos estaba recodificando en PHP antes de usar Yhat).

¡Aclamaciones!


0
2017-10-06 17:08