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.
Exemples de code pour l'importation de modèles personnalisés
Les exemples de code suivants montrent comment configurer les autorisations, créer une tâche d'importation de modèle personnalisée, afficher les détails de vos tâches d'importation et des modèles importés, et supprimer le modèle importé.
-
Préparation des fichiers modèles pour l'importation
-
Si vous effectuez une importation depuis un compartiment Amazon S3, vous devez fournir les fichiers de modèle au format de Hugging Face pondération. Pour de plus amples informations, veuillez consulter Importer une source de modèle depuis Amazon S3.
-
Créez un compartiment Amazon S3 pour vos fichiers de modèles (les noms doivent être uniques).
-
Téléchargez les fichiers du modèle dans le compartiment.
-
-
Créez une politique pour accéder à vos fichiers de modèles et associez-la à un rôle IAM bénéficiant d'une relation de confiance avec Amazon Bedrock. Choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :
- Console
-
-
Créez une politique Amazon S3 pour accéder au compartiment Amazon S3 qui contient vos fichiers de modèle
-
Accédez à la console IAM à l'adresse https://console.aws.amazon.com/iam
et choisissez Policies dans le volet de navigation de gauche. -
Sélectionnez Créer une politique, puis choisissez JSON pour ouvrir l'éditeur de stratégie.
-
Collez la politique suivante, en la
${model-file-bucket}remplaçant par le nom de votre bucket, puis sélectionnez Next.JSON- JSON
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${model-file-bucket}", "arn:aws:s3:::${model-file-bucket}/*" ] } ] }
-
Donnez un nom à la politique
S3BucketPolicyet sélectionnez Créer une politique.
-
-
Créez un rôle IAM et associez la politique.
-
Dans le volet de navigation de gauche, choisissez Rôles, puis sélectionnez Créer un rôle.
-
Sélectionnez Politique de confiance personnalisée, collez la politique suivante, puis sélectionnez Suivant.
JSON- JSON
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Recherchez la
S3BucketPolicypolitique que vous avez créée, cochez la case et choisissez Next. -
Nommez le rôle
MyImportModelRoleet sélectionnezCreate role.
-
-
- CLI
-
-
Créez un fichier appelé
BedrockTrust.jsonet collez-y la politique suivante.JSON- JSON
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Créez un autre fichier appelé
S3BucketPolicy.jsonet collez-y la politique suivante, en la${model-file-bucket}remplaçant par les noms de vos compartiments.JSON- JSON
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${model-file-bucket}", "arn:aws:s3:::${model-file-bucket}/*" ] } ] }
-
Dans un terminal, accédez au dossier contenant les politiques que vous avez créées.
-
Faites une CreateRoledemande pour créer un rôle IAM appelé
MyImportModelRoleet joignez la politique deBedrockTrust.jsonconfiance que vous avez créée.aws iam create-role \ --role-name MyImportModelRole \ --assume-role-policy-document file://BedrockTrust.json -
Faites une CreatePolicydemande pour créer la politique d'accès aux données S3 avec le
S3BucketPolicy.jsonfichier que vous avez créé. La réponse renvoie unArnpour la politique.aws iam create-policy \ --policy-name S3BucketPolicy \ --policy-document file://S3BucketPolicy.json -
Faites une AttachRolePolicydemande pour associer la politique d'accès aux données S3 à votre rôle, en
policy-arnremplaçant le par l'ARN dans la réponse de l'étape précédente :aws iam attach-role-policy \ --role-name MyImportModelRole \ --policy-arn${policy-arn}
-
- Python
-
-
Exécutez le code suivant pour CreateRoledemander la création d'un rôle IAM appelé
MyImportModelet pour faire une CreatePolicydemande pour créer une politique d'accès aux données S3 appeléeS3BucketPolicy. Pour la politique d'accès aux données S3, remplacez-la${model-file-bucket}par les noms de vos compartiments S3.import boto3 import json iam = boto3.client("iam") iam.create_role( RoleName="MyImportModelRole", AssumeRolePolicyDocument=json.dumps({ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }) ) iam.create_policy( PolicyName="S3BucketPolicy", PolicyDocument=json.dumps({ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${training-bucket}", "arn:aws:s3:::${training-bucket}/*" ] } ] }) ) -
An
Arnest renvoyé dans la réponse. Exécutez l'extrait de code suivant pour effectuer une AttachRolePolicydemande, en le${policy-arn}remplaçant par le code renvoyé.Arniam.attach_role_policy( RoleName="MyImportModelRole", PolicyArn="${policy-arn}" )
-
-
Sélectionnez une langue pour voir des exemples de code permettant d'appeler les opérations de l'API d'importation de modèles personnalisés.
- CLI
-
Pour soumettre une tâche d'importation de modèle personnalisée, dans un terminal, exécutez la commande suivante dans la ligne de commande, en la
${my-import-model-role-arn}remplaçant par le rôle de modèle que vous avez configuré ets3-bucket-pathpar le chemin du compartiment S3 de vos fichiers de modèle.aws bedrock create-model-import-job --job-nameMyImportedModelJobName--imported-model-nameMyImportedModelName--role-arn${my-import-model-role-arn}--model-data-source '{"s3DataSource": {"s3Uri":s3-bucket-path}}La réponse renvoie un
jobArn. La tâche d'importation personnalisée prendra un certain temps. Vous pouvez utiliser lajobArncommande suivante pour vérifier l'état de la tâche d'importation.Les champs suivants sont facultatifs :
-
Pour ajouter une configuration de VPC, insérez l’argument suivant dans la commande ci-dessus pour spécifier le groupe de sécurité et les sous-réseaux :
-\\-vpc-config '{securityGroupIds": ["sg-xx"], "subnetIds": ["subnet-yy", "subnet-zz"]}' -
Pour chiffrer le modèle avec une clé KMS, ajoutez l’argument suivant à la commande ci-dessus, en remplaçant les valeurs pour spécifier la clé avec laquelle vous souhaitez effectuer le chiffrement.
-\\-customModelKmsKeyId 'arn:aws:kms:region:account-id:key/key-id' -
Pour ajouter des balises, ajoutez l'argument suivant à la commande ci-dessus, en remplaçant les clés et les valeurs par les balises que vous souhaitez associer au modèle de and/or sortie de tâche et en veillant à séparer les key/value paires par un espace :
-\\-tags key=key1,value=value1key=key2,value=value2
La réponse renvoie un
jobArn. La tâche d'importation personnalisée prendra un certain temps. Vous pouvez utiliser lajobArncommande suivante pour vérifier l'état de la tâche d'importation.aws bedrock get-model-import-job \ --job-identifier "jobArn"La réponse ressemble à ceci :
{ "jobArn":${job-arn}, "jobName":MyImportedModelJobName, "importedModelName":MyImportedModelName, "roleArn":${my-role-arn}, "modelDataSource": { "s3DataSource": { "s3Uri": "${S3Uri}" } }, "status": "Complete", "creationTime": "2024-08-13T23:38:42.457Z", "lastModifiedTime": "2024-08-13T23:39:25.158Z"Lorsque
statusc'estCompletele cas, le travail d'importation est terminé.Pour exécuter l'inférence sur le modèle que vous venez d'importer, vous devez fournir l'ARN du modèle importé sous la
model-idforme de. Obtenez l'ARN du modèle importé.aws bedrock list-imported-modelsLa réponse contient le nom du modèle et son ARN. Utilisez l'ARN du modèle pour appeler le modèle importé. Pour de plus amples informations, veuillez consulter Soumettez une seule invite avec InvokeModel.
{ "modelSummaries": [ { "modelArn":model-arn, "modelName": "MyImportedModelName", "modelArchitecture":model-architecture, "instructSupported":Y, "creationTime": "2024-08-13T19:20:14.058Z" } ] }Pour supprimer votre modèle importé, dans un terminal, exécutez la commande suivante dans la ligne de commande, en utilisant le nom du modèle ou l'ARN du modèle importé que vous souhaitez supprimer.
aws bedrock delete-imported-model --model-identifierMyImportedModelName -
- Python
-
Exécutez l'extrait de code suivant pour soumettre une tâche d'importation de modèle personnalisée.
my-regionRemplacez-le par la région dans laquelle vous avez importé le modèle,${my-import-model-role-arn}par l'ARN du modèleMyImportModelRoleque vous avez configuré et remplacez${model-file-bucket}par le nom de votre compartiment S3.import boto3 import json REGION_NAME =my-regionbedrock = boto3.client(service_name='bedrock', region_name=REGION_NAME) JOB_NAME =MyImportedModelJobNameROLE_ARN =${my-import-model-role-arn}IMPORTED_MODEL_NAME =ImportedModelNameS3_URI =${S3Uri}# createModelImportJob API create_job_response = bedrock.create_model_import_job( jobName=JOB_NAME, importedModelName=IMPORTED_MODEL_NAME, roleArn=ROLE_ARN, modelDataSource={ "s3DataSource": { "s3Uri": S3_URI } }, ) job_arn = create_job_response.get("jobArn")Les champs suivants sont facultatifs.
-
Pour ajouter une configuration de VPC, insérez l’argument suivant dans la commande ci-dessus pour spécifier le groupe de sécurité et les sous-réseaux :
vpc-config = {'securityGroupIds: ["sg-xx".], 'subnetIds': [subnet-yy, 'subnet-zz']}' -
Pour chiffrer le modèle avec une clé KMS, ajoutez l’argument suivant à la commande ci-dessus, en remplaçant les valeurs pour spécifier la clé avec laquelle vous souhaitez effectuer le chiffrement.
importedModelKmsKeyId = 'arn:aws:kms:region:account-id:key/key-id' -
Pour ajouter des balises, ajoutez l'argument suivant à la commande ci-dessus, en remplaçant les clés et les valeurs par les balises que vous souhaitez associer au modèle de and/or sortie de tâche et en veillant à séparer les key/value paires par un espace :
jobTags key=key1,value=value1key=key2,value=value2
La réponse renvoie un JobArn
job_arn = create_job_response.get("jobArn")La tâche d'importation personnalisée prendra un certain temps. Vous pouvez utiliser la
jobArncommande suivante pour vérifier l'état de la tâche d'importation.bedrock.get_model_import_job(jobIdentifier=jobArn)Lorsque
statusc'est le casCompleted, le travail d'importation est terminé.Pour exécuter l'inférence sur le modèle que vous venez d'importer, vous devez fournir l'ARN du modèle importé sous la
model-idforme de. Obtenez l'ARN du modèle importé.response_pt = bedrock.list_imported_models( creationTimeBefore=datetime (2015,1,1, creationTimeAfter= datetime (2015,1,1, nameContains = 'MyImportedModelName, maxresults =123nextToken = 'none', sortBy = 'creationTime', sortOrder = 'Ascending'La réponse renvoie le,
modelArnainsi que d'autres détails, du modèle importé.{ 'nextToken': '', 'modelSummaries': [ { 'modelArn': 'your-model-arn', 'modelName': 'MyImportedModelName', 'modelArchitecture':model-architecture, 'instructSupported':Y, 'creationTime': datetime(2015, 1, 1) }, ]Utilisez l'ARN du modèle pour appeler le modèle importé. Pour de plus amples informations, veuillez consulter Soumettez une seule invite avec InvokeModel.
Pour supprimer votre modèle importé, utilisez la commande suivante en utilisant le nom du modèle ou l'ARN du modèle importé que vous souhaitez supprimer.
response = client.delete_imported_model( modelIdentifier='MyImportedModelName' ) -