Optimisation des inférences pour les modèles Amazon SageMaker AI - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Optimisation des inférences pour les modèles Amazon SageMaker AI

Avec Amazon SageMaker AI, vous pouvez améliorer les performances de vos modèles d'IA générative en appliquant des techniques d'optimisation des inférences. En optimisant vos modèles, vous pouvez obtenir un meilleur rapport coût-performance pour votre cas d'utilisation. Lorsque vous optimisez un modèle, vous choisissez les techniques d'optimisation prises en charge à appliquer, notamment la quantification, le décodage spéculatif et la compilation. Une fois votre modèle optimisé, vous pouvez exécuter une évaluation pour connaître les indicateurs de performance en termes de latence, de débit et de prix.

Pour de nombreux modèles, l' SageMaker IA propose également plusieurs versions préoptimisées, chacune répondant aux différents besoins des applications en termes de latence et de débit. Pour de tels modèles, vous pouvez déployer l'une des versions optimisées sans avoir préalablement optimisé le modèle vous-même.

Techniques d'optimisation

Amazon SageMaker AI prend en charge les techniques d'optimisation suivantes.

Compilation

La compilation optimise le modèle pour obtenir les meilleures performances disponibles sur le type de matériel choisi sans perte de précision. Vous pouvez appliquer la compilation de modèles LLMs pour optimiser le matériel accéléré, tel que les instances GPU, les instances AWS Trainium ou les instances AWS Inferentia.

Lorsque vous optimisez un modèle avec la compilation, vous bénéficiez de la ahead-of-time compilation. Vous réduisez le temps de déploiement du modèle et la latence d'auto-scaling, car les pondérations du modèle ne nécessitent pas de just-in-time compilation lorsque le modèle est déployé sur une nouvelle instance.

Si vous choisissez de compiler votre modèle pour une instance de GPU, SageMaker AI utilise la bibliothèque TensorRT-LLM pour exécuter la compilation. Si vous choisissez de compiler votre modèle pour une instance AWS Trainium ou AWS Inferentia, SageMaker AI utilise le SDK AWS Neuron pour exécuter la compilation.

Quantification

La quantification est une technique qui permet de réduire les exigences matérielles d'un modèle en utilisant un type de données moins précis pour les poids et les activations. Une fois que vous avez optimisé un modèle avec la quantification, vous pouvez l'héberger sur un site moins cher et plus disponible GPUs. Cependant, le modèle quantifié peut être moins précis que le modèle source que vous avez optimisé.

Les formats de données pris en charge par l' SageMaker IA pour la quantification varient d'un modèle à l'autre. Les formats pris en charge sont les suivants :

  • INT4-AWQ — Format de données 4 bits. La quantification du poids sensible à l'activation (AWQ) est une technique de quantification efficace, précise, faible en LLMs bits et axée uniquement sur le poids.

  • FP8 — La virgule flottante 8 bits (FP8) est un format peu précis pour les nombres à virgule flottante. Il équilibre l'efficacité de la mémoire et la précision du modèle en représentant des valeurs avec moins de bits que le format à virgule FP16 flottante standard.

  • INT8- SmoothQuant — Un format de données 8 bits. SmoothQuant est une méthode de quantification à précision mixte qui permet d'ajuster conjointement les activations et les poids en équilibrant leurs plages dynamiques.

Décodage spéculatif

Le décodage spéculatif est une technique permettant d'accélérer le processus de décodage des fichiers volumineux. LLMs Il optimise les modèles en fonction de la latence sans compromettre la qualité du texte généré.

Cette technique utilise un modèle plus petit mais plus rapide appelé modèle brouillon. Le modèle provisoire génère des jetons candidats, qui sont ensuite validés par le modèle cible plus grand mais plus lent. À chaque itération, le projet de modèle génère plusieurs jetons candidats. Le modèle cible vérifie les jetons, et s'il trouve qu'un jeton en particulier n'est pas acceptable, il le rejette et le régénère. Ainsi, le modèle cible vérifie à la fois les jetons et en génère une petite quantité.

Le modèle provisoire est nettement plus rapide que le modèle cible. Il génère rapidement tous les jetons, puis en envoie des lots au modèle cible pour vérification. Le modèle cible les évalue tous en parallèle, ce qui accélère la réponse finale.

SageMaker L'IA propose un modèle de brouillon prédéfini que vous pouvez utiliser, de sorte que vous n'avez pas à créer le vôtre. Si vous préférez utiliser votre propre modèle de brouillon personnalisé, SageMaker AI prend également en charge cette option.

Chargement rapide du modèle

La technique de chargement rapide de modèles prépare un LLM afin que l' SageMaker IA puisse le charger plus rapidement sur une instance ML.

Pour préparer le modèle, l' SageMaker IA le divise à l'avance en le divisant en portions qui peuvent chacune résider sur un GPU distinct pour une inférence distribuée. En outre, l' SageMaker IA stocke les poids du modèle sous forme de blocs de taille égale que l' SageMaker IA peut charger simultanément sur l'instance.

Lorsque l' SageMaker IA charge le modèle optimisé sur l'instance, elle diffuse les poids du modèle directement depuis Amazon S3 vers GPUs l'instance. En diffusant les poids, l' SageMaker IA omet plusieurs étapes chronophages qui sont normalement nécessaires. Ces étapes incluent le téléchargement des artefacts du modèle depuis Amazon S3 sur le disque, le chargement des artefacts du modèle sur la mémoire de l'hôte et le partitionnement du modèle sur l'hôte avant de finalement charger les fragments sur le. GPUs

Une fois que vous avez optimisé votre modèle pour un chargement plus rapide, vous pouvez le déployer plus rapidement sur un point de terminaison basé sur l' SageMaker IA. De plus, si vous configurez le point de terminaison pour utiliser le dimensionnement automatique, il évolue plus rapidement pour s'adapter à l'augmentation du trafic.