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

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 de ML les plus courants et des variables d'environnement utiles qui vous permettent d'optimiser la performance sur 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 kit SDK Python SageMaker comme vous le feriez avec n'importe quel autre conteneur dans vos modèles SageMaker. Toutefois, l'utilisation du kit 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.

Inference

Pour l'inférence, vous pouvez utiliser vos modèles ML entraînés avec le serveur d'inférence Triton afin de 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 personnalisés Python/C++.

  • 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 modèle PyTorch entraîné dans SageMaker.

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

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

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