Fin du vrai tueur Google AutoML! Salesforce open source TransmogrifAI

Source: AI ligne de front

thèse 4739 mots lecture recommandée 10 minutes.

Dans cet article, nous présentons flux TransmogrifAI et de discuter les décisions de conception derrière elle.

Alors que l'apprentissage de la machine a fait de grands progrès au cours de la dernière décennie, mais pour construire le système d'apprentissage de la machine prête à la production est encore très difficile. Il y a trois ans, nous avons entrepris de construire un système d'apprentissage automatique pour la plate-forme Salesforce, et ainsi apprendre à construire le système d'apprentissage machine d'entreprise comment il est difficile. Afin de résoudre les problèmes que nous avons rencontrés, nous avons construit TransmogrifAI, une configuration de fin d'apprentissage machine automatisée référentiel de données et ces derniers jours, il sera open source.

Aujourd'hui, la plupart des solutions automatisées de la machine d'apprentissage ou se concentrer uniquement sur une petite partie de la machine globale d'apprentissage de flux de travail, conçu pour des données homogènes ou non structurées, l'image, la voix et des constructions de langage. Mais nous avons besoin d'un moyen pour l'hétérogène à grande échelle modèle de données structurées pour générer rapidement des solutions, TransmogrifAI est une telle solution. Si Texas A & M University récemment AutoKeras open source par rapport à Google AutoML victoire importante en open source, donc avantage TransmogrifAI est plus évidente, peut-être est le vrai AutoML « tueur. »

Lors de la construction d'une machine d'apprentissage comme les produits de consommation, les scientifiques de données mettent souvent l'accent sur certains des cas d'utilisation et des ensembles de données faciles à comprendre. Toutefois, les données et les cas d'utilisation de l'entreprise il y a la diversité, de manière à construire la machine de produits d'entreprise d'apprentissage pour devenir un défi complètement différent. Dans Salesforce, nos clients veulent être en mesure de prédire les résultats d'une série - de la perte de clients, les prévisions de ventes et les clients potentiels à passer à e-mail marketing, achats en ligne, défaillance de l'équipement, les retards de paiement et ainsi de suite. Pour les clients de l'entreprise, de ne pas protéger les données qu'ils partagent avec d'autres organisations ou des concurrents est essentiel. Cela signifie que nous avons à la machine de construction des modèles d'apprentissage spécifiques aux besoins des utilisateurs particuliers. Nous pouvons construire un modèle global, mais cela n'a pas de sens, parce que les données de chaque client est unique, avec des motifs différents, des variations différentes de différentes formes et différents processus d'affaires mis en place. Pour l'apprentissage de la machine peut apporter une réelle valeur ajoutée à nos clients, nous devons construire et déployer des milliers de modèles d'apprentissage de la machine, qui sont différentes pour le cas d'utilisation de chaque client et en fonction des propres dérivés des données de chaque client formation.

Cet objectif, la seule façon d'atteindre sans engager de grandes quantités de données scientifiques est automatisé. Aujourd'hui, la plupart des solutions d'automatisation ML soit se concentrer uniquement sur une petite partie de la machine globale d'apprentissage de flux de travail, conçu pour des données homogènes ou non structurées, l'image, la voix et des constructions de langage. Mais nous avons besoin d'un moyen pour l'hétérogène à grande échelle modèle de données structurées pour générer rapidement des solutions. Dans le dictionnaire, des moyens Transmogrification « à façon surprenante ou magique pour convertir », qui est TransmogrifAI fait des choses Salesforce - laissez l'équipe scientifique de données a été en mesure de convertir les données des clients dans des prévisions significatives. Aujourd'hui, la plate-forme a déployé des milliers de modèles d'apprentissage machine spécifique, chaque jour pour soutenir plus de trois milliards de fois prévu.

Dans cet article, nous présenterons TransmogrifAI flux de travail, discuter des décisions de conception derrière elle.

flux de travail TransmogrifAI

La construction de modèles d'apprentissage machine impliquent généralement un grand nombre de recherche et de développement. Préparation des données, les caractéristiques techniques et la formation de modèle est un processus itératif, pour les automatiser mûrissent, prendre plusieurs semaines ou même des mois.

TransmogrifAI est une construction Scala et SparkML basée sur la bibliothèque, est d'accomplir cette tâche est né. scientifiques données seulement quelques lignes de code pour automatiser le nettoyage des données, les caractéristiques techniques et la sélection de modèles, obtenant ainsi un modèle de haute performance, et une exploration plus poussée et les itérations suivantes.

TransmogrifAI encapsule les cinq principales composantes du processus d'apprentissage de la machine:

Raisonnement Feature

La première étape est généralement conduite d'apprentissage automatique pour la préparation des données. Les scientifiques recueillent toutes les données pertinentes, les données et plat, et des sources de données reliées entre elles différentes, des extraits du signal d'origine peut être utilisé pour la prédiction. Ensuite, le signal extrait est introduit dans une structure de données flexible, communément appelée trame de données. Bien que ces structures de données facile à utiliser, mais ils ne peuvent pas laisser les scientifiques de données des effets des erreurs en aval, telles que des hypothèses erronées sur le type de données ou les valeurs NULL. Par conséquent, les scientifiques de données peuvent exécuter un pipeline dans la nuit, mais a échoué parce qu'elle essayait de multiplier deux cordes.

En TransmogrifAI, nous permettons aux utilisateurs de spécifier leurs modèles de données et extraire automatiquement les variables prédictives d'origine et le signal de réponse en tant que « fonction » afin de résoudre ce problème. Fonction est fortement typé, TransmogrifAI prend également en charge une fonctionnalité riche et évolutive hiérarchie de type. Cette hiérarchie au-delà des types primitifs, le soutien pour le type plus granulaire, tels que l'emplacement, le numéro de téléphone, code postal et ainsi de suite. En plus de permettre à l'utilisateur de spécifier le type d'addition, TransmogrifAI peut déduire le type lui-même. Par exemple, si elle détecte des caractéristiques avec un faible texte de base est en fait des caractéristiques de classification de camouflage, il sera cataloguée et un traitement approprié. Fortement typée fonctionnalité permet aux développeurs de capturer la plupart des erreurs au moment de la compilation plutôt que lors de l'exécution. Ils sont aussi la clé de l'automatisation du pipeline apprentissage automatique en commun un type particulier de traitement.

Transmogrification (automatisation des travaux comprend par exemple)

Bien que la caractéristique forte de l'inférence de type aide beaucoup de données et de minimiser en aval des erreurs, mais finalement toutes les fonctionnalités doivent encore être converties en une représentation numérique, afin d'exposer la régularité des données, de sorte que les algorithmes d'apprentissage machine peuvent facilement utiliser les données. Ce processus est appelé travaux de fonction. Il existe des méthodes innombrables peuvent être utilisés pour convertir le type représenté dans la figure ci-dessus caractéristiques, la méthode de sélection des données correctes est une science et de l'art.

Par exemple, comment les États américains (tels que CA, NY, TX, etc.) sont converties en numérique? Une méthode est un nombre compris entre 1 et 50 et chaque ensemble de mise en correspondance de l'état. Le problème avec cette approche est qu'il ne peut pas conserver les informations relatives à la proximité géographique de l'État. Toutefois, lorsque le comportement d'achat de l'utilisateur analogique, la proximité peut être une caractéristique importante. Nous pouvons essayer une autre méthode consiste à utiliser la distance entre le centre de l'État et les centres des États-Unis. Cela permettra de résoudre le premier problème, mais ne comprend pas encore une information d'état est situé aux États-Unis du nord, au sud, à l'ouest ou à l'est. Ceci est juste une simple caractéristique - imaginer les centaines ou des milliers de fonctionnalités! Ce processus est si difficile parce que la méthode correcte universelle n'existe pas, parce que le succès de la méthode dépend en grande partie sur les questions spécifiques.

Dans lequel un ensemble de différents types de vecteurs automatiquement convertie en numérique, ce qui est l'origine du nom TransmogrifAI. TransmogrifAI fournit un certain nombre de support technique pour tous les types de fonction pris en charge, à partir du numéro de téléphone, adresse e-mail, les données de localisation géographique au texte. TransmogrifAI pas seulement les données dans un format qui peut être utilisé dans l'algorithme, il est optimisé pour la conversion, les algorithmes d'apprentissage machine à plus facile à apprendre à partir des données. Par exemple, il peut convertir les âges des âges pour répondre à une question spécifique - l'âge de l'industrie de la mode peut être différente de gestion de patrimoine âges.

Mais même avec toutes les fonctions ci-dessus, il dispose d'une ingénierie de voyage est toujours pas la fin du voyage. Par conséquent, en plus de fournir par défaut technique, nous avons également mis beaucoup d'énergie, de sorte que l'ingénierie plus facile, des caractéristiques communes afin que les développeurs peuvent personnaliser et étendre les valeurs par défaut.

fonction de vérification automatique

Projet peut comporter la croissance explosive des dimensions de données apparaît. données de grande dimension vont souvent mal! Par exemple, un champ de données particulier peut se produire une dérive et une formation basée sur des modèles dans ces champs de mauvais résultats sur les nouvelles données. Un autre problème (souvent négligé) est que, après la fuite de données ou les préjugés. Lorsque l'information ne semble pas prédire la fuite à l'échantillon de formation dans ce cas se produit. Le résultat est que le modèle semble bon dans la pratique tout à fait inutile. Supposons que nous ayons un ensemble de données contenant des informations sur les transactions, notre tâche est de prédire la transaction intensive. Imaginez ce jeu de données a un champ appelé « montant de la transaction a été réglée », le champ seulement après la fin de la négociation penserait ce domaine est hautement prévisible, parce que toutes les transactions ont été effectuées non-zéro Un algorithme d'apprentissage machine aveugle « montant de la transaction a été réglée. » En fait, la transaction est toujours en cours, le terrain ne sera jamais la valeur, elle conduira à une mauvaise performance des modèles d'apprentissage de la machine! Dans Salesforce, un tel biais de recul est également un problème, car l'inconnu et l'automatisation des processus commerciaux remplissent habituellement la plupart des données du client, il est facile pour les scientifiques données Confondre relation de cause à effet.

Lorsque la fonction au fil du temps et de la dérive, montrant la variance de caractéristique nulle, ou la distribution de prévision dans l'échantillon de formation - TransgmogrifAI fournit des algorithmes peuvent être utilisés pour effectuer des fonctions de vérification automatique, de supprimer des fonctions puissance presque pas prédictive la répartition des caractéristiques sensiblement différentes. Ces algorithmes de traitement peuvent être remplis de biais avec le recul des données de grande dimension et l'inconnu est particulièrement utile. Ils utilisent une série de statistiques de test en fonction du type de fonction, et suivi en utilisant les données de fonction pour détecter et biais défausse.

Sélection automatique du modèle

La dernière étape du processus implique un algorithme d'apprentissage automatique pour préparer une bonne données et construire des modèles prédictifs. Ils peuvent essayer de nombreux algorithmes différents, chaque algorithme a un paramètre de réglage correspondant. Trouver les bons algorithmes et les paramètres peuvent être obtenus un modèle de haute performance.

sélecteur de modèle TransmogrifAI sur les données exécuter plusieurs algorithmes différents d'apprentissage de la machine, et sélectionne automatiquement le meilleur algorithme basé sur l'erreur de validation moyenne. Elle permettra également des données recalibrage est échantillonné et les données prévues pour traiter automatiquement le problème de déséquilibre. Le meilleur et le pire modèle de formation scientifique des données de performance est généralement dérivé écart important, et d'explorer l'espace modèle est essentiel pour éviter de manquer un meilleur modèle pour.

optimisation des paramètres Ultra: Toutes la phase d'optimisation des paramètres de base ci-dessus est terminée. Dans la communauté d'apprentissage de la machine d'aujourd'hui, ultra-paramètre fait référence aux paramètres réglables sur les algorithmes d'apprentissage automatique. Cependant, la réalité est que toutes les étapes ci-dessus avec une variété de paramètres réglementaires importants. Par exemple, dans les caractéristiques de phase d'ingénierie, nous pouvons ajuster le nombre de variables en sortie binaire du facteur prédictif de classification. les données de déséquilibre de traitement cadence d'échantillonnage est un autre paramètre réglable. Réglez tous ces paramètres pour les scientifiques de données peut être un lourd fardeau, mais il peut faire un bon modèle pour creuser l'écart entre les pauvres avec le modèle. C'est pourquoi TransmogrifAI fournit un certain cadre ajuster automatiquement ces paramètres et une super technologie peut être étendue à des techniques de réglage plus avancées.

Dans Salesforce, le temps total nécessaire pour l'automatisation de la formation du modèle a été réduit de semaines et mois à quelques heures. Tous ces ensemble complexe de code est très simple, il suffit de quelques lignes de code peuvent gérer la, sélection de modèle et de vérification dispose d'ingénierie d'automatisation des caractéristiques décrites ci-dessus:

// lecture des données de transaction

val dealData = DataReaders.Simple.csvCase (Path = pathToData) .readDataset (). ToDF ()

// extraction de caractéristiques

val (isClosed, prédicteurs) = FeatureBuilder.fromDataFrame (DealData, réponse = "isClosed")

// fonctions d'automatisation de l'ingénierie

val featureVector = predictors.transmogrify ()

// fonctions d'automatisation de vérification

val cleanFeatures = survived.sanityCheck (featureVector, removeBadFeatures = true)

// Sélection automatique du modèle

val (pred, cru, prob) = BinaryClassificationModelSelector (). setInput (isClosed, cleanFeatures) .getOutput ()

// Créer le flux de travail et a commencé la formation modèle

modèle val = new OpWorkflow (). setInputDataset (dealData) .setResultFeatures (pred) .train ()

Les décisions de conception

TransmogrifAI objectif de conception est d'améliorer l'efficacité du développeur d'apprentissage de la machine - non seulement pour l'apprentissage de la machine automatisée, fournit également un ensemble de l'API pour mettre en uvre le type de compilation sécurité, la modularité et la réutilisation. Voici quelques-unes de nos décisions de conception.

Spark Apache

Pour diverses raisons, nous avons choisi de construire TransmogrifAI sur Spark Apache. Tout d'abord, nous devons être en mesure de gérer la quantité de données de différentes tailles. Certains de nos clients et les cas d'utilisation exigent des dizaines de millions d'enregistrements de données à travers l'agrégation ou la connexion pour former le modèle, mais il y a des clients et des cas d'utilisation exigent que quelques milliers de dossiers. Spark fournit une connexion primitive et l'agrégation des grandes données distribuées, il est très important pour nous. Deuxièmement, nous devons être en mesure de fournir un modèle d'apprentissage machine selon lot et le débit de la mode. Spark en streaming permet de travailler TransmogrifAI dans les deux modes. Enfin, à partir d'une bibliothèque open source active construction TransmogrifAI, vous pouvez profiter de l'amélioration continue de la bibliothèque dispose de tout sans avoir à réinventer la roue.

caractéristiques Résumé

Transformateur SparkML Pipelines introduit abstrait et estimateur pour convertir dataframe. TransmogrifAI établi (les caractéristiques de conversion ci-dessus, les caractéristiques et la sélection modèle de validation, fourni par Estimator) sur la base de ces abstractions, en outre, a également présenté des caractéristiques abstraites. La caractéristique essentielle est un pointeur sur une colonne de dataframe de type sécurisé, qui contient toutes les informations visées dans la colonne - son nom, le type de données qu'il contient, ainsi que ses informations de lignée.

La principale caractéristique est un développeur de primitives interactives, définir les caractéristiques de fonctionnement et devenir plus comme l'utilisation de variables dans un langage de programmation, plutôt que les colonnes de trame de données d'exploitation. Feature est partageable, réutilisable parmi les développeurs. En outre, TransmogrifAI offre la possibilité de définir le résultat d'un complexe pour la polymérisation et la connexion en série de temps.

Type de sécurité

Fonction est fortement typé, donc la vérification de type TransmogrifAI peut être effectuée dans l'ensemble du processus d'apprentissage de la machine, les erreurs de prises le plus tôt possible afin d'assurer que, non seulement de trouver au bout de quelques heures après l'entrée du pipeline. sécurité de type et aussi d'autres détails sur la productivité des développeurs, comme les recommandations du Code IDE intelligents. Vous pouvez voir tous les chiffres susceptibles de se convertir, et sélectionnez celui ci-dessous.

Type de sécurité peut également améliorer la transparence des données attendues flux apprentissage machine et sorties de chaque étape, ce qui réduit considérablement le nombre de connaissances tribales, les connaissances accumulent inévitablement dans le workflow d'apprentissage machine suffisamment complexe.

Enfin, le type de fonction est essentielle pour le traitement en aval (en particulier l'ingénierie et l'automatisation caractéristiques de vérification caractéristique).

Évolutivité et personnalisation: Les développeurs peuvent utiliser le modèle rapide de haute performance estimateur automatiquement, mais l'utilisateur a besoin de plus de contrôle estimateur chaque hors de la boîte peuvent être paramétrés et peuvent être directement et ajuster ces paramètres. De plus, les utilisateurs peuvent également spécifier personnalisés estimateur Transformer et à utiliser dans le pipeline. Spécifiez un transformateur sur mesure est aussi simple que la définition des expressions lambda, TransmogrifAI chargés de traiter tout le code pour la sérialisation et passe-partout de-sérialisation du transformateur.

val lowerCaseText = textFeature.map (_.Value.map (_. ToLowerCase) .toText)

 Evolutivité et performances

En automatisant l'ingénierie des fonctionnalités, données scientifiques, il est facile de laisser l'expansion de l'espace caractéristique, enfin obtenir dataframe Spark sont difficiles à manipuler. TransmogrifAI flux DAG par inférence se rendent compte l'ensemble des caractéristiques de conversion nécessaires pour résoudre ce problème. En outre, étant donné que la Spark TransmogrifAI est basée sur, il est possible de bénéficier d'une optimisation améliorée de Spark dataframe.

Par conséquent, nous pouvons automatiser la technique d'apprentissage machine avoir des données sur des centaines de millions de lignes et de colonnes, l'espace de fonction étendra à des dizaines de milliers de colonnes.

TransmogrifAI pour tout le monde sous tension

Pour nous, TransmogrifAI comme un grand changement, les scientifiques peuvent laisser nos données avec un minimum de réglages manuels génèrent des milliers de modèles, et le temps moyen pour former des modèles de haute performance raccourcie de quelques semaines à quelques heures. Ce niveau d'automatisation est essentiel pour nous d'offrir des services aux entreprises, nous pensons également que la machine d'aujourd'hui l'entreprise d'apprentissage chaque scène plus d'un certain nombre de leurs scientifiques de données et l'automatisation est la clé de l'apprentissage de la machine.

Salesforce a été l'étincelle Apache des utilisateurs et contributeurs, nous sommes heureux de continuer à travailler avec les collectivités pour construire TransmogrifAI ensemble. l'apprentissage de la machine peut changer le fonctionnement des entreprises, nous croyons que seulement grâce à l'échange d'idées et le code afin de réduire les obstacles à l'adoption. Grâce à la collaboration, nous pouvons réunir différents points de vue, continuer à promouvoir le développement de la technologie au profit de tous.

texte anglais:

https://engineering.salesforce.com/open-sourcing-transmogrifai-4e5d0e098da2

Le personnel d'exploitation: Ran Colline

Le droit à la santé U23 exposition internationale conduite en état d'ébriété dans un accident de voiture voiture, même frappé 7 + sport mis au rebut (figure)
Précédent
Exclusif | vers le développement d'une longue intelligente le marché locatif, les locataires peuvent résoudre les points de douleur?
Prochain
Photo Story | Xi Jinping, qui a béni le Nouvel An
la mort des préliminaires européenne à la naissance! Seulement 1 équipe Qualifiez confortablement, suspendu ou battu 0-4 européenne super cheval noir
Pratique | article vous emmène dans l'apprentissage en profondeur de la ligne de base zéro
le séchage de l'homme britannique les gens étrange personnage photographié dans le cuir chevelu de fond picotement
Pourquoi ne peut-Eve les lumières de la nuit du Nouvel An? Réveillon du Nouvel An pour voir l'inventaire folk exquis
Exclusive | PySpark lire un bloc de données texte (avec des exemples)
La bénédiction de mot à la fin ne peut pas coller à l'envers? jour Réveillon du Nouvel An pour voir le tabou populaire dix
Analyse d'un million de données d'emplois que j'ai trouvé ......
C-1 se vouant à briser l'embarras! il y a 3 ans, le plus fort en Europe 8 détachement, ils ne faisaient que maintenant pas gagné
Collection | AI, l'apprentissage en profondeur, les réseaux de neurones, un grand mémoire de données (pièce jointe)
Longmen Zhen | oncle il au printemps, Anderson en finale cheval noir
1 étoile a débuté deux minutes lore! Ancien champion du monde a attendu 274 jours, battant le record de 23 ans d'embarras