Avec Apache PredictionIO, la Fondation Apache vient d’ajouter un nouveau projet apprentissage machine à sa liste. Il s’agit en fait d’une version open-source d'un projet initialement conçu par une filiale de Salesforce. Apache PredictionIO, qui repose au sommet de Spark et Hadoop, exploite les prédictions fournies par Spark à partir des données analysées par les modèles personnalisables pour les tâches courantes. Les applications envoient des données au serveur d'événements de PredictionIO pour former un modèle, puis interrogent le moteur pour extrapoler des prédictions basées sur le modèle.

Spark, MLlib, HBase, spray, et Elasticsearch - tous livrés avec PredictionIO -, et Apache, proposent des SDK pour travailler en Java, php, Python et Ruby. Les données peuvent être stockées dans une variété de back-end : JDBC, Elasticsearch, HBase, HDFS, et leurs systèmes de fichiers locaux, sont tous pris en charge hors de la base. Et un développeur peut même créer un connecteur back-end personnalisé si besoin.

Comment les modèles PredictionIO exploitent Spark

L'avantage le plus notable de PredictionIO est son système de modèles pour créer des moteurs d'apprentissage machine. L’utilisations des modèles réduit considérablement la mise en place des algorithmes pour exploiter les prédictions de Spark. Ils décrivent toutes les dépendances tierces qui pourraient être nécessaires pour la tâche, tel que le framework d'application d'apprentissage Mahout d'Apache.

Certains modèles existants incluent un moteur de recommandation universel, un index textuel, un template Survival Regression (pour les prédictions d’échecs), l'étiquetage des rubriques utilisant Wikipédia comme base de connaissances, ainsi qu'une analyse des similarités.

Traitement en parallèle pour les lots

Certains modèles s'intègrent également à d'autres produits d'apprentissage machine. Par exemple, deux des modèles de prédiction actuellement dans la liste des extensions de PredictionIO - pour le calcul des taux d'attrition et les recommandations générales -, utilisent les instructions H2O.ai’s Sparkling Water pour Spark.

PredictionIO peut également évaluer automatiquement un moteur de prédiction pour déterminer les meilleurs paramètres à utiliser. Le développeur a toujours besoin de choisir et de définir des paramètres pour la façon de le faire, mais il y a généralement moins de travail que lors d’un réglage à la main. Lors de l'exécution en tant que service, PredictionIO peut accepter les prédictions individuellement ou par lots. Les prédictions par lots sont automatiquement traitées en parallèle sur un cluster Spark, à condition que les algorithmes utilisés dans le travail de prédictions par lot soient tous sérialisables (les algorithmes par défaut de PredictionIO le sont).