Choisissez la meilleure source de données pour votre tâche de formation Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Choisissez la meilleure source de données pour votre tâche de formation Amazon SageMaker

Amazon Sage Maker est un service géré qui facilite la création, la formation et le déploiement de modèles d'apprentissage automatique (ML). Les scientifiques des données utilisent les tâches de formation SageMaker pour former facilement des modèles ML ; vous n'avez pas à vous soucier de la gestion des ressources de calcul et vous ne payez que pour le temps de formation réel. L'ingestion de données fait partie intégrante de tout pipeline de formation, et les tâches de formation SageMaker prennent en charge une variété de modes de stockage et d'entrée de données pour s'adapter à un large éventail de charges de travail de formation.

Cet article vous aide à choisir la meilleure source de données pour votre cas d'utilisation de formation SageMaker ML. Nous présentons les options de sources de données prises en charge de manière native par les tâches de formation SageMaker. Pour chaque source de données et mode de saisie, nous décrivons sa facilité d'utilisation, ses caractéristiques de performance, son coût et ses limites. Pour vous aider à démarrer rapidement, nous fournissons le diagramme avec un exemple de flux de décision que vous pouvez suivre en fonction des principales caractéristiques de votre charge de travail. Enfin, nous effectuons plusieurs benchmarks pour des scénarios de formation réalistes afin de démontrer les implications pratiques sur le coût et la performance globale de la formation.

Sources de données et modes de saisie natifs SageMaker

La lecture simple et flexible des données de formation de manière performante est une préoccupation récurrente commune pour la formation ML. SageMaker simplifie l'ingestion de données avec une sélection de mécanismes d'ingestion de données efficaces et à haut débit appelés sources de données et leurs modes d'entrée respectifs. Cela vous permet de dissocier le code de formation de la source de données réelle, de monter automatiquement des systèmes de fichiers, de lire avec des performances élevées, d'activer facilement le partage de données entre les GPU et les instances pour activer le parallélisme des données et de mélanger automatiquement les données au début de chaque époque.

Le mécanisme d'ingestion de formation SageMaker s'intègre nativement à trois services de stockage gérés AWS :

  • Service de stockage simple Amazon (Amazon S3) est un service de stockage d'objets qui offre une évolutivité, une disponibilité des données, une sécurité et des performances de pointe.
  • Amazon FSx pour Lustre est un stockage partagé entièrement géré avec l'évolutivité et les performances du célèbre système de fichiers Lustre. Il est généralement lié à un compartiment S3 existant.
  • Système de fichiers Amazon Elastic (Amazon EFS) est un système de fichiers partagé à usage général, évolutif et hautement disponible avec plusieurs niveaux de prix. Amazon EFS est sans serveur et s'agrandit et se réduit automatiquement au fur et à mesure que vous ajoutez et supprimez des fichiers.

La formation SageMaker permet à votre script de formation d'accéder aux ensembles de données stockés sur Amazon S3, FSx for Lustre ou Amazon EFS, comme s'il était disponible sur un système de fichiers local (via une interface de système de fichiers compatible POSIX).

Avec Amazon S3 comme source de données, vous pouvez choisir entre le mode File, le mode FastFile et le mode Pipe :

  • Mode fichier – SageMaker copie un ensemble de données d'Amazon S3 vers le stockage d'instance ML, qui est un Boutique de blocs élastiques Amazon (Amazon EBS) ou volume SSD NVMe, avant le démarrage de votre script de formation.
  • Mode FastFile – SageMaker expose un ensemble de données résidant dans Amazon S3 en tant que système de fichiers POSIX sur l'instance de formation. Les fichiers d'ensemble de données sont diffusés à partir d'Amazon S3 à la demande au fur et à mesure que votre script de formation les lit.
  • Mode tuyau – SageMaker diffuse un ensemble de données résidant dans Amazon S3 vers l'instance de formation ML en tant que canal Unix, qui diffuse depuis Amazon S3 à la demande lorsque votre script de formation lit les données du canal.

Avec FSx for Lustre ou Amazon EFS comme source de données, SageMaker monte le système de fichiers avant le démarrage de votre script de formation.

Canaux d'entrée de formation

Lors du lancement d'une tâche de formation SageMaker, vous pouvez spécifier jusqu'à 20 canaux d'entrée de formation. Vous pouvez considérer les canaux comme une unité d'abstraction pour indiquer à la tâche d'entraînement comment et où obtenir les données mises à la disposition du code de l'algorithme pour les lire à partir d'un chemin de système de fichiers (par exemple, /opt/ml/input/data/input-channel-name) sur l'instance de ML. Les canaux de formation sélectionnés sont capturés dans le cadre des métadonnées de la tâche de formation afin de permettre un suivi complet de la lignée du modèle pour les cas d'utilisation tels que la reproductibilité des tâches de formation ou à des fins de gouvernance du modèle.

Pour utiliser Amazon S3 comme source de données, vous définissez un FormationEntrée pour préciser ce qui suit :

  • Votre mode de saisie (mode File, FastFile ou Pipe)
  • Distribution ainsi que mélanger paramétrage
  • An S3DataType comme l'une des trois méthodes de spécification des objets dans Amazon S3 qui composent votre ensemble de données :

Alternativement, pour FSx for Lustre ou Amazon EFS, vous définissez un Entrée du système de fichiers.

Le diagramme suivant montre cinq tâches d'entraînement, chacune configurée avec une combinaison différente de source de données et de mode d'entrée :

Choisissez la meilleure source de données pour votre tâche de formation Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Sources de données et modes de saisie

Les sections suivantes expliquent en profondeur les différences entre Amazon S3 (mode Fichier, mode FastFile et mode Pipe), FSx pour Lustre et Amazon EFS en tant que mécanismes d'ingestion SageMaker.

Mode fichier Amazon S3

Le mode fichier est le mode d'entrée par défaut (si vous n'en avez pas explicitement spécifié un), et c'est le plus simple à utiliser. Lorsque vous utilisez cette option d'entrée, SageMaker télécharge l'ensemble de données d'Amazon S3 dans le stockage d'instance de formation ML (Amazon EBS ou NVMe local selon le type d'instance) en votre nom avant de lancer la formation du modèle, afin que le script de formation puisse lire l'ensemble de données à partir de le système de fichiers local. Dans ce cas, l'instance doit disposer de suffisamment d'espace de stockage pour contenir l'intégralité de l'ensemble de données.

Vous configurez l'ensemble de données pour le mode Fichier en fournissant un préfixe S3, un fichier manifeste ou un fichier manifeste augmenté.

Vous devez utiliser un préfixe S3 lorsque tous vos fichiers d'ensemble de données se trouvent dans un préfixe S3 commun (les sous-dossiers sont acceptables).

Le fichier manifeste répertorie les fichiers comprenant votre ensemble de données. Vous utilisez généralement un manifeste lorsqu'une tâche de prétraitement des données émet un fichier manifeste ou lorsque vos fichiers d'ensemble de données sont répartis sur plusieurs préfixes S3. Un manifeste augmenté est un fichier de ligne JSON, où chaque ligne contient une liste d'attributs, comme une référence à un fichier dans Amazon S3, ainsi que des attributs supplémentaires, principalement des étiquettes. Ses cas d'utilisation sont similaires à ceux d'un manifeste.

Le mode fichier est compatible avec Mode local SageMaker (démarrage interactif d'un conteneur de formation SageMaker en quelques secondes). Pour la formation distribuée, vous pouvez partitionner l'ensemble de données sur plusieurs instances avec le ShardedByS3Key option.

La vitesse de téléchargement du mode fichier dépend de la taille de l'ensemble de données, de la taille moyenne des fichiers et du nombre de fichiers. Par exemple, plus le jeu de données est volumineux (ou plus il contient de fichiers), plus la phase de téléchargement est longue, pendant laquelle la ressource de calcul de l'instance reste effectivement inactive. Lors de la formation avec des instances Spot, l'ensemble de données est téléchargé chaque fois que la tâche reprend après une interruption Spot. Généralement, le téléchargement des données s'effectue à environ 200 Mo/s pour les fichiers volumineux (par exemple, 5 minutes/50 Go). Le fait que cette surcharge de démarrage soit acceptable dépend principalement de la durée globale de votre travail de formation, car une phase de formation plus longue signifie une phase de téléchargement proportionnellement plus petite.

Mode FastFile d'Amazon S3

Le mode FastFile expose les objets S3 via une interface de système de fichiers compatible POSIX, comme si les fichiers étaient disponibles sur le disque local de votre instance de formation, et diffuse leur contenu à la demande lorsque les données sont consommées par le script de formation. Cela signifie que votre ensemble de données n'a plus besoin de tenir dans l'espace de stockage de l'instance d'entraînement et que vous n'avez pas besoin d'attendre que l'ensemble de données soit téléchargé sur l'instance d'entraînement avant que l'entraînement puisse commencer.

Pour faciliter cela, SageMaker répertorie toutes les métadonnées d'objet stockées sous le préfixe S3 spécifié avant l'exécution de votre script de formation. Ces métadonnées sont utilisées pour créer un fichier en lecture seule FUSE (système de fichiers dans l'espace utilisateur) disponible pour votre script d'entraînement via /opt/ml/data/training-channel-name. La liste des objets S3 s'exécute aussi rapidement que 5,500 3 objets par seconde, quelle que soit leur taille. C'est beaucoup plus rapide que de télécharger des fichiers à l'avance, comme c'est le cas avec le mode Fichier. Pendant que votre script de formation est en cours d'exécution, il peut répertorier ou lire des fichiers comme s'ils étaient disponibles localement. Chaque opération de lecture est déléguée au service FUSE, qui transmet les requêtes GET à Amazon SXNUMX afin de fournir le contenu réel du fichier à l'appelant. Comme un système de fichiers local, FastFile traite les fichiers comme des octets, il est donc indépendant des formats de fichiers. Le mode FastFile peut atteindre un débit de plus d'un Go/s lors de la lecture séquentielle de fichiers volumineux à l'aide de plusieurs nœuds de calcul. Vous pouvez utiliser FastFile pour lire de petits fichiers ou récupérer des plages d'octets aléatoires, mais vous devez vous attendre à un débit inférieur pour de tels modèles d'accès. Vous pouvez optimiser votre modèle d'accès en lecture en sérialisant de nombreux petits fichiers dans des conteneurs de fichiers plus grands et en les lisant de manière séquentielle.

FastFile ne prend actuellement en charge que les préfixes S3 (pas de prise en charge du manifeste et du manifeste augmenté), et le mode FastFile est compatible avec le mode local SageMaker.

Mode canal Amazon S3

Le mode Pipe est un autre mode de streaming qui est largement remplacé par le mode FastFile, plus récent et plus simple à utiliser.

Avec le mode Pipe, les données sont pré-extraites d'Amazon S3 avec une simultanéité et un débit élevés, et diffusées dans des canaux FIFO nommés Unix. Chaque tube ne peut être lu que par un seul processus. Une extension spécifique à SageMaker pour TensorFlow intègre le mode Pipe dans le chargeur de données natif TensorFlow pour les formats de fichier texte, TFRecords ou RecordIO en streaming. Le mode Pipe prend également en charge le partitionnement géré et le brassage des données.

FSx pour Lustre

FSx for Lustre peut évoluer jusqu'à des centaines de Go/s de débit et des millions d'IOPS avec une récupération de fichiers à faible latence.

Lors du démarrage d'une tâche de formation, SageMaker monte le système de fichiers FSx for Lustre sur le système de fichiers de l'instance de formation, puis démarre votre script de formation. Le montage lui-même est une opération relativement rapide qui ne dépend pas de la taille du jeu de données stocké dans FSx pour Lustre.

Dans de nombreux cas, vous créez un système de fichiers FSx pour Lustre et liez-le à un compartiment et à un préfixe S3. Lorsqu'ils sont liés à un compartiment S3 en tant que source, les fichiers sont chargés paresseusement dans le système de fichiers au fur et à mesure que votre script de formation les lit. Cela signifie que juste après la première époque de votre première exécution d'entraînement, l'intégralité de l'ensemble de données est copié d'Amazon S3 vers le FSx pour le stockage Lustre (en supposant qu'une époque est définie comme un seul balayage complet dans les exemples d'entraînement, et que le FSx alloué pour Le stockage de lustre est assez grand). Cela permet un accès aux fichiers à faible latence pour toutes les époques ultérieures et les tâches de formation avec le même ensemble de données.

Vous pouvez aussi vous précharger les fichiers dans le système de fichiers avant de commencer la tâche d'entraînement, ce qui atténue le démarrage à froid dû au chargement paresseux. Il est également possible d'exécuter plusieurs tâches de formation en parallèle qui sont desservies par le même système de fichiers FSx for Lustre. Pour accéder à FSx for Lustre, votre tâche d'entraînement doit se connecter à un VPC (voir Paramètres VPCConfig), qui nécessite la configuration et l'implication de DevOps. Pour éviter les coûts de transfert de données, le système de fichiers utilise une seule zone de disponibilité et vous devez spécifier cet ID de zone de disponibilité lors de l'exécution de la tâche de formation. Étant donné que vous utilisez Amazon S3 comme stockage de données à long terme, nous vous recommandons de déployer votre FSx pour Lustre avec le stockage Scratch 2, en tant que choix de stockage à court terme rentable pour un débit élevé, fournissant une base de référence de 200 Mo/s et une rafale allant jusqu'à 1300 Mo/s par To de stockage provisionné.

Avec votre système de fichiers FSx for Lustre en cours d'exécution en permanence, vous pouvez démarrer de nouvelles tâches de formation sans attendre la création d'un système de fichiers, et vous n'avez pas à vous soucier du démarrage à froid pendant la toute première époque (car les fichiers peuvent toujours être mis en cache dans le système de fichiers FSx for Lustre). L'inconvénient de ce scénario est le coût supplémentaire associé au maintien du fonctionnement du système de fichiers. Alternativement, vous pouvez créer et supprimer le système de fichiers avant et après chaque tâche de formation (probablement avec une automatisation scriptée pour vous aider), mais il faut du temps pour initialiser un système de fichiers FSx for Lustre, qui est proportionnel au nombre de fichiers qu'il contient (par exemple, il faut environ une heure pour indexer environ 2 millions d'objets d'Amazon S3).

AmazonEFS

Nous vous recommandons d'utiliser Amazon EFS si vos données de formation résident déjà dans Amazon EFS en raison de cas d'utilisation autres que la formation ML. Pour utiliser Amazon EFS comme source de données, les données doivent déjà résider dans Amazon EFS avant la formation. SageMaker monte le système de fichiers Amazon EFS spécifié sur l'instance de formation, puis démarre votre script de formation. Lors de la configuration du système de fichiers Amazon EFS, vous devez choisir entre le mode de performances à usage général par défaut, qui est optimisé pour la latence (bon pour les petits fichiers), et le mode de performances Max I/O, qui peut évoluer vers des niveaux plus élevés de débit agrégé et opérations par seconde (meilleur pour les travaux de formation avec de nombreux travailleurs d'E/S). Pour en savoir plus, consultez Utiliser le bon mode de performance.

De plus, vous pouvez choisir entre deux options de débit mesuré : débit en rafale et débit provisionné. Le débit en rafale pour un système de fichiers de 1 To fournit une ligne de base de 150 Mo/s, tout en pouvant atteindre 300 Mo/s pendant une période de 12 heures par jour. Si vous avez besoin d'un débit de base plus élevé ou si vous manquez trop souvent de crédits en rafale, vous pouvez soit augmenter la taille du système de fichiers, soit passer au débit provisionné. Dans le débit provisionné, vous payez pour le débit de base souhaité jusqu'à un maximum de 3072 Mo/s en lecture.

Votre tâche d'entraînement doit se connecter à un VPC (voir Paramètres VPCConfig) pour accéder à Amazon EFS.

Choisir la meilleure source de données

La meilleure source de données pour votre travail de formation dépend des caractéristiques de la charge de travail telles que la taille de l'ensemble de données, le format de fichier, la taille moyenne du fichier, la durée de la formation, le modèle de lecture séquentielle ou aléatoire du chargeur de données et la vitesse à laquelle votre modèle peut consommer les données de formation.

L'organigramme suivant fournit quelques directives pour vous aider à démarrer :
Choisissez la meilleure source de données pour votre tâche de formation Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Quand utiliser Amazon EFS

Si votre ensemble de données est principalement stocké sur Amazon EFS, vous pouvez avoir une application de prétraitement ou d'annotations qui utilise Amazon EFS pour le stockage. Vous pouvez facilement exécuter une tâche de formation configurée avec un canal de données pointant vers le système de fichiers Amazon EFS (pour plus d'informations, reportez-vous à Accélérez la formation sur Amazon SageMaker à l'aide d'Amazon FSx pour Luster et des systèmes de fichiers Amazon EFS). Si les performances ne sont pas aussi bonnes que prévu, vérifiez vos options d'optimisation avec le Guide des performances d'Amazon EFS, ou envisagez d'autres modes d'entrée.

Utiliser le mode Fichier pour les petits ensembles de données

Si l'ensemble de données est stocké sur Amazon S3 et que son volume global est relativement faible (par exemple, moins de 50 à 100 Go), essayez d'utiliser le mode Fichier. La surcharge de téléchargement d'un jeu de données de 50 Go peut varier en fonction du nombre total de fichiers (par exemple, environ 5 minutes s'il est divisé en fragments de 100 Mo). Le fait que cette surcharge de démarrage soit acceptable dépend principalement de la durée globale de votre travail de formation, car une phase de formation plus longue signifie une phase de téléchargement proportionnellement plus petite.

Sérialiser plusieurs petits fichiers ensemble

Si la taille de votre ensemble de données est petite (moins de 50 à 100 Go), mais qu'il est composé de nombreux petits fichiers (moins de 50 Mo), la surcharge de téléchargement en mode fichier augmente, car chaque fichier doit être téléchargé individuellement depuis Amazon S3 vers le volume d'instances d'entraînement. Pour réduire cette surcharge et accélérer la traversée des données en général, envisagez de sérialiser des groupes de fichiers plus petits dans des conteneurs de fichiers moins volumineux (par exemple, 150 Mo par fichier) en utilisant des formats de fichier tels que TFEnregistrement pour TensorFlow, Ensemble de données Web pour PyTorch, ou EnregistrementIO pour MXNet. Ces formats nécessitent que votre chargeur de données parcoure les exemples de manière séquentielle. Vous pouvez toujours mélanger vos données en réorganisant de manière aléatoire la liste des fichiers TFRecord après chaque époque et en échantillonnant de manière aléatoire des données à partir d'un tampon de mélange local (voir ce qui suit Exemple TensorFlow).

Quand utiliser le mode FastFile

Pour les ensembles de données plus volumineux avec des fichiers plus volumineux (plus de 50 Mo), la première option consiste à essayer le mode FastFile, qui est plus simple à utiliser que FSx pour Lustre car il ne nécessite pas la création d'un système de fichiers ou la connexion à un VPC. Le mode FastFile est idéal pour les conteneurs de fichiers volumineux (plus de 150 Mo) et peut également convenir aux fichiers de plus de 50 Mo. Comme le mode FastFile fournit une interface POSIX, il prend en charge les lectures aléatoires (lecture de plages d'octets non séquentielles). Cependant, ce n'est pas le cas d'utilisation idéal et votre débit serait probablement inférieur à celui des lectures séquentielles. Toutefois, si vous disposez d'un modèle ML relativement volumineux et gourmand en calculs, le mode FastFile peut toujours être en mesure de saturer la bande passante effective du pipeline de formation et de ne pas entraîner de goulot d'étranglement d'E/S. Vous aurez besoin d'expérimenter et de voir. Heureusement, passer du mode Fichier à FastFile (et inversement) est aussi simple que d'ajouter (ou de supprimer) le input_mode='FastFile' lors de la définition de votre canal d'entrée à l'aide du SDK Python SageMaker :

sagemaker.inputs.TrainingInput(S3_INPUT_FOLDER, input_mode='FastFile') 

Aucun autre code ou configuration ne doit être modifié.

Quand utiliser FSx pour Lustre

Si votre ensemble de données est trop volumineux pour le mode Fichier, ou contient de nombreux petits fichiers (que vous ne pouvez pas sérialiser facilement), ou si vous avez un modèle d'accès en lecture aléatoire, FSx for Lustre est une bonne option à considérer. Son système de fichiers s'adapte à des centaines de Go/s de débit et à des millions d'IOPS, ce qui est idéal lorsque vous avez de nombreux petits fichiers. Cependant, comme nous l'avons déjà mentionné précédemment, gardez à l'esprit les problèmes de démarrage à froid dus au chargement paresseux et les frais généraux liés à la configuration et à l'initialisation du système de fichiers FSx for Lustre.

Considérations de coût

Pour la majorité des tâches de formation ML, en particulier les tâches utilisant des GPU ou des puces ML spécialement conçues, la plupart des coûts de formation correspondent aux secondes facturables de l'instance de formation ML. Les Go de stockage par mois, les demandes d'API et le débit provisionné sont des coûts supplémentaires qui sont directement associés aux sources de données que vous utilisez.

Go de stockage par mois

Le stockage en Go par mois peut être important pour les ensembles de données plus volumineux, tels que les vidéos, les données de capteurs LiDAR et les journaux d'enchères en temps réel d'AdTech. Par exemple, stocker 1 To dans le Niveau d'accès fréquent Amazon S3 Intelligent-Tiering coûte 23 $ par mois. L'ajout du système de fichiers FSx for Lustre au-dessus d'Amazon S3 entraîne des coûts supplémentaires. Par exemple, la création d'un système de fichiers de 1.2 To de type Scratch 2 avec SSD avec compression de données désactivée coûte 168 $ supplémentaires par mois (140 $/To/mois).

Avec Amazon S3 et Amazon EFS, vous ne payez que ce que vous utilisez, ce qui signifie que vous êtes facturé en fonction de la taille réelle de l'ensemble de données. Avec FSx for Lustre, vous êtes facturé en fonction de la taille du système de fichiers provisionné (1.2 To au minimum). Lors de l'exécution d'instances ML avec des volumes EBS, Amazon EBS est facturé indépendamment de l'instance ML. Il s'agit généralement d'un coût bien inférieur par rapport au coût d'exécution de l'instance. Par exemple, l'exécution d'une instance ml.p3.2xlarge avec un volume EBS de 100 Go pendant 1 heure coûte 3.825 USD pour l'instance et 0.02 USD pour le volume EBS.

Demandes d'API et coût du débit provisionné

Pendant que votre tâche de formation parcourt l'ensemble de données, elle répertorie et récupère les fichiers en envoyant des demandes d'API Amazon S3. Par exemple, chaque million de requêtes GET coûte 0.4 $ (avec la classe Intelligent-Tiering). Vous ne devez vous attendre à aucun coût de transfert de données pour la bande passante entrant et sortant d'Amazon S3, car la formation a lieu dans une seule zone de disponibilité.

Lorsque vous utilisez un FSx for Lustre lié à un compartiment S3, vous encourez des coûts de demande d'API Amazon S3 pour lire des données qui ne sont pas encore mises en cache dans le système de fichiers, car FSx For Lustre transmet la demande à Amazon S3 (et met en cache le résultat ). Il n'y a pas de coûts de demande directs pour FSx pour Lustre lui-même. Lorsque vous utilisez un système de fichiers FSx for Lustre, évitez les coûts de transfert de données entre les zones de disponibilité en exécutant votre tâche de formation connectée à la même zone de disponibilité dans laquelle vous avez provisionné le système de fichiers. Amazon EFS avec débit provisionné ajoute un coût supplémentaire à considérer au-delà Go par mois.

Étude de cas de performance

Pour démontrer les considérations de performance de formation mentionnées précédemment, nous avons effectué une série de tests de performance pour un cas d'utilisation réaliste dans le domaine de la vision par ordinateur. La référence (et les points à retenir) de cette section peut ne pas s'appliquer à tous les scénarios et est affectée par divers facteurs prédéterminés que nous avons utilisés, tels que DNN. Nous avons effectué des tests pour 12 combinaisons des éléments suivants :

  • Modes d'entrée – FSx pour Lustre, mode Fichier, mode FastFile
  • Taille du jeu de données – Jeu de données plus petit (1 Go), jeu de données plus grand (54 Go)
  • Taille du fichier – Fichiers plus petits (JPG, environ 39 Ko), fichiers plus volumineux (TFRecord, environ 110 Mo)

Pour cette étude de cas, nous avons choisi les modes d'entrée les plus largement utilisés, et avons donc omis Amazon EFS et le mode Pipe.

Les benchmarks de l'étude de cas ont été conçus comme des tâches de formation SageMaker TensorFlow de bout en bout sur une instance mono-GPU ml.p3.2xlarge. Nous avons choisi le célèbre ResNet-50 comme modèle de base pour la tâche de classification et Caltech-256 comme ensemble de données de formation plus petit (que nous avons répliqué 50 fois pour créer sa version plus grande de l'ensemble de données). Nous avons effectué la formation pour une époque, définie comme un seul balayage complet à travers les exemples de formation.

Les graphiques suivants montrent le temps facturable total des tâches de formation SageMaker pour chaque scénario de référence. Le temps de travail total lui-même comprend le téléchargement, la formation et d'autres étapes (telles que le démarrage du conteneur et le téléchargement d'artefacts de modèle formés sur Amazon S3). Des temps facturables plus courts se traduisent par des travaux de formation plus rapides et moins chers.

Choisissez la meilleure source de données pour votre tâche de formation Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Discutons d'abord Scénario A et Scénario C, qui illustrent de manière pratique la différence de performances entre les modes d'entrée lorsque l'ensemble de données est composé de nombreux petits fichiers.

Scénario A (fichiers plus petits, ensemble de données plus petit) révèle que le travail de formation avec le système de fichiers FSx for Lustre a le temps facturable le plus petit. Il a la phase de téléchargement la plus courte et sa phase de formation est aussi rapide que le mode Fichier, mais plus rapide que FastFile. FSx for Lustre est le gagnant de ce test d'époque unique. Cela dit, considérez une charge de travail similaire mais avec plusieurs époques - la surcharge relative du mode Fichier due à l'étape de téléchargement diminue à mesure que d'autres époques sont ajoutées. Dans ce cas, nous préférons le mode Fichier pour sa facilité d'utilisation. De plus, vous trouverez peut-être que l'utilisation du mode Fichier et le paiement de 100 secondes facturables supplémentaires est un meilleur choix que de payer et de provisionner un système de fichiers FSx pour Lustre.

Scénario C (fichiers plus petits, ensemble de données plus volumineux) montre FSx pour Lustre comme le mode le plus rapide, avec seulement 5,000 1.5 secondes de temps facturable total. Il a également l'étape de téléchargement la plus courte, car le montage du système de fichiers FSx for Lustre ne dépend pas du nombre de fichiers dans le système de fichiers (3 million de fichiers dans ce cas). La surcharge de téléchargement de FastFile est également faible ; il récupère uniquement les métadonnées des fichiers résidant sous le préfixe de compartiment S10,000 spécifié, tandis que le contenu des fichiers est lu pendant la phase de formation. Le mode fichier est le mode le plus lent, passant 3 XNUMX secondes pour télécharger l'intégralité de l'ensemble de données avant de commencer l'entraînement. Lorsque nous examinons la phase de formation, FSx pour le mode Lustre et Fichier affiche d'excellentes performances similaires. En ce qui concerne le mode FastFile, lors de la diffusion de fichiers plus petits directement à partir d'Amazon SXNUMX, la surcharge liée à l'envoi d'une nouvelle requête GET pour chaque fichier devient importante par rapport à la durée totale du transfert de fichiers (malgré l'utilisation d'un chargeur de données hautement parallèle avec un tampon de prélecture). Cela se traduit par un débit global inférieur pour le mode FastFile, ce qui crée un goulot d'étranglement d'E/S pour la tâche d'apprentissage. FSx for Lustre est clairement le gagnant dans ce scénario.

Scénarios B et D montrent la différence de performances entre les modes d'entrée lorsque l'ensemble de données est composé de moins de fichiers plus volumineux. La lecture séquentielle à l'aide de fichiers plus volumineux se traduit généralement par de meilleures performances d'E/S, car elle permet une mise en mémoire tampon efficace et réduit le nombre d'opérations d'E/S.

Scénario B (fichiers plus volumineux, ensemble de données plus petit) montre un temps d'étape de formation similaire pour tous les modes (témoignant que la formation n'est pas liée aux E/S). Dans ce scénario, nous préférons le mode FastFile au mode Fichier en raison d'une étape de téléchargement plus courte, et préférons le mode FastFile à FSx pour Lustre en raison de la facilité d'utilisation du premier.

Scénario D (fichiers plus volumineux, ensemble de données plus volumineux) montre des durées facturables totales relativement similaires pour les trois modes. La phase de téléchargement du mode File est plus longue que celle de FSx pour Lustre et FastFile. Le mode fichier télécharge l'intégralité de l'ensemble de données (54 Go) d'Amazon S3 vers l'instance de formation avant de commencer la phase de formation. Les trois modes passent le même temps dans la phase de formation, car tous les modes peuvent récupérer des données assez rapidement et sont liés au GPU. Si nous utilisons des instances ML avec des ressources CPU ou GPU supplémentaires, telles que ml.p4d.24xlarge, le débit d'E/S de données requis pour saturer les ressources de calcul augmente. Dans ces cas, nous pouvons nous attendre à ce que FastFile et FSx pour Lustre réussissent à faire évoluer leur débit (cependant, le débit de FSx pour Lustre dépend de la taille du système de fichiers provisionné). La capacité du mode Fichier à faire évoluer son débit dépend du débit du volume de disque attaché à l'instance. Par exemple, les instances basées sur Amazon EBS (comme ml.p3.2xlarge, ml.p3.8xlarge et ml.p3.16xlarge) sont limitées à un débit maximal de 250 Mo/s, tandis que les instances locales basées sur NVMe (comme ml. g5.* ou ml.p4d.24xlarge) peut prendre en charge un débit beaucoup plus important.

Pour résumer, nous pensons que FastFile est le gagnant de ce scénario car il est plus rapide que le mode Fichier et tout aussi rapide que FSx pour Lustre, mais plus simple à utiliser, coûte moins cher et peut facilement augmenter son débit selon les besoins.

De plus, si nous disposions d'un ensemble de données beaucoup plus volumineux (plusieurs To), le mode Fichier passerait de nombreuses heures à télécharger l'ensemble de données avant que la formation ne puisse commencer, tandis que FastFile pourrait commencer la formation beaucoup plus rapidement.

Apportez votre propre ingestion de données

La source de données native de SageMaker s'adapte à la plupart des scénarios de formation ML possibles, mais pas à tous. Les situations dans lesquelles vous pourriez avoir besoin de rechercher d'autres options d'ingestion de données pourraient inclure la lecture de données directement à partir d'un produit de stockage tiers (en supposant qu'une exportation facile et rapide vers Amazon S3 n'est pas possible), ou avoir une forte exigence pour la même formation. script pour s'exécuter sans changement sur SageMaker et Cloud de calcul élastique Amazon (Amazon EC2) ou Service Amazon Elastic Kubernetes (Amazon EKS). Vous pouvez résoudre ces cas en implémentant votre mécanisme d'ingestion de données dans le script de formation. Ce mécanisme est responsable de la lecture des ensembles de données à partir de sources de données externes dans l'instance de formation. Par exemple, le TFRecordDataset du TensorFlow tf.data bibliothèque peut lire directement à partir du stockage Amazon S3.

Si votre mécanisme d'ingestion de données doit appeler des services AWS, tels que Service de base de données relationnelle Amazon (Amazon RDS), assurez-vous que le Gestion des identités et des accès AWS (IAM) de votre tâche de formation inclut les stratégies IAM pertinentes. Si la source de données réside dans Cloud privé virtuel Amazon (Amazon VPC), vous devez exécuter votre tâche de formation connectée au même VPC.

Lorsque vous gérez vous-même l'ingestion d'ensembles de données, le suivi de lignage SageMaker ne peut pas enregistrer automatiquement les ensembles de données utilisés pendant la formation. Par conséquent, envisagez des mécanismes alternatifs, tels que des étiquettes de tâche de formation ou des hyperparamètres, pour capturer vos métadonnées pertinentes.

Conclusion

Le choix de la bonne source de données de formation SageMaker peut avoir un effet profond sur la vitesse, la facilité d'utilisation et le coût de la formation des modèles ML. Utilisez l'organigramme fourni pour démarrer rapidement, observer les résultats et expérimenter avec une configuration supplémentaire si nécessaire. Gardez à l'esprit les avantages, les inconvénients et les limites de chaque source de données, et dans quelle mesure elles répondent aux exigences individuelles de votre travail de formation. Contactez un contact AWS pour plus d'informations et d'assistance.


À propos des auteurs

Choisissez la meilleure source de données pour votre tâche de formation Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Gili Nachoum est un architecte de solutions spécialisé AI/ML senior qui travaille au sein de l'équipe EMEA Amazon Machine Learning. Gili est passionnée par les défis de la formation de modèles d'apprentissage en profondeur et par la façon dont l'apprentissage automatique change le monde tel que nous le connaissons. Dans ses temps libres, Gili aime jouer au tennis de table.

Choisissez la meilleure source de données pour votre tâche de formation Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Dr Alexandre Arzhanov est un architecte de solutions spécialisé AI/ML basé à Francfort, en Allemagne. Il aide les clients AWS à concevoir et déployer leurs solutions ML dans la région EMEA. Avant de rejoindre AWS, Alexander recherchait les origines des éléments lourds dans notre univers et s'est passionné pour le ML après l'avoir utilisé dans ses calculs scientifiques à grande échelle.

Horodatage:

Plus de Apprentissage automatique AWS