Utiliser le serveur d'inférence Triton avec Amazon SageMaker - Amazon SageMaker

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.

Utiliser le serveur d'inférence Triton avec Amazon SageMaker

SageMaker permet aux clients de déployer un modèle à l'aide d'un code personnalisé avec le serveur d'inférence NVIDIA Triton. Pour accéder à cette fonctionnalité, développez Triton Inference Server Containers (Conteneurs de serveur d'inférence Triton). Ces conteneurs incluent le serveur d'inférence NVIDIA Triton, la prise en charge des frameworks ML courants et des variables d'environnement utiles qui vous permettent d'optimiser les performances. SageMaker Pour obtenir la liste des images de conteneurs Deep Learning Containers disponibles, veuillez consulter Available Deep Learning Containers Images. Ces images de conteneurs Deep Learning Containers sont conservées et régulièrement mises à jour avec des correctifs de sécurité.

Vous pouvez utiliser le conteneur Triton Inference Server avec le SDK SageMaker Python comme n'importe quel autre conteneur dans vos modèles. SageMaker Cependant, l'utilisation du SDK SageMaker Python est facultative. Vous pouvez utiliser les conteneurs de serveur d'inférence Triton avec les extensions AWS CLI et AWS SDK for Python (Boto3).

Pour plus d'informations sur le serveur d'inférence NVIDIA Triton, veuillez consulter la documentation Triton.

Inférence

Note

Le backend Triton Python utilise la mémoire partagée (SHMEM) pour connecter votre code à Triton. SageMaker L'inférence fournit jusqu'à la moitié de la mémoire de l'instance sous forme de SHMEM, ce qui vous permet d'utiliser une instance avec plus de mémoire pour une taille SHMEM plus importante.

À des fins d'inférence, vous pouvez utiliser vos modèles de machine learning entraînés avec Triton Inference Server pour déployer une tâche d'inférence avec. SageMaker

Voici quelques fonctions clés du conteneur de serveur d'inférence Triton :

  • Prise en charge de plusieurs cadres : Triton peut être utilisé pour déployer des modèles à partir de tous les principaux frameworks de ML. Triton prend en charge TensorFlow GraphDef et SavedModel, ONNX, PyTorch TorchScript TensorRT et les formats de modèles Python/C++ personnalisés.

  • Pipelines de modèles : l'ensemble des modèles Triton représente un pipeline d'un modèle avec une logique de pré/post-traitement et la connexion des tenseurs d'entrée et de sortie entre eux. Une seule demande d'inférence à un ensemble déclenche l'exécution du pipeline entier.

  • Exécution simultanée du modèle : plusieurs instances du même modèle peuvent s'exécuter simultanément sur le même GPU ou sur plusieurs GPU.

  • Traitement par lots dynamique : pour les modèles qui prennent en charge le traitement par lots, Triton dispose de plusieurs algorithmes de planification et de traitement par lots intégrés qui combinent des demandes d'inférence individuelles pour améliorer le débit d'inférence. Ces décisions de planification et de traitement par lots sont transparentes pour le client qui demande l'inférence.

  • Prise en charge de divers CPU et GPU : les modèles peuvent être exécutés sur des CPU ou des GPU pour une flexibilité maximale et pour prendre en charge des exigences informatiques hétérogènes.

Que souhaitez-vous faire ?

Je souhaite déployer mon PyTorch modèle entraîné dans SageMaker.

Pour un exemple de bloc-notes Jupyter, consultez l'exemple Déployez votre modèle PyTorch Resnet50 avec le serveur d'inférence Triton.

Je souhaite déployer mon modèle SageMaker Hugging Face entraîné dans.

Pour un exemple de bloc-notes Jupyter, consultez l'exemple Déployez votre modèle PyTorch BERT avec le serveur d'inférence Triton.