Évolutive avec tensorflow prolongée, rapide et déploiement efficace des BERT!

Source: tensorflow

Cet article sur 3144 mots lecture recommandée 9 minutes .

Cet article décrit comment atteindre évolutif, rapide et déploiement efficace par BERT écosystème tensorflow de.

modèles Transformer (en particulier  modèle BERT ) A apporté de grands changements à la PNL et l'analyse des sentiments, l'extraction d'entités et les tâches de traitement sur les questions du quiz, ont aussi une nouvelle percée. modèle BERT permet aux données scientifiques se tiennent sur les épaules de géants. Chaque entreprise a modèle de pré-formation par un grand corpus, ces données scientifiques polyvalents migration des applications de modèle Transformer formé pour apprendre, pour trouver des solutions novatrices à des problèmes spécifiques dans leurs domaines.

  • modèle BERT https://arxiv.org/abs/1810.04805

en  Concur Labs de SAP  (Www.concurlabs.com), nous espérons utiliser pour résoudre certains problèmes nouveaux voyages BERT et frais sur le terrain se présentent. Nous voulons simplifier le raisonnement BERT. Malheureusement, nous avons essayé les solutions ne sont pas idéales.

En partenariat avec l'équipe Google / tensorflow, en utilisant ses derniers développements, nous avons finalement atteint l'objectif: cohérent, simple et très rapide raisonnement modèle BERT. Ils profitent du plan de mise en uvre proposée, nous pouvons prédire à partir du texte original pour compléter le classement en quelques millisecondes. Le regard de déposons sur la façon dont les différentes bibliothèques et composants tensorflow nous aider à atteindre ce jalon.

Cet article vous donnera un aperçu de la façon d'atteindre évolutive, rapide et déploiement efficace par BERT écosystème tensorflow de. Si vous êtes intéressé par une compréhension approfondie de son processus de mise en uvre, s'il vous plaît voir la partie II (non encore publié), pour plus d'informations sur la mise en uvre des étapes de cet article. Si vous voulez essayer de démontrer le déploiement, s'il vous plaît voir La page de Concur Labs  (Bert.concurlabs.com), qui a trait à présenter notre projet de classification des sentiments.

A propos de Au service d'une note

Les méthodes décrites dans cet article permet aux développeurs de tirer parti de tensorflow Version étendue (TFX) v0.21 ou plus pour former le modèle tensorflow. Mais tensorflow service (v2.1) de la version actuelle ne comprend pas encore le soutien à tf.text après modèle de formation contenue dans l'opérateur, et dégagera v2.2 de libération docker nuit offre un tel soutien.

Vous voulez voir le code directement?

Si vous voulez aller à l'exemple complet, voir bloc-notes colab , Qui génèrent une étendue (TFX) complet tensorflow BERT modèle déployable ligne d'affichage associé, et le plan de calcul de modèle comprend en outre l'étape consistant à prétraiter.

  • bloc-notes colab https://colab.sandbox.google.com/github/tensorflow/workshops/blob/master/blog/TFX_Pipeline_for_Bert_Preprocessing.ipynb

l'état du déploiement BERT quo

Récemment, des progrès modèle Transformer très rapidement. Malheureusement, cependant, le modèle utilisé dans le processus de production est très complexe, le résultat est pas satisfaisant. Idéalement, nous vous ferons parvenir le texte original au serveur, mais les modèles BERT doivent prétraiter le texte d'entrée, puis nous pouvons arriver à prédire le modèle réel. Certaines solutions antérieures ont été de résoudre ce problème en prétraiter le texte au client, il existe d'autres solutions en effectuant une étape intermédiaire sur le serveur pour traiter les données d'entrée. Ces deux approches ne sont pas appropriés en raison de la nécessité de déployer une coordination supplémentaire (telles que la période de commutation client / serveur), ou réduire l'efficacité du raisonnement (par exemple en raison des étapes de conversion intermédiaires exigent une capacité de traitement par lots de prévision sophistiqués).

Figure 1: Le déploiement actuel de BERT

Idéalement le déploiement est en quelque sorte comment?

Sur le modèle de déploiement, le plus simple sera le mieux. Nous voulons déployer modèle Transformer, et le calcul du modèle comme la partie de pré-traitement de la figure. En raison de pré-intégré dans la carte de calcul du modèle, on peut déployer un seul modèle de serveur de modèles, en supprimant les autres dépendances de déploiement (client ou processus intermédiaire), alors l'avantage complet du serveur de modèles (tels que la prédiction des demandes de traitement par lots afin de tirer le meilleur parti de notre matériel de raisonnement).

BERT déployé par écosystème tensorflow

Tensorflow est un cadre très efficace, il est non seulement le cadre de l'apprentissage de la machine fournit également un large éventail d'écosystèmes contiennent toutes sortes de programmes de soutien et des outils, y compris. Pour nous est un outil très utile  tensorflow Serving . Cet outil fournit un moyen simple, cohérent et modèle de déploiement évolutif .

  • tensorflow Serving https://tensorflow.google.cn/tfx/guide/serving
  • modèle de déploiement évolutif https://tensorflow.google.cn/tfx/serving/serving_kubernetes

Un autre projet nous portons une attention particulière à l'écosystème tensorflow Transformer . Avec cet outil, nous pouvons calculer l'étape prétraiter façon carte pour le modèle de construction, afin que nous puissions exporter avec le modèle d'apprentissage réel de profondeur.

  • tensorflow Transformer https://tensorflow.google.cn/tfx/guide/tft

Tensorflow Transformer exige que tous les étapes de prétraitement sont exprimés en tant qu'opérateur tensorflow. Voilà pourquoi nous avons récemment mis au point texte tensorflow  Il y a des raisons extrêmement utiles. RaggedTensors  La nouvelle mise en uvre pour atteindre non seulement ouvert, et la bibliothèque fournit également les fonctions requises mode de réalisation d'une étape de prétraitement du langage naturel.

  • RaggedTensors https://tensorflow.google.cn/guide/ragged_tensor

TensorFlowWorld 2019  Un nouveau texte de fonction tensorflow est prévue dans BERT Tokenizer La mise en uvre complète. Pour cette raison, nous avons été en mesure d'exprimer notre pré-traitement tensorflow quelques lignes de code. Nous utilisons également un autre outil de tensorflow pour atteindre notre objectif pour une ligne de modèle cohérent et déploiement: Tensorflow étendu (TFX) . Nous exprimons notre soutien pipeline TFX ML grâce à la réplication, afin de nous aider à déployer un modèle d'apprentissage de la machine cohérente.

  • TensorFlowWorld 2019 (Playlist) https://v.youku.com/v_show/id_XNDQyMDUyNzE4OA
  • BERT Tokenizer https://github.com/tensorflow/text/blob/master/tensorflow_text/python/ops/bert_tokenizer.py#L121

Figure 2: Utilisation de pipeline TFX tf.Text

Préparé par l'étape de pré-traitement opérateur tensorflow

Idéal déploiement de modèle accepte du texte brut en entrée au modèle, le modèle fournira une prévision. Notre déploiement BERT est si simple, la clé est exprimée sous la forme d'une étape de prétraitement opérateur tensorflow. BERT nécessite le modèle d'entrée d'origine dans l'entrée de texte ID jeton, le masque d'entrée (masque d'entrée), le type d'entrée résultant ID (ID d'entrée de type). Avec l'aide de tensorflow texte, et maintenant nous pouvons utiliser moins de lignes de code complet. Dans la deuxième partie de cet article, nous allons discuter du texte original pour convertir certains des détails de la structure de données spécifique BERT, qui consiste à ajouter BERT jeton particulier.

vocab_file_path = load_bert_layer (). resolved_object.vocab_file.asset_path bert_tokenizer = text.BertTokenizer (vocab_lookup_table = vocab_file_path, token_out_type = tf.int64, lower_case = do_lower_case) ... input_word_ids = tokenize_text (texte) input_mask = tf.cast (input_word_ids >  0, tf.int64) input_mask = tf.reshape (input_mask,) zeros_dims = tf.stack (tf.shape (input_mask)) input_type_ids = tf.fill (zeros_dims, 0) input_type_ids = tf.cast (input_type_ids, tf.int64)

Figure 3: BERT tokenizer

Utilisez tensorflow Transform et ledit graphe de pré-calcul de code peut être exporté tensorflow avec le modèle formé. Avec tensorflow Au service des dernières mises à jour, le modèle de déploiement BERT nous pouvons maintenant accepter du texte brut en entrée. Regardez! Aucune autre dépendances.

Utilisez tensorflow nous transformer pour apporter des avantages hargneux. D'une part, nous pouvons répartition ordonnée des responsabilités entre le prétraitement et l'architecture du modèle de données au travail. D'autre part, nous pouvons facilement debug, les données de test et générer des statistiques sur la pré-production. Transformer sous forme de TFRecords de sortie composant après jeu de la formation de conversion, disponible pour inspection. processus « Debugging » Transformer la sortie, nous avons trouvé quelques problèmes mineurs, ces problèmes ne causera pas la formation du modèle d'échec, mais peut affecter ses performances (par exemple un décalage se produit dans le jeton). Techniquement parlant, pas besoin ici tensorflow Transformer. Étant donné que chaque échantillon de pré-traitement indépendamment dans un corpus complet, on peut facilement être construit directement dans le calcul du modèle de la figure. Mais nous l'avons trouvé plus facile de construire et d'assemblage de débogage de cette façon.

Figure 4: couche de BERT

Si vous êtes intéressé par une compréhension approfondie du processus de mise en uvre, nous vous recommandons de lire la deuxième partie de l'article (non encore publié), qui a en profondeur l'exposition du processus de mise en uvre.

Quel est le déploiement idéal?

développement simplifié

Tensorflow en utilisant une variété d'outils, nous sommes en mesure de déployer le modèle BERT de manière concise. L'étape de prétraitement pour intégrer la carte de calcul du modèle, peut réduire le risque de déconnexion entre les données de formation et de raisonnement. Le modèle de déploiement ne nécessite pas de dépendances clients supplémentaires ou serveur, ce qui réduit encore les erreurs du modèle de risque. Nous pouvons être déployé de manière cohérente par modèle BERT tensorflow service, tout en optimisant l'utilisation du raisonnement en vrac comme une sorte de modèle.

performance Raisonnement

Notre personnel d'essai initial de performance pleine d'espoir. Chaque modèle de prédiction pour calculer la présentation BERT figure de l'étape de prétraitement comprenant le raisonnement, et le modèle de la durée moyenne d'environ 15,5 ms (basé sur une seule GPU V100, jusqu'à 128 jeton, demande grpc pour la construction d'une version non optimisée de tensorflow GPU Servant et uncased base BERT modèle de mesure dérivée). Ceci est le temps moyen il y a conclu que l'utilisation de BERT en termes de déploiement du client et de l'utilisation tensorflow service hébergé modèle de classification est à peu près le même. Bien sûr, en fonction de votre machine et le modèle, le résultat sera différent.

plus d'informations

Si vous êtes intéressé par une compréhension approfondie du processus de mise en uvre, nous vous recommandons de lire la deuxième partie de l'article. Si vous voulez comprendre le code, Voir le portable Colab , Qui contient des exemples de l'utilisation du modèle BERT pré-formé modèle de classification de sentiment de mise en uvre. Si vous voulez essayer de démontrer le déploiement, s'il vous plaît voir La page de Concur Labs , Que nous montrons les émotions liées à la classification du projet.

  • colab https://colab.sandbox.google.com/github/tensorflow/workshops/blob/master/blog/TFX_Pipeline_for_Bert_Preprocessing.ipynb
  • La page de Concur Labs https://bert.concurlabs.com/

Si vous tensorflow intéressé Extended (TFX) et tensorflow Transform le fonctionnement interne, s'il vous plaît lire attentivement  Guide de l'utilisateur TFX Et voir venir O'Reilly a publié l'article " Utilisation cycle de vie du modèle d'apprentissage de machine de construction et de la ligne tensorflow assemblage automatisé « (Construction de machines d'apprentissage Pipelines, Automatiser Modèle Life Cycles Avec tensorflow), a été publié à l'avance en ligne.

  • Guide de l'utilisateur TFX https://tensorflow.google.cn/tfx/guide
  • Utilisation cycle de vie du modèle d'apprentissage de machine de construction et de la ligne tensorflow assemblage automatisé

Pour plus d'informations sur TFX, consultez site officiel  (Tensorflow.google.com), en ajoutant groupe de discussion TFX , Lire attentivement les autres articles dans le numéro public.

  • groupe de discussion TFX https://groups.google.com/a/tensorflow.org/forum/#!forum/tfx

Remerciements

Lisser la mise en uvre du projet ne peut pas faire sans le soutien fort de Catherine Nelson, Richard Puckett, Jessica Park, Robert Reed et équipe Labs Concur. En outre, nous tenons à remercier Robby Neale, Robert Crowe, Irene Giannoumis, Terry Huang, Zohar Yahav, Konstantinos Katsiapis, les autres membres de l'équipe Arno Eigenwillig et tensorflow pour leur participation à la mise en uvre du projet discuté en détail et fournir la bibliothèque de mises à jour. Nous remercions tout particulièrement de Talenpair de Cole Howard, il est toujours capable de gérer un point de vue lié à la discussion présentée éclairant en langage naturel.

- FIN -

attention Tsinghua - données Académie des sciences de Qingdao plate-forme publique micro-canal officiel "  AI pour envoyer des données  « Sisters et n ° » Les données envoyées THU  « Pour plus de conférences et de bien-être contenu de qualité.

NER non supervisé avec BERT (avec code)
Précédent
La base de l'apprentissage automatique et de l'apprentissage en profondeur a été posée, comment résoudre les problèmes d'algorithmes avec la vitesse la plus rapide
Prochain
L'apprentissage machine génère des avantages économiques, l'hiver prochain IA ne vient jamais
Passer sous si facile, quantique AlphaZero informatique jeu de démarrage!
Une demi-heure de formation cent millions connaissance de la cartographie à grande échelle, open source Amazon cadre de représentation des connaissances AI carte intégrée
Stanford toilettes intelligent avec des veines anales peut connaître les gens, les selles et l'urine considèrent votre message « vendu »
Sur la base de la compréhension sémantique de la technologie et de l'application de la carte des connaissances
données d'image roman coronavirus ensemble de documents analytiques (avec liens)
Watson Kennedy a parlé de la nouvelle infrastructure - l'industrie de l'Internet - valeur Cube (PPT télécharger)
Google auto-développé borne puce AI exposé des progrès importants, Samsung unissent leurs forces pour ordinateur portable téléphones mobiles
ère secrète 5G + AI du monde du robot! Sept technologie de base au changement la vie humaine
GitHub ouvert à la fonctionnalité de base de 40 millions de développeurs libres du monde! AI vient de mettre un grand modèle
l'intelligence artificielle et de la race de l'intelligence humaine: l'intelligence humaine contre le peigne ensemble
Utilisez Python pour écrire un émulateur Gameboy et entraîner des modèles d'IA!