Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Comment Amazon Search parvient à une inférence T5 à faible latence et haut débit avec NVIDIA Triton sur AWS

La vision d'Amazon Search est de permettre aux clients de rechercher sans effort. Notre correction orthographique vous aide à trouver ce que vous voulez même si vous ne connaissez pas l'orthographe exacte des mots voulus. Dans le passé, nous utilisions des algorithmes d'apprentissage automatique (ML) classiques avec une ingénierie manuelle des fonctionnalités pour la correction orthographique. Pour faire le saut générationnel suivant dans les performances de correction orthographique, nous adoptons un certain nombre d'approches d'apprentissage en profondeur, y compris des modèles de séquence à séquence. Les modèles d'apprentissage en profondeur (DL) sont gourmands en calcul à la fois dans la formation et l'inférence, et ces coûts ont historiquement rendu les modèles DL peu pratiques dans un environnement de production à l'échelle d'Amazon. Dans cet article, nous présentons les résultats d'une expérimentation d'optimisation d'inférence où nous surmontons ces obstacles et obtenons une accélération d'inférence de 534 % pour le populaire transformateur Hugging Face T5.

Défi

Le transformateur de transfert de texte à texte (T5, Explorer les limites de l'apprentissage par transfert avec un transformateur de texte en texte unifié, Reffel et al) est l'architecture de modèle de traitement du langage naturel (TAL) à la pointe de la technologie. T5 est une architecture prometteuse pour la correction orthographique, que nous avons trouvée performante dans nos expériences. Les modèles T5 sont faciles à rechercher, à développer et à former, grâce à des cadres d'apprentissage en profondeur open source et à des recherches académiques et d'entreprise en cours.

Cependant, il est difficile d'obtenir une inférence à faible latence de qualité production avec un T5. Par exemple, une seule inférence avec un PyTorch T5 prend 45 millisecondes sur l'un des quatre GPU NVIDIA V100 Tensor Core équipant une instance Amazon Elastic Compute Cloud (EC2) p3.8xlarge. (Tous les nombres d'inférence signalés concernent une entrée de 9 jetons et une sortie de 11 jetons. La latence des architectures T5 est sensible à la fois aux longueurs d'entrée et de sortie.)

L'inférence T5 à faible latence et rentable à grande échelle est une difficulté connue qui a été signalée par plusieurs clients AWS au-delà d'Amazon Search, ce qui renforce notre motivation à contribuer à cet article. Pour passer d'une réalisation scientifique hors ligne à un service de production orienté client, Amazon Search doit relever les défis suivants :

  • Latence - Comment réaliser l'inférence T5 en moins de 50 millisecondes de latence P99
  • Cadence de production – Comment gérer les demandes d'inférence simultanées à grande échelle
  • Rapport coût-efficacité – Comment garder les coûts sous contrôle

Dans la suite de cet article, nous expliquons comment la pile d'optimisation d'inférence NVIDIA, à savoir la NVIDIA TensorRT compilateur et open source Serveur d'inférence NVIDIA Triton—résout ces défis. Lire Communiqué de presse de NVIDIA pour connaître les mises à jour.

NVIDIA TensorRT : réduction des coûts et de la latence grâce à l'optimisation de l'inférence

Les cadres d'apprentissage en profondeur sont pratiques pour itérer rapidement sur la science et sont dotés de nombreuses fonctionnalités pour la modélisation scientifique, le chargement de données et l'optimisation de la formation. Cependant, la plupart de ces outils ne sont pas optimaux pour l'inférence, qui ne nécessite qu'un ensemble minimal d'opérateurs pour les fonctions de multiplication et d'activation de matrices. Par conséquent, des gains significatifs peuvent être réalisés en utilisant une application spécialisée de prédiction uniquement au lieu d'exécuter l'inférence dans le cadre de développement de l'apprentissage en profondeur.

NVIDIA TensorRT est un SDK pour l'inférence d'apprentissage en profondeur hautes performances. TensorRT offre à la fois un temps d'exécution optimisé, en utilisant des noyaux optimisés de bas niveau disponibles sur les GPU NVIDIA, et un graphe de modèle d'inférence uniquement, qui réorganise le calcul d'inférence dans un ordre optimisé.

Dans la section suivante, nous parlerons des détails qui se cachent derrière TensorRT et de la manière dont il accélère les performances.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

  1. Précision réduite maximise le débit avec FP16 ou INT8 en quantifiant les modèles tout en maintenant l'exactitude.
  2. Fusion de couches et de tenseurs optimise l'utilisation de la mémoire GPU et de la bande passante en fusionnant des nœuds dans un noyau pour éviter la latence de lancement du noyau.
  3. Réglage automatique du noyau sélectionne les meilleures couches de données et algorithmes en fonction de la plate-forme GPU cible et des formes de noyau de données.
  4. Mémoire tensorielle dynamique minimise l'empreinte mémoire en libérant la consommation de mémoire inutile des résultats intermédiaires et réutilise efficacement la mémoire pour les tenseurs.
  5. Exécution multi-flux utilise une conception évolutive pour traiter plusieurs flux d'entrée en parallèle avec des flux CUDA dédiés.
  6. Fusion temporelle optimise les réseaux de neurones récurrents au fil du temps avec des noyaux générés dynamiquement.

T5 utilise des couches de transformateurs comme blocs de construction pour ses architectures. La dernière version de NVIDIA TensorRT 8.2 introduit de nouvelles optimisations pour les modèles T5 et GPT-2 pour l'inférence en temps réel. Dans le tableau suivant, nous pouvons voir l'accélération avec TensorRT sur certains modèles T5 publics exécutés sur des instances Amazon EC2G4dn, alimentées par des GPU NVIDIA T4 et des instances EC2 G5, alimentées par des GPU NVIDIA A10G.

 

Modèle Instance Latence Pytorch de base (ms) Latence TensorRT 8.2 (ms) Accélération par rapport à la ligne de base HF
FP32 FP32 FP16 FP32 FP16
Encoder Décodeur De bout en bout Encoder Décodeur De bout en bout Encoder Décodeur De bout en bout De bout en bout De bout en bout
t5-petit g4dn.xlarge 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 407.40% 519.34%
g5.xlarge 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
base t5 g4dn.xlarge 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 400.48% 569.97%
g5.xlarge 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Pour plus d'informations sur les optimisations et la réplication des performances associées, reportez-vous à Optimisation de T5 et GPT-2 pour l'inférence en temps réel avec NVIDIA TensorRT.

Il est important de noter que la compilation préserve la précision du modèle, car elle opère sur l'environnement d'inférence et la planification des calculs, laissant la science du modèle inchangée - contrairement à la compression par suppression de poids telle que la distillation ou l'élagage. NVIDIA TensorRT permet de combiner compilation et quantification pour des gains supplémentaires. La quantification présente un double avantage sur le matériel NVIDIA récent : elle réduit l'utilisation de la mémoire et permet l'utilisation de NVIDIA Tensor Cores, des cellules spécifiques à DL qui exécutent une matrice fusionnée-multipliée-ajoutée avec une précision mixte.

Dans le cas de l'expérimentation Amazon Search avec le modèle Hugging Face T5, le remplacement de PyTorch par TensorRT pour l'inférence de modèle augmente la vitesse de 534 %.

NVIDIA Triton : service d'inférence à faible latence et haut débit

Les solutions modernes de service de modèles peuvent transformer des modèles formés hors ligne en produits alimentés par ML destinés aux clients. Pour maintenir des coûts raisonnables à une telle échelle, il est important de maintenir des frais généraux faibles (gestion HTTP, prétraitement et post-traitement, communication CPU-GPU) et de tirer pleinement parti de la capacité de traitement parallèle des GPU.

NVIDIA Triton est un logiciel de service d'inférence proposant une large prise en charge des runtimes de modèles (NVIDIA TensorRT, ONNX, PyTorch, XGBoost entre autres) et des backends d'infrastructure, y compris les GPU, CPU et AWS Inférence.

Les praticiens du ML aiment Triton pour plusieurs raisons. Sa capacité de traitement par lots dynamique permet d'accumuler des demandes d'inférence pendant un délai défini par l'utilisateur et dans une taille de lot maximale définie par l'utilisateur, de sorte que l'inférence GPU est groupée, amortissant la surcharge de communication CPU-GPU. Notez que le traitement par lots dynamique se produit côté serveur et dans des délais très courts, de sorte que le client demandeur bénéficie toujours d'une expérience d'appel synchrone en temps quasi réel. Les utilisateurs de Triton apprécient également sa capacité d'exécution simultanée de modèles. Les GPU sont de puissants multitâches qui excellent dans l'exécution en parallèle de charges de travail intensives en calcul. Triton optimise l'utilisation et le débit du GPU en utilisant des flux CUDA pour exécuter plusieurs instances de modèle simultanément. Ces instances de modèle peuvent être différents modèles de différents frameworks pour différents cas d'utilisation, ou une copie directe du même modèle. Cela se traduit par une amélioration directe du débit lorsque vous disposez de suffisamment de mémoire GPU inactive. De plus, comme Triton n'est pas lié à un cadre de développement DL spécifique, il permet aux scientifiques de s'exprimer pleinement, dans l'outil de leur choix.

Avec Triton sur AWS, Amazon Search s'attend à mieux servir - clients et répondre aux exigences de latence à faible coût. L'intégration étroite entre le runtime TensorRT et le serveur Triton facilite l'expérience de développement. L'utilisation de l'infrastructure cloud d'AWS permet d'augmenter ou de diminuer l'échelle en quelques minutes en fonction des exigences de débit, tout en maintenant la barre haute en matière de fiabilité et de sécurité.

Comment AWS abaisse la barrière à l'entrée

Alors qu'Amazon Search a mené cette expérience sur l'infrastructure Amazon EC2, d'autres services AWS existent pour faciliter le développement, la formation et l'hébergement de solutions d'apprentissage en profondeur à la pointe de la technologie.

Par exemple, AWS et NVIDIA ont collaboré pour publier une implémentation gérée de Triton Inference Server dans Amazon Sage Maker ; pour plus d'informations, voir Déployez une IA rapide et évolutive avec NVIDIA Triton Inference Server dans Amazon SageMaker. AWS a également collaboré avec Hugging Face pour développer une intégration gérée et optimisée entre Amazon SageMaker et Hugging Face Transformers, le framework open source dont le modèle Amazon Search T5 est dérivé ; Lire la suite sur https://aws.amazon.com/machine-learning/hugging-face/.

Nous encourageons les clients disposant d'applications d'apprentissage en profondeur CPU et GPU sensibles à la latence à envisager NVIDIA TensorRT et Triton sur AWS. Faites-nous savoir ce que vous construisez!

Passionné par l'apprentissage en profondeur et la création de solutions basées sur l'apprentissage en profondeur pour Amazon Search ? Découvrez notre page carrières.


À propos des auteurs

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.RJ est un ingénieur de l'équipe Search M5 qui dirige les efforts de construction de systèmes d'apprentissage en profondeur à grande échelle pour la formation et l'inférence. En dehors du travail, il explore différentes cuisines culinaires et pratique des sports de raquette.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Hémant Pugaliya est chercheur appliqué au Search M5. Il travaille sur l'application des dernières recherches en matière de traitement du langage naturel et d'apprentissage en profondeur pour améliorer l'expérience client sur les achats Amazon dans le monde entier. Ses intérêts de recherche incluent le traitement du langage naturel et les systèmes d'apprentissage automatique à grande échelle. En dehors du travail, il aime faire de la randonnée, cuisiner et lire.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Andy Soleil est ingénieur logiciel et responsable technique de la correction orthographique de la recherche. Ses intérêts de recherche incluent l'optimisation de la latence d'inférence d'apprentissage en profondeur et la construction de plateformes d'expérimentation rapide. En dehors du travail, il aime le cinéma et les acrobaties.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Le Caï est ingénieur logiciel chez Amazon Search. Il travaille à l'amélioration des performances de la correction orthographique de la recherche pour aider les clients dans leur expérience d'achat. Il se concentre sur l'inférence en ligne haute performance et l'optimisation de la formation distribuée pour le modèle d'apprentissage en profondeur. En dehors du travail, il aime faire du ski, de la randonnée et du vélo.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Anthony Ko travaille actuellement comme ingénieur logiciel chez Search M5 Palo Alto, CA. Il travaille à la création d'outils et de produits pour le déploiement de modèles et l'optimisation des inférences. En dehors du travail, il aime cuisiner et pratiquer des sports de raquette.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Olivier Cruchant est un architecte de solutions spécialiste de l'apprentissage automatique chez AWS, basé en France. Olivier aide les clients d'AWS, des petites startups aux grandes entreprises, à développer et déployer des applications d'apprentissage automatique de niveau production. Dans ses temps libres, il aime lire des articles de recherche et explorer la nature sauvage avec ses amis et sa famille.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Anis Mohan est un architecte d'apprentissage machine chez NVIDIA et le responsable technique des engagements ML et DL avec ses clients dans la grande région de Seattle.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Jia Hong Liu est architecte de solutions au sein de l'équipe Cloud Service Provider de NVIDIA. Il aide les clients à adopter des solutions d'apprentissage automatique et d'IA qui tirent parti de l'informatique accélérée de NVIDIA pour relever leurs défis de formation et d'inférence. Dans ses temps libres, il aime l'origami, les projets de bricolage et jouer au basket.

Comment Amazon Search réalise une inférence T5 à faible latence et à haut débit avec NVIDIA Triton sur AWS PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Eliuth Triana est responsable des relations avec les développeurs chez NVIDIA. Il met en relation les chefs de produit, les développeurs et les scientifiques d'Amazon et d'AWS avec les technologues et les chefs de produit de NVIDIA pour accélérer les charges de travail Amazon ML/DL, les produits EC2 et les services AWS AI. De plus, Eliuth est un vététiste passionné, un skieur et un joueur de poker.

Horodatage:

Plus de Apprentissage automatique AWS