

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 [Modèles de projet MLOps](sagemaker-projects-templates.md).

Si les SageMaker AI-provided modèles ne répondent pas à vos besoins (par exemple, si vous souhaitez disposer d'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 SageMaker AI-provided modèles pour comprendre comment organiser votre code et vos ressources et les exploiter. 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 projet MLOps. SageMaker Les modèles de projets d'IA sont des produits provisionnés par catalogue de services pour provisionner les ressources de 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'encapsuler 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 projet MLOps à l'aide d'Amazon SageMaker Studio ou Studio Classic](sagemaker-projects-create.md) et en choisissant **Modèles d’organisation** lorsque vous choisissez un modèle.

## Utilisation d'un modèle provenant 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 du 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 ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) S3 et téléchargez-y vos modèles.

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

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

   ```
   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 la balise clé-valeur suivante au domaine :

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

Utilisez ensuite la AWS console, Python ou les opérations de l'[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 rubrique [ 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 qui sont à votre disposition. Si vous ne voyez pas le modèle que vous attendez, informez-en 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 rubrique [ 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. Lors de la mise à jour d'un projet, vous pouvez mettre à jour les paramètres du modèle ou l'URL du modèle. Lorsque vous avez terminé, sélectionnez **Suivant**.

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']}")
```

------