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
Amazon SageMaker AI propose deux approches pour optimiser l'inférence de votre modèle d'IA générative :
-
Recommandations d'inférence. SageMaker L'IA analyse automatiquement votre modèle et votre charge de travail, évalue les types d'instances, applique des optimisations et renvoie des configurations validées prêtes à être déployées avec des indicateurs de performance réels. C'est l'approche recommandée pour la plupart des clients. Consultez Recommandations d'inférence basées sur l'IA générative optimisées pour démarrer.
-
Optimisation manuelle. Pour les clients qui souhaitent adopter une approche autonome, vous pouvez appliquer des techniques d'optimisation individuelles telles que la quantification, le décodage spéculatif et la compilation. Vous choisissez les techniques à appliquer, vous exécutez les tâches d'optimisation et vous évaluez vous-même les résultats. Une fois votre modèle optimisé, vous pouvez exécuter une évaluation pour consulter les métriques 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 pour optimiser les LLM pour 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 via la compilation, vous bénéficiez d’une compilation anticipée. Vous réduisez le temps de déploiement du modèle et la latence d’autoscaling, car les poids du modèle ne nécessitent pas de compilation en flux tendu quand 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 TensorRT-LLM bibliothèque 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. Après avoir optimisé un modèle avec la quantification, vous pouvez l’héberger sur des GPU moins coûteux et plus disponibles. 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 comprennent :
-
INT4-AWQ — Un format de données 4 bits. Activation-aware La quantification du poids (AWQ) est une technique de quantification pour les LLM qui est efficace, précise, faible en bits et uniquement en poids.
-
FP8 : format à virgule flottante 8 bits (FP8) de faible précision pour les nombres à virgule flottante. Il équilibre efficacité de la mémoire et précision du modèle en représentant des valeurs avec moins de bits que le format à virgule flottante FP16 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 grands modèles de langage (LLM). Il optimise les modèles pour réduire la latence sans compromettre la qualité du texte généré.
Cette technique utilise un modèle plus petit, mais plus rapide, appelé brouillon de modèle. Le brouillon de modèle 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 brouillon 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 génère à nouveau. Ainsi, le modèle cible vérifie les jetons et en génère une petite quantité.
Le brouillon de modèle 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 des modèles
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 pouvant 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 les GPU de 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 partitions sur les GPU.
Après avoir 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 l’autoscaling, il augmente horizontalement plus rapidement pour s’adapter à la hausse du trafic.