Amazon SageMaker Training Compiler - Amazon SageMaker AI

Amazon SageMaker Training Compiler

Important

Amazon Web Services (AWS) annonce qu’il n’y aura aucune nouvelle mise à jour ou version de SageMaker Training Compiler. Vous pouvez continuer à utiliser SageMaker Training Compiler via les AWS Deep Learning Containers (DLC) existants pour SageMaker Training. Il est important de noter que même si les DLC existants restent accessibles, ils ne recevront plus de correctifs ni de mises à jour d’AWS, conformément à la politique de support du Framework AWS Deep Learning Containers.

Utilisez Amazon SageMaker Training Compiler pour entraîner des modèles de Deep Learning (DL) plus rapidement sur des instances GPU évolutives gérées par SageMaker AI.

Qu’est-ce que SageMaker Training Compiler ?

Les modèles de deep learning (DL) à la pointe de la technologie se composent de réseaux neuronaux multicouches complexes avec des milliards de paramètres dont l’entraînement peut prendre des milliers d’heures de GPU. L’optimisation de tels modèles sur l’infrastructure d’entraînement nécessite une connaissance approfondie de la DL et de l’ingénierie des systèmes. Cela relève même du défi pour certains cas d’utilisation. Bien qu’il existe des implémentations open source de compilateurs qui optimisent le processus d’entraînement DL, ils peuvent manquer de flexibilité pour intégrer les cadres DL avec certains matériels tels que les instances GPU.

SageMaker Training Compiler est une capacité de SageMaker AI qui rend ces optimisations difficiles à mettre en œuvre pour réduire le temps d’entraînement sur les instances GPU. Le compilateur optimise les modèles DL pour accélérer l’entraînement en utilisant plus efficacement les instances GPU de machine learning (ML) de SageMaker AI. SageMaker Training Compiler est disponible sans frais supplémentaires dans SageMaker AI et peut aider à réduire le temps total facturable, car il accélère l’entraînement.

Schéma conceptuel du fonctionnement de SageMaker Training Compiler avec SageMaker AI.

SageMaker Training Compiler est intégré aux conteneurs Deep Learning Containers (DLC) AWS. À l’aide des conteneurs DLC AWS compatibles avec SageMaker Training Compiler, vous pouvez combiner et optimiser les tâches d’entraînement sur les instances GPU avec des modifications minimales de votre code. Apportez vos modèles de deep learning à SageMaker AI et activez SageMaker Training Compiler pour accélérer la vitesse de votre tâche d’entraînement sur les instances SageMaker AI ML pour un calcul accéléré.

Comment ça marche

SageMaker Training Compiler convertit les modèles DL de leur représentation linguistique de haut niveau en instructions optimisées pour le matériel. Plus précisément, SageMaker Training Compiler applique des optimisations au niveau du graphique, des optimisations au niveau du flux de données et des optimisations backend pour produire un modèle optimisé qui utilise efficacement les ressources matérielles. Par conséquent, vous pouvez entraîner vos modèles plus rapidement que lorsque vous les entraînez sans compilation.

Il s’agit d’un processus en deux étapes pour activer SageMaker Training Compiler pour vos tâches d’entraînement :

  1. Apportez votre propre script DL et, si nécessaire, adaptez-le pour la compilation et l’entraînement avec SageMaker Training Compiler. Pour en savoir plus, consultez Apporter votre propre modèle de deep learning.

  2. Créez un objet estimateur SageMaker AI avec le paramètre de configuration du compilateur à l’aide du kit SageMaker Python SDK.

    1. Activez SageMaker Training Compiler en ajoutant compiler_config=TrainingCompilerConfig() à la classe de l’estimateur SageMaker AI.

    2. Ajustez les hyperparamètres (batch_size et learning_rate) pour maximiser les avantages offerts par SageMaker Training Compiler.

      La compilation via SageMaker Training Compiler modifie l’empreinte mémoire du modèle. Le plus souvent, cela se traduit par une réduction de l’utilisation de la mémoire et par une augmentation consécutive de la plus grande taille de lot pouvant être stockée sur le GPU. Dans certains cas, le compilateur favorise intelligemment la mise en cache, ce qui entraîne une diminution de la plus grande taille de lot pouvant être stockée sur le GPU. Notez que si vous souhaitez modifier la taille du lot, vous devez ajuster le taux d’entraînement de manière appropriée.

      Pour connaître une référence de test de batch_size pour les modèles les plus populaires, consultez Modèles testés.

      Lorsque vous ajustez la taille du lot, vous devez également ajuster learning_rate de manière appropriée. Pour connaître les bonnes pratiques d’ajustement du taux d’apprentissage en fonction de la modification de la taille du lot, consultez SageMaker Training Compiler : bonnes pratiques et considérations.

    3. En exécutant la méthode de classe estimator.fit(), SageMaker AI compile votre modèle et commence la tâche d’entraînement.

    Pour savoir comment lancer une tâche d’entraînement, consultez Activer SageMaker Training Compiler.

SageMaker Training Compiler ne modifie pas le modèle entraîné final et vous permet d’accélérer la tâche d’entraînement en utilisant plus efficacement la mémoire GPU et en adaptant une plus grande taille de lot par itération. Le modèle entraîné final de la tâche d’entraînement accélérée par le compilateur est identique à celui de la tâche d’entraînement ordinaire.

Astuce

SageMaker Training Compiler compile uniquement les modèles DL pour l’entraînement sur les instances GPU prises en charge gérées par SageMaker AI. Pour compiler votre modèle pour l’inférence et le déployer pour qu’il s’exécute n’importe où dans le cloud et à la périphérie, utilisez le compilateur SageMaker Neo.