TFX dernier message de blog: Comment utiliser BERT écosystème tensorflow pour atteindre rapide et un déploiement efficace?

Lead: Pourquoi TFX est le déploiement de BERT partenaire idéal?

Transformer le modèle, en particulier le modèle de BERT, a complètement changé la PNL, et comme l'analyse du sentiment, l'extraction d'entités ou d'une tâche de jeu-questionnaire a ouvert un nouveau monde. modèle BERT permet aux données scientifiques se tiennent sur les épaules de géants. Lorsque les entreprises utilisent ces modèles en pré-formés en grand corpus de données scientifiques peuvent migrer apprendre à appliquer ces modèles de transformateur polyvalent, et obtenu des résultats pour une percée problème particulier son domaine.

SAP Concur dans le laboratoire, les chercheurs espèrent utiliser le BERT pour résoudre de nouveaux problèmes dans le domaine de Voyage. Ils veulent simplifier le raisonnement BERT. Malheureusement, ils ne pouvaient pas trouver une solution parfaite.

En travaillant avec l'équipe tensorflow et utiliser leurs dernières réalisations, laboratoire Concur et, finalement, une approche cohérente, simple, inférence de modèle BERT rapide, la classification et prédiction peut être réalisée à partir du texte original en quelques millisecondes.

Alors, comment différents chercheurs d'aide bibliothèques et composants tensorflow atteignent cette étape? Comme ingénieur principal SAP laboratoire d'apprentissage machine Concur, Hannes Hapke a écrit un blog pour partager leurs pratiques. équipe TFX de chercheurs impliqués dans cet éditeur de blog.

Cet article de blog décrira comment utiliser l'écosystème tensorflow pour parvenir à un déploiement évolutif, rapide et efficace de BERT. Texte intégral compilé comme suit.

Cet article traite de la méthode permettra aux développeurs d'utiliser tensorflow Version étendue (TFX) v0.21 ou plus pour former le modèle tensorflow. Toutefois, le soutien pour le fonctionnement tf.text n'a pas été inclus dans la version actuelle tensorflow service (v2.1), mais inclus dans la version nuit docker, et sera inclus dans la version v2.2.

Si vous voulez voir l'échantillon complet, voir  Notebook Colab . Elle montre l'ensemble de l' extension tensorflow (TFX) pour générer tuyau BERT modèle déployé, et l'étape de pré - traitement dans le cadre du modèle de la Fig.

l'état du déploiement BERT quo

Le dernier modèle de transformateur de progression est surprenant. Mais malheureusement, ces modèles seront utilisés dans la production n'est pas simple ou parfait. Idéalement, nous voulons envoyer le texte original au serveur, mais le modèle BERT du pré-traitement exige texte d'entrée, puis d'obtenir les prévisions du modèle actuel.

Certaines solutions prétraités par le texte au client pour résoudre ce problème, ainsi que la solution est, le serveur met en œuvre une étape intermédiaire pour traiter les données d'entrée. Ces deux méthodes ne sont pas tout à fait raison, car ils nécessitent une coordination de déploiement supplémentaires, réduit l'efficacité du raisonnement.

TFX dernier message de blog: Comment utiliser BERT écosystème tensorflow pour atteindre rapide et un déploiement efficace?

Figure 1: Le déploiement actuel de BERT

Quel est le meilleur déploiement?

Lorsque les modèles de déploiement, les méthodes aussi simples que possible. Nous voulons déployer le modèle transformateur, et comme une partie de diagramme du modèle préliminaire. Étant donné que le prétraitement est intégré dans le schéma de modèle, nous pouvons simplement être un modèle unique de serveur pour déployer le modèle, la suppression d'autres dépendances de déploiement, et tirer le meilleur parti du serveur modèle. Par exemple, nous pouvons prédire une demande de traitement par lots afin d'optimiser l'utilisation du matériel de raisonnement.

Utilisez le BERT de déploiement de tensorflow

Tensorflow pour nous, il est un cadre très efficace, car il est non seulement un cadre d'apprentissage de la machine, mais fournit également un vaste écosystème de programmes de soutien et des outils. Tensorflow Serving est très utile pour nous. Il fournit un moyen simple, cohérent, modèle de déploiement évolutif.

Un autre projet que nous portons une attention particulière au système est tensorflow Transformer. Il donne l'occasion de construire un modèle pour le schéma de pré-traitement pour nous, alors nous pouvons tirer ces chiffres avec la profondeur réelle du modèle d'apprentissage. Tensorflow Transformer exige que toutes les étapes sont représentés comme opération prétraiter tensorflow. De ce fait, les derniers développements de texte pour nous aussi très utile. RaggedTensors pour atteindre non seulement ouvre de nouvelles applications, et sa bibliothèque offre également la possibilité de réaliser les étapes de prétraitement du langage naturel désiré.

Le TensorFlowWorld 2019 a montré une nouvelle fonctionnalité tensorflow texte, et qui est la pleine réalisation d'un marqueur BERT. Ainsi, nous pouvons utiliser quelques lignes de code pour représenter l'étape de prétraitement tensorflow. Nous utilisons également un autre outil tensorflow: tensorflow Extended (TFX), pour atteindre la tuyauterie du modèle de déploiement et de l'unité de but. TFX nous permet d'une manière répétitive pour exprimer le pipeline toute ML, contribuant ainsi à des modèles d'apprentissage machine, nous déployons les mêmes.

TFX dernier message de blog: Comment utiliser BERT écosystème tensorflow pour atteindre rapide et un déploiement efficace?

Figure 2: un tf.Text conduit de TFX

Écrit par étape prétraitements ops tensorflow

Idéal déploiement de modèle accepte du texte brut en entrée au modèle, et de fournir des modèles prédisent en conséquence. La clé est de simplifier le BERT de déploiement exprimé en tant que ops tensorflow étape de prétraitement. modèle BERT nécessite la marque d'entrée de texte original id marqué, id type d'entrée et des structures de données associées masque d'entrée généré. Avec tensorflow texte, nous pouvons maintenant utiliser moins de code pour y parvenir. Dans le prochain article, nous allons discuter des détails de la structure de données de BERT converties à partir du texte original à un particulier, y compris l'ajout de marque BERT spécifique.

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, [-1, MAX_SEQ_LEN])
 

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)

TFX dernier message de blog: Comment utiliser BERT écosystème tensorflow pour atteindre rapide et un déploiement efficace?

La figure 3: le marqueur BERT

Tensorflow Transformer et ledit code d'utilisation peut être dérivé pré-traitement figure avec le modèle formé tensorflow. Avec la dernière mise à jour tensorflow Serving, modèle de déploiement de BERT nous pouvons maintenant accepter du texte brut en entrée. Ici, il n'y a pas d'autres dépendances de déploiement!

Utilisez tensorflow Transformer offre des avantages pratiques pour nous. D'une part, nous pouvons répartir les responsabilités entre le pré-traitement et l'architecture du modèle de données au travail dans l'organisation. D'autre part, nous pouvons facilement mise au point, les statistiques de test et générer la sortie prétraitée. Après la transformation de conversion de sortie de jeu de formation composants, comme TFRecords, facile à vérifier l'ensemble de la formation.

Dans le processus « débogage » Transformer la sortie, nous avons trouvé quelques erreurs mineures, ces erreurs ne provoquent pas l'échec du modèle de formation, mais il peut affecter leurs performances. Par exemple, [septembre] décalage balise. Techniquement parlant, il n'y a pas besoin tensorflow Transformer. Depuis le prétraitement chacun indépendamment un exemple de l'ensemble du corpus, on peut facilement être construit directement dans le modèle de la figure. Cependant, nous avons trouvé cette façon de construire et déboguer le pipeline serait plus facile.

TFX dernier message de blog: Comment utiliser BERT écosystème tensorflow pour atteindre rapide et un déploiement efficace?

Figure 4: couche de BERT

Idéal pour le déploiement?

développement Simplifier

Tensorflow en utilisant divers outils, nous sommes en mesure de déployer le modèle BERT de manière simple et concise. L'étape de prétraitement peut être intégré dans le modèle de la figure à réduire le risque d'inclinaison entre les données de formation et les données d'inférence. modèle de déploiement ne nécessite pas des dépendances de clients supplémentaires ou serveur, ce qui réduit encore le risque de modèle d'erreurs. Nous pouvons modeler notre BERT déploiement cohérent et tensorflow service, tout en profitant des modèles d'optimisation - tels que l'inférence par lots.

performance Raisonnement

Notre premier test de performance semble prometteur. Corollaire BERT sur notre schéma de modèle de démonstration, y compris les étapes de pré-traitement et chaque modèle de prédiction. Ces modèles une moyenne d'environ 15,5 ms, ce qui est un V100 seul GPU, jusqu'à 128 marqueurs, GRPC mesurés sur demande, une optimisation non service tensorflow GPU construit sans fondement modèle BERT. Ceci et l'utilisation antérieure du déploiement client marque BERT et a conclu que le temps moyen d'utiliser tensorflow service hébergé modèle de classification est à peu près le même. Bien sûr, en fonction de votre machine et modèles, vous pouvez voir des résultats différents.

Pour en savoir plus

Si vous voulez apprendre le code, voir  Colab Notebook , dans lequel il y a une BERT pré-formation modèle mise en œuvre par exemple de l'utilisation du modèle de classification du sentiment. Si vous voulez essayer notre déploiement de démonstration, consultez la page de démonstration de laboratoire Concur ci - dessus montrent notre projet de classification des émotions.

Si vous êtes intéressé par tensorflow Extended (TFX) et tensorflow Transformer le travail interne, consultez le Guide de l'utilisateur et TFX voir venir publication O'Reilly « Building Machine Learning Pipelines, Automatiser Modèle Cycles de la vie avec tensorflow. »

Pour plus d'informations sur TFX, visitez le site Web TFX, TFX se joindre à des groupes de discussion, voir les autres articles du blog TFX, ou regarder nos playlists TFX, et le canal d'abonnements sur YouTube.

via: https://blog.tensorflow.org/2020/03/part-1-fast-scalable-and-accurate-nlp-tensorflow-deploying-bert.html

Publié 472 articles originaux · éloge de won 757 · Vues 1,61 millions +

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42137700/article/details/104855413
conseillé
Classement