web-dev-qa-db-fra.com

Options de déploiement de modèles R en production

Il ne semble pas y avoir trop d'options pour le déploiement de modèles prédictifs en production, ce qui est surprenant compte tenu de l'explosion du Big Data. 

Je comprends que le PMML open source peut être utilisé pour exporter des modèles en tant que spécification XML. Ceci peut ensuite être utilisé pour le scoring/prédiction dans la base de données. Cependant, il semble que pour que cela fonctionne, vous devez utiliser le plug-in PMML de Zementis, ce qui signifie que la solution n'est pas vraiment open source. Existe-t-il un moyen plus simple de mapper PMML vers SQL pour le scoring?

Une autre option consisterait à utiliser JSON au lieu de XML pour générer des prédictions de modèle. Mais dans ce cas, où se situerait le modèle R? Je suppose que cela doit toujours être mappé sur SQL ... sauf si le modèle R peut rester sur le même serveur que les données puis s'exécuter sur ces données entrantes à l'aide d'un script R?

Y a-t-il d'autres options? 

34
Cybernetic

La réponse dépend vraiment de votre environnement de production. 

Si vos "données volumineuses" sont sur Hadoop, vous pouvez essayer ce "moteur de scoring" relativement nouveau à source ouverte PMML appelé Pattern .

Sinon, vous n'avez pas d'autre choix (à moins d'écrire du code personnalisé spécifique au modèle) que d'exécuter R sur votre serveur. Vous utiliseriez save pour enregistrer vos modèles ajustés dans des fichiers .RData, puis load et exécuter predict correspondant sur le serveur. (Cela risque d'être lent, mais vous pouvez toujours essayer de lancer plus de matériel.)

Cela dépend vraiment de votre plate-forme. Il existe généralement un moyen d'ajouter des fonctions "personnalisées" écrites en R. Le terme est UDF (fonction définie par l'utilisateur). Dans Hadoop, vous pouvez ajouter de telles fonctions à Pig (par exemple https://github.com/cd-wood/pigaddons ) ou vous pouvez utiliser RHadoop pour écrire un code simple permettant de réduire le nombre de cartes chargeant le modèle. et appelez predict dans R. Si vos données sont dans Hive, vous pouvez utiliser Hive TRANSFORM pour appeler un script R externe.

Il existe également des méthodes propres au fournisseur pour ajouter des fonctions écrites en R à diverses bases de données SQL. Encore une fois, cherchez UDF dans la documentation. Par exemple, PostgreSQL a PL/R .

14
Alex Vorobiev

Vous trouverez ci-dessous une liste des solutions proposées jusqu'à présent pour déployer un modèle R en production. Veuillez noter que le flux de travail pour utiliser ces produits varie considérablement entre eux, mais ils sont tous orientés de manière à faciliter l’exposition d’un modèle R formé en tant que service:

19
leo9r

Vous pouvez créer des API RESTful pour vos scripts R à l'aide de plombier ( https://github.com/trestletech/plumber ).

J'ai écrit un billet de blog à ce sujet ( http://www.knowru.com/blog/how-create-restful-api-for-machine-learning-credit-model-in-r/ ) en utilisant le crédit de déploiement. modèles à titre d'exemple.

En général, je ne recommande pas PMML, car les packages que vous avez utilisés risquent de ne pas prendre en charge la traduction en PMML.

6
Ken Park

Une pratique courante consiste à analyser un jeu de données nouveau/mis à jour dans R et à ne transférer que les résultats (ID, scores, probabilités, autres champs nécessaires) dans l'environnement de production/entrepôt de données.

Je sais que cela a ses limites (mises à jour peu fréquentes, utilisation de l'informatique, taille des ensembles de données/restrictions de la puissance de calcul) et peut ne pas être la réponse de pointe que beaucoup (de vos patrons) recherchent; mais pour de nombreux cas d'utilisation, cela fonctionne bien (et coûte cher!).

1
Mark

Elise de Yhat ici. 

Comme @Ramnath et @ leo9r mentionnés, notre logiciel vous permet de mettre n'importe quel modèle R (ou Python d'ailleurs) directement en production via des points de terminaison d'API REST. 

Nous traitons en temps réel ou par lots, ainsi que tous les tests de modèle et les versions + la gestion des systèmes associés au processus.

Cette étude de cas nous avons co-écrit avec VIA SMS peut être utile si vous réfléchissez à la mise en production de modèles R (leur équipe de science des données s'est recodée dans PHP avant d’utiliser Yhat). 

À votre santé! 

1
Elise Breda