

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.

# Création de modèles de projet personnalisés
<a name="sagemaker-projects-templates-custom"></a>

**Important**  
Au 28 octobre 2024, les AWS CodeCommit modèles ont été supprimés. Pour les nouveaux projets, sélectionnez parmi les modèles de projet disponibles qui utilisent des référentiels Git tiers. Pour de plus amples informations, veuillez consulter [MLOps Modèles de projets](sagemaker-projects-templates.md).

Si les modèles SageMaker fournis par l'IA ne répondent pas à vos besoins (par exemple, si vous souhaitez une orchestration plus complexe CodePipeline comportant plusieurs étapes ou des étapes d'approbation personnalisées), créez vos propres modèles.

Nous vous recommandons de commencer par utiliser des modèles SageMaker fournis par l'IA pour comprendre comment organiser votre code et vos ressources et en tirer parti. Pour ce faire, après avoir activé l'accès administrateur aux modèles d' SageMaker IA, connectez-vous au [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/), choisissez **Portfolios**, puis choisissez **Importé**. Pour obtenir des informations sur Service Catalog, consultez [Overview of Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html) (Présentation de Service Catalog) dans le *Guide de l’utilisateur Service Catalog*.

Créez vos propres modèles de projet pour personnaliser votre MLOps projet. SageMaker Les modèles de projet AI sont des produits fournis par Service Catalog pour fournir les ressources nécessaires à votre projet. MLOps 

Pour créer un modèle de projet personnalisé,procédez comme suit.

1. Créez un portefeuille. Pour obtenir des informations, consultez [Step 3: Create an Service Catalog Portfolio](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-portfolio.html) (Étape 3 : créer un portefeuille Service Catalog).

1. Créez un produit. Un produit est un CloudFormation modèle. Vous pouvez créer plusieurs versions du produit. Pour obtenir des informations, consultez [Step 4: Create an Service Catalog Product](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-product.html) (Étape 4 : créer un produit Service Catalog).

   Pour que le produit fonctionne avec SageMaker Projects, ajoutez les paramètres suivants à votre modèle de produit.

   ```
   SageMakerProjectName:
   Type: String
   Description: Name of the project
   
   SageMakerProjectId:
   Type: String
   Description: Service generated Id of the project.
   ```
**Important**  
Nous vous recommandons d'intégrer le CodeCommit référentiel dans le référentiel de code SageMaker AI pour que les référentiels du projet soient visibles en mode VPC. Le modèle type et les ajouts nécessaires sont présentés dans les exemples de code suivants.  
Modèle original (échantillon) :  

   ```
   ModelBuildCodeCommitRepository:
       Type: AWS::CodeCommit::Repository
       Properties:
         # Max allowed length: 100 chars
         RepositoryName: !Sub sagemaker-${SageMakerProjectName}-${SageMakerProjectId}-modelbuild # max: 10+33+15+10=68
         RepositoryDescription: !Sub SageMaker Model building workflow infrastructure as code for the Project ${SageMakerProjectName}
         Code:
           S3:
             Bucket: {{SEEDCODE_BUCKETNAME}}
             Key: toolchain/model-building-workflow-v1.0.zip
           BranchName: main
   ```
Contenu supplémentaire à ajouter en mode VPC :  

   ```
   SageMakerRepository:
       Type: AWS::SageMaker::CodeRepository
       Properties:
           GitConfig:
               RepositoryUrl: !GetAtt ModelBuildCodeCommitRepository.CloneUrlHttp
               Branch: main
   ```

1. Ajoutez une contrainte de lancement. Une contrainte de lancement désigne un rôle IAM endossé par Service Catalog lorsqu'un utilisateur lance un produit. Pour obtenir des informations, consultez [Étape 6 : ajout d’une contrainte de lancement pour attribuer un rôle IAM](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-launchconstraint.html).

1. Fournissez le produit [https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)pour tester le modèle. Si votre modèle vous satisfait, passez à l’étape suivante pour le mettre à disposition dans Studio (ou Studio Classic).

1. Accordez à votre rôle d’exécution Studio (ou Studio Classic) l’accès au portefeuille Service Catalog que vous avez créé à l’étape 1. Utilisez le rôle d’exécution de domaine ou un rôle utilisateur disposant d’un accès Studio (ou Studio Classic). Pour obtenir des informations sur l’ajout d’un rôle au portefeuille, consultez [Étape 7 : octroi aux utilisateurs finaux d’un accès au portefeuille](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-deploy.html).

1. Pour mettre votre modèle de projet à disposition dans votre liste **Modèles d’organisation** dans Studio (ou Studio Classic), créez une balise avec la clé et la valeur suivantes pour le produit Service Catalog que vous avez créé à l’étape 2.
   + **Clé** : `sagemaker:studio-visibility`
   + **valeur** : `true`

Une fois ces étapes effectuées, les utilisateurs de Studio (ou de Studio Classic) de votre organisation peuvent créer un projet avec le modèle que vous avez créé en suivant les étapes décrites dans [Création d'un MLOps projet à l'aide d'Amazon SageMaker Studio ou de Studio Classic](sagemaker-projects-create.md) et en choisissant **Modèles d’organisation** lorsque vous choisissez un modèle.

## Utilisation d'un modèle issu d'un compartiment Amazon S3
<a name="sagemaker-projects-templates-s3"></a>

Vous pouvez également créer des SageMaker projets à l'aide de modèles stockés dans Amazon S3.

**Note**  
Bien que vous puissiez utiliser les modèles contenus dans le AWS Service Catalog, nous vous recommandons de les stocker dans un compartiment S3 et de créer des projets à l'aide de ces modèles.

### Configuration de l'administrateur
<a name="sagemaker-projects-templates-s3-setup"></a>

Avant de créer des projets à l'aide de modèles dans un compartiment S3, effectuez les étapes suivantes.

1. [Créez un compartiment S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) et chargez vos modèles dans le compartiment.

1. [Configurez une politique CORS sur votre compartiment S3 pour configurer les autorisations d'accès](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html).

1. Ajoutez la balise clé-valeur suivante au modèle afin qu'elle soit visible par l'IA. SageMaker 

   ```
   sagemaker:studio-visibility : true
   ```

1. [Créez un domaine](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-quick-start.html).

1. Une fois qu' SageMaker AI a fini de créer votre domaine, ajoutez-y la balise clé-valeur suivante :

   ```
   sagemaker:projectS3TemplatesLocation : s3://{{<amzn-s3-demo-bucket>}}
   ```

Utilisez ensuite la AWS console, Python ou les opérations d'[UpdateProject](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateProject.html)API [CreateProject](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateProject.html)et pour créer ou mettre à jour un SageMaker projet à partir de modèles contenus dans le compartiment S3.

------
#### [ Studio ]

**Créer un projet**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Ouvrez la console SageMaker Studio en suivant les instructions de la section [Lancer Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Dans le volet de navigation de gauche, choisissez **Déploiements**, **Projets**, **Créer un projet**.

1. Choisissez **Modèles d'organisation**, puis **Modèles S3** pour voir les modèles mis à votre disposition. Si vous ne trouvez pas le modèle que vous attendez, prévenez votre administrateur.

1. Choisissez le modèle que vous souhaitez utiliser, puis cliquez sur **Suivant**.

1. Entrez un nom pour votre projet, une description facultative et les autres champs obligatoires. Lorsque vous avez terminé, cliquez sur **Create (Créer)**.

**Mettre à jour un projet**

1. Ouvrez la console Amazon SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Ouvrez la console SageMaker Studio en suivant les instructions de la section [Lancer Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Choisissez le projet que vous souhaitez mettre à jour. Choisissez **Actions**, puis choisissez **Mettre à jour le projet**.

1. Lorsque vous mettez à jour un projet, vous pouvez mettre à jour les paramètres ou l'URL du modèle. Lorsque vous avez terminé, sélectionnez **Next**.

1. Passez en revue les mises à jour du projet dans le tableau récapitulatif, puis choisissez **Mettre à jour**.

------
#### [ Python Boto3 ]

Après avoir créé le compartiment S3 et téléchargé vos modèles, vous pouvez utiliser l'exemple suivant pour créer un SageMaker projet.

```
sagemaker_client = boto3.client('sagemaker', region_name='us-west-2')

response = sagemaker_client.create_project(
    ProjectName='my-custom-project',
    ProjectDescription='SageMaker project with custom CFN template stored in S3',
    TemplateProviders=[{
        'CfnTemplateProvider': {
            'TemplateName': 'CustomProjectTemplate',
            'TemplateURL': f'https://{{<bucket_name>}}.s3.us-west-2.amazonaws.com/{{custom-project-template.yml}}',
            'Parameters': [
                {'Key': 'ParameterKey', 'Value': 'ParameterValue'}
            ]
        }
    }]
)
print(f"Project ARN: {response['ProjectArn']}")
```

Pour mettre à jour un SageMaker projet, consultez l'exemple suivant.

```
sagemaker_client = boto3.client('sagemaker', region_name='us-west-2')

response = sagemaker_client.update_project(
    ProjectName='my-custom-project',
    ProjectDescription='SageMaker project with custom CFN template stored in S3',
    TemplateProvidersToUpdate=[{
        'CfnTemplateProvider': {
            'TemplateName': 'CustomProjectTemplate',
            'TemplateURL': f'https://{{<bucket_name>}}.s3.us-west-2.amazonaws.com/{{custom-project-template.yml}}',
            'Parameters': [
                {'Key': 'ParameterKey', 'Value': 'ParameterValue'}
            ]
        }
    }]
)
print(f"Project ARN: {response['ProjectArn']}")
```

------