BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Pattern un DSL d'Apprentissage Automatique pour Hadoop, annoncé par Concurrent Inc.

Pattern un DSL d'Apprentissage Automatique pour Hadoop, annoncé par Concurrent Inc.

Favoris

Cascading est un framework populaire, un Pattern Language pour créer des workflows sur des données. Cascading permet aux utilisateurs de définir des suites de traitements complexes et de créer des frameworks avancés orientés données. Ces frameworks peuvent être utilisés comme des Langages Dédiés (DSL - Domain Specific languages) pour créer des scripts.

Le dernier ajout aux extensions Cascading est Pattern, un nouveau DSL d'apprentissage automatique combinant la puissance de PMML - un langage de balisage basé sur XML développé par le Data Mining Group (DMG) pour fournir aux applications un moyen de définir des modèles liés à l'analyse prédictive et au data mining, et de partager ces modèles entre des applications compatibles avec PMML et des workflows basés sur Hadoop. Le but de Pattern est de fournir une plateforme d'exécution commune pour de nombreux frameworks d'analyse populaires, comme SAS, R, Microstrategy, Oracle etc... qui permettent l'export de modèles prédictifs en PMML.

Pour Cascading :

Pattern implémente des algorithmes distribués à grande echelle dans le contexte de Cascading comme un langage modèle. Il se distingue de R en mettant l'accent sur le développement guidé par les tests (TDD) à l'échelle tout en adoptant les principes de Cascading tels que "échouer de la même façon deux fois". Par contraste avec SAS, il est open-source sous la licence Apache ASL 2.0 et ses algorithmes s'exécutent efficacement en parallèles sur de grands clusters. Par rapport à Mahout, il implémente des modèles prédictifs qui peuvent tirer partie de ressources autres qu'Hadoop tout en respectant les bonnes pratiques pour l'informatique d'entreprise.

Actuellement, Pattern est supporté sur Hadoop en local et sur le cloud AWS avec la version EMR d'Hadoop.

Les algorithmes d'apprentissage automatique supportés par Pattern incluent :

Des travaux sont en court pour :

InfoQ a eu l'occasion de s'entretenir avec Chris K. Wensel, CTO et fondateur de Concurrent, Inc.

InfoQ: Pouvez-vous définir la différence majeure entre Pattern et Apache Mahout, qui est actuellement une des librairies d'apprentissage automatique les plus populaires ?

Wensel: D'une part, Pattern supporte PMML. C'est à dire que vous pouvez exporter un modèle R en PMML et Pattern va convertir le PMML en application Cascading.
D'autre part, Pattern est basé sur Cascading. Déboguer une application Pattern est donc la même chose que déboguer une application Cascading. Et quand on gère des données à grande échelle, il y a beaucoup de débogage.
Enfin, vous pouvez inclure des tâches Cascading et Lingual (SQL ANSI sur Cascading) dans une application qui utilise vos PMML ou des modèles ML spécifiques créés à la main.
Une seule application pour effectuer l'ETL, le nettoyage des données par SQL, le scoring et l'intégration avec des sources de données distinctes, que vous pouvez fournir aux opérateurs pour mettre en production, avec les tests unitaires, et la sécurité intrinsèque que fournit Cascading. Sérieusement, ça ne peut pas être plus simple que ça. En fait, si, ça peut l'être, mais nous allons annoncer ça plus tard cette année.

InfoQ: Pouvez-vous expliquer plus en détail comment Pattern fonctionne avec R ? Qu'est ce qui va être fait avec R et à quel moment passer à Pattern ?

Wensel: R est très bon pour créer des modèles. Mais R ne marche pas de façon efficace sur Hadoop, mais il supporte PMML, un langage XML standard pour représenter des modèles d'apprentissage automatique complexes. Donc vous exportez votre modèle de R vers PMML, et transférez le PMML à Pattern. De plus, R marche très bien avec le driver JDBC Lingual. Vous pouvez donc récupérer les données d'Hadoop, utiliser Lingual dans R pour tester et créer les modèles. Ici nous avons fermé la boucle. Hadoop -> Lingual -> SQL -> R -> PMML -> Pattern -> Hadoop. Les éléments que vous devez gérer au quotidien sont basés sur Cascading.

InfoQ: Vous mettez l'accent sur la nature TDD de Pattern. Pouvez-vous en dire plus sur le support spécifique de TDD dans Pattern ?

Wensel: Pattern est composé d'un parseur PMML vers Cascading, et un ensemble d'APIs d'apprentissage automatique pour différents types de modèles. Les modèles en eux même peuvent tourner indépendamment d'Hadoop, à la vitesse d'un test JUnit. Ou alors, le PMML peut être lu et les résultats comparés à un ensemble de données connu pour confirmer que les scores sont tels qu'attendus.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT