Utilisation des boîtes à outils d'entraînement et d'inférence SageMaker - Amazon SageMaker

Utilisation des boîtes à outils d'entraînement et d'inférence SageMaker

Les boîtes à outils d'entraînement et d'inférence SageMaker Training et SageMaker Inference mettent en œuvre les fonctionnalités dont vous avez besoin pour adapter vos conteneurs afin d'exécuter des scripts, entraîner des algorithmes et déployer des modèles sur SageMaker. Lorsqu'elle est installée, cette bibliothèque définit les éléments suivants pour les utilisateurs :

  • Les emplacements pour stocker du code et d'autres ressources.

  • Le point d'entrée qui contient le code à exécuter au démarrage du conteneur. Votre Dockerfile doit copier le code qui doit être exécuté à l'emplacement prévu par un conteneur compatible avec SageMaker.

  • D'autres informations dont un conteneur a besoin pour gérer les déploiements pour l'entraînement et l'inférence.

Structure des conteneurs avec boîtes à outils SageMaker

Quand SageMaker entraîne un modèle, il crée la structure de dossier de fichiers suivante dans le répertoire /opt/ml du conteneur.

/opt/ml ├── input │ ├── config │ │ ├── hyperparameters.json │ │ └── resourceConfig.json │ └── data │ └── <channel_name> │ └── <input data> ├── model │ ├── code │ ├── output │ └── failure

Lorsque vous exécutez une tâche d'entraînement de modèle, le conteneur SageMaker utilise le répertoire /opt/ml/input/, qui contient les fichiers JSON qui configurent les hyperparamètres pour l'algorithme et la disposition réseau utilisée pour l'entraînement distribué. Le répertoire /opt/ml/input/contient également des fichiers qui spécifient les canaux par lesquels SageMaker accède aux données stockées dans Amazon Simple Storage Service (Amazon S3). La bibliothèque de conteneurs SageMaker place les scripts que le conteneur exécutera dans le répertoire /opt/ml/code/. Votre script doit écrire le modèle généré par votre algorithme dans le répertoire /opt/ml/model/. Pour de plus amples informations, veuillez consulter Utilisation de vos propres algorithmes d'entraînement.

Lorsque vous hébergez un modèle entraîné sur SageMaker pour créer des inférences, vous déployez le modèle à un point de terminaison HTTP. Le modèle effectue des prédictions en temps réel en réponse aux requêtes d'inférence. Le conteneur doit contenir une pile de traitement pour traiter ces requêtes.

Dans un conteneur d'hébergement ou de transformation par lots, les fichiers de modèle se trouvent dans le même dossier que celui de leur écriture pendant l'entraînement.

/opt/ml/model │ └── <model files>

Pour de plus amples informations, veuillez consulter Utilisation de votre propre code d'inférence.

Conteneur unique versus conteneurs multiples

Vous pouvez fournir des images Docker distinctes pour l'algorithme d'entraînement et le code d'inférence, ou utiliser une image Docker unique pour les deux. Lorsque vous créez des images Docker à utiliser avec SageMaker, rappelez-vous que :

  • Fournir deux images Docker peut augmenter les exigences de stockage et les coûts, car les bibliothèques courantes risquent d'être dupliquées.

  • En général, les plus petits conteneurs démarrent plus rapidement à la fois pour l'entraînement et l'hébergement. Les modèles se forment plus rapidement et le service d'hébergement peut réagir aux augmentations du trafic en effectuant plus rapidement une mise à l'échelle.

  • Il se peut que vous arriviez à écrire un conteneur d'inférence nettement plus petit que le conteneur de formation. Cela est particulièrement courant lorsque l'on utilise des GPU pour l'entraînement, mais votre code d'inférence est optimisé pour les CPU.

  • SageMaker nécessite que les conteneurs Docker s'exécutent sans accès privilégié.

  • Les conteneurs Docker que vous créez et ceux fournis par SageMaker peuvent envoyer des messages aux fichiers Stdout et Stderr. SageMaker envoie ces messages à Amazon CloudWatch Logs dans votre compte AWS.

Pour de plus amples informations sur la création de conteneurs SageMaker et la façon dont les scripts y sont exécutés, veuillez consulter les référentiels Boîte à outils d'entraînement SageMaker et Boîte à outils d'inférence SageMaker sur GitHub. Ils fournissent également la liste des variables environnementales importantes et des variables environnementales fournies par les conteneurs SageMaker.