Boîtes à outils d’entraînement et d’inférence SageMaker
Les boîtes à outils d’entraînement et d’inférence SageMaker Training
-
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 AI.
-
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 AI
Quand SageMaker AI 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 AI 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 AI accède aux données stockées dans Amazon Simple Storage Service (Amazon S3). La bibliothèque de conteneurs SageMaker AI 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 plus d’informations, consultez Conteneurs avec algorithmes d’entraînement personnalisés.
Lorsque vous hébergez un modèle entraîné sur SageMaker AI 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 plus d’informations, consultez Conteneurs avec code d’inférence personnalisé.
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 AI, 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 d’entraînement. 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 AI 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 AI peuvent envoyer des messages aux fichiers
StdoutetStderr. SageMaker AI envoie ces messages à Amazon CloudWatch Logs dans votre compte AWS.
Pour plus d’informations sur la création de conteneurs SageMaker AI et la façon dont les scripts y sont exécutés, consultez les référentiels Boîte à outils d’entraînement SageMaker AI