

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.

# Utilisation de la formation distribuée dans AWS Clean Rooms ML
<a name="use-distributed-training"></a>

Prérequis : 
+ Et Compte AWS avec accès à AWS Clean Rooms
+ Une collaboration mise en place dans AWS Clean Rooms
+ Un algorithme de modèle configuré qui prend en charge la formation distribuée
+ Un ensemble de données volumineux adapté au traitement distribué 
+ Autorisations appropriées pour créer et gérer des modèles de machine learning dans le cadre de la collaboration
+ Quota Amazon EC2 suffisant pour exécuter plusieurs instances dans le cadre d'une formation distribuée 

La formation distribuée tire parti de la puissance de nombreux nœuds informatiques travaillant en parallèle pour traiter de grandes quantités de données et mettre à jour les paramètres du modèle de manière efficace. 

Pour plus d'informations sur la formation distribuée, consultez la section [Concepts de formation distribuée](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html#distributed-training-basic-concepts) dans le manuel *Amazon SageMaker AI Developer Guide*.

------
#### [ Console ]

**Pour exécuter une tâche de formation distribuée (console)**

1. Connectez-vous à la AWS Clean Rooms console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/cleanrooms.](https://console.aws.amazon.com/cleanrooms/home)

1. Dans le volet de navigation de gauche, sélectionnez **Collaborations**.

1. Sur la page **Collaborations**, choisissez la collaboration pour laquelle vous souhaitez créer un modèle entraîné.

1. Une fois la collaboration ouverte, choisissez l'onglet **Modèles ML**.

1. Sous **Modèles ML personnalisés**, dans la section **Modèles entraînés**, sélectionnez **Créer un modèle entraîné**.

1. Sur la page **Créer un modèle entraîné**, dans **Algorithme de modèle associé**, spécifiez l'algorithme

1. Pour obtenir des **informations sur le modèle entraîné**, entrez les informations suivantes :

   1. Dans **Nom**, entrez un nom unique pour le modèle de la collaboration.

   1. (Facultatif) Dans **Description**, entrez une description du modèle entraîné.

   1. Pour le **mode de saisie des données d'entraînement**, choisissez l'une des options suivantes :
      + Sélectionnez **Fichier** si vous disposez d'un ensemble de données plus petit pouvant tenir sur le volume de stockage ML et si vous préférez un accès au système de fichiers traditionnel pour votre script de formation.
      + Sélectionnez **Pipe** pour les grands ensembles de données afin de diffuser des données directement depuis S3, évitant ainsi d'avoir à tout télécharger sur disque, ce qui peut améliorer la vitesse d'entraînement et réduire les besoins en stockage.
      + Choisissez **FastFile**si vous souhaitez combiner les avantages du streaming depuis S3 avec l'accès au système de fichiers, en particulier pour la lecture séquentielle des données ou lorsque vous traitez moins de fichiers pour des temps de démarrage plus rapides.

1. Pour les **détails du canal d'entrée ML**, procédez comme suit : 

   1. Pour le **canal d'entrée ML**, spécifiez le canal d'entrée ML qui fournit des données à l'algorithme du modèle. 

      Pour ajouter un autre canal, choisissez **Ajouter un autre canal d'entrée ML**. Vous pouvez ajouter jusqu'à 19 canaux d'entrée ML supplémentaires. 

   1. Dans **Nom du canal**, entrez le nom du canal d'entrée ML.

   1. Pour le **type de distribution de données Amazon S3**, choisissez l'une des options suivantes :
      + Sélectionnez **Entièrement répliqué** pour fournir à chaque instance de formation une copie complète de votre ensemble de données. Cela fonctionne mieux lorsque votre ensemble de données est suffisamment petit pour tenir en mémoire ou lorsque chaque instance doit accéder à toutes les données.
      + Sélectionnez **Sharded by S3 key** pour diviser votre ensemble de données entre les instances d'entraînement en fonction des clés S3. Chaque instance reçoit environ 1/n du total des objets S3, où « n » est le nombre d'instances. Cela fonctionne mieux pour les grands ensembles de données que vous souhaitez traiter en parallèle.
**Note**  
Tenez compte de la taille de votre jeu de données et des exigences de formation lorsque vous sélectionnez un type de distribution. La **réplication complète** fournit un accès complet aux données mais nécessite davantage de stockage, tandis que la **clé Sharded by S3** permet le traitement distribué de grands ensembles de données.

1. Pour **Durée d'entraînement maximale**, choisissez la durée maximale pendant laquelle vous souhaitez entraîner votre modèle.

1. Pour les **hyperparamètres**, spécifiez les paramètres spécifiques à l'algorithme et leurs valeurs prévues. Les hyperparamètres sont spécifiques au modèle en cours d'entraînement et sont utilisés pour affiner l'entraînement du modèle.

1. Pour les **variables d'environnement**, spécifiez les variables spécifiques à l'algorithme et leurs valeurs prévues. Les variables d'environnement sont définies dans le conteneur Docker.

1. Pour **le chiffrement**, pour utiliser une option personnalisée AWS KMS key, cochez la case **Chiffrer le secret avec une clé KMS personnalisée**.

1. Pour la **configuration des ressources EC2**, spécifiez les informations relatives aux ressources de calcul utilisées pour l'entraînement des modèles. 

   1. Dans **Type d'instance**, choisissez le type d'instance que vous souhaitez exécuter. 

      Les types d'instances pris en charge pour la formation distribuée sont les suivants : 
      + ml.m5.4xlarge
      + ml.m5.12xlarge 
      + ml.m5.2xlarge
      + ml.g5.12xlarge
      + ml.g5.24xlarge

   1. Dans **Nombre d'instances**, entrez le nombre d'instances.

   1. Pour **Taille du volume en Go**, entrez la taille du volume de stockage ML.

1. Choisissez **Créer un modèle entraîné**. 

------
#### [ API ]

Pour exécuter une tâche de formation distribuée (API)

Exécutez le code suivant avec vos paramètres spécifiques :

```
import boto3 
acr_ml_client= boto3.client('cleanroomsml')
 
acr_ml_client.create_trained_model(
    membershipIdentifier= 'membership_id',
    configuredModelAlgorithmAssociationArn = 'arn:aws:cleanrooms-ml:region:account:membership/membershipIdentifier/configured-model-algorithm-association/identifier',
    name='trained_model_name',
    trainingInputMode: "File",
    resourceConfig={
        'instanceCount': "3"
        'instanceType': "ml.m5.xlarge",
        'volumeSizeInGB': 3
    },
    dataChannels=[
        {
            "mlInputChannelArn": channel_arn_1,
            "channelName": "channel_name", 
            "S3DataDistributionType:" "FullyReplicated"
        }
  
    ]
)
```

------

**Note**  
Une fois le modèle entraîné créé, vous ne pouvez pas le modifier. Pour apporter des modifications, supprimez le modèle entraîné et créez-en un nouveau.