Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esempi di codice per l'importazione di modelli personalizzati
I seguenti esempi di codice mostrano come impostare le autorizzazioni, creare un processo di importazione di modelli personalizzato, visualizzare i dettagli dei processi di importazione e dei modelli importati ed eliminare il modello importato.
-
Preparare i file di modello per l'importazione
-
Se stai importando da un bucket Amazon S3, devi fornire i file del modello nel Hugging Face formato weights. Per ulteriori informazioni, consulta Importazione di un modello sorgente da Amazon S3.
-
Crea un bucket Amazon S3 per i tuoi file di modello (i nomi devono essere univoci).
-
Carica i file del modello nel bucket.
-
-
Crea una policy per accedere ai file del tuo modello e collegala a un ruolo IAM con una relazione di fiducia Amazon Bedrock. Scegli la scheda relativa al metodo che preferisci, quindi segui i passaggi:
- Console
-
-
Crea una policy Amazon S3 per accedere al bucket Amazon S3 che contiene i tuoi file di modello
-
Accedi alla console IAM all'indirizzo https://console.aws.amazon.com/iam
e scegli Policies dal riquadro di navigazione a sinistra. -
Seleziona Crea policy, quindi scegli JSON per aprire l'editor Policy.
-
Incolla la seguente politica, sostituendola
${model-file-bucket}con il nome del tuo bucket, quindi seleziona Avanti.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}/*" ] } ] }
-
Assegna un nome alla politica
S3BucketPolicye seleziona Crea politica.
-
-
Crea un ruolo IAM e allega la policy.
-
Dal riquadro di navigazione a sinistra, scegli Ruoli, quindi seleziona Crea ruolo.
-
Seleziona Politica di fiducia personalizzata, incolla la seguente politica e seleziona Avanti.
JSON- JSON
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Cerca la
S3BucketPolicypolitica che hai creato, seleziona la casella di controllo e scegli Avanti. -
Assegna un nome al ruolo
MyImportModelRolee selezionaCreate role.
-
-
- CLI
-
-
Crea un file chiamato
BedrockTrust.jsone incolla la seguente politica al suo interno.JSON- JSON
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Crea un altro file chiamato
S3BucketPolicy.jsone incolla la seguente politica, sostituendola${model-file-bucket}con i nomi dei tuoi bucket.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}/*" ] } ] }
-
In un terminale, accedi alla cartella contenente le politiche che hai creato.
-
Fai una CreateRolerichiesta per creare un ruolo IAM chiamato
MyImportModelRolee allega la policy diBedrockTrust.jsonfiducia che hai creato.aws iam create-role \ --role-name MyImportModelRole \ --assume-role-policy-document file://BedrockTrust.json -
Fai una CreatePolicyrichiesta per creare la policy di accesso ai dati di S3 con il
S3BucketPolicy.jsonfile che hai creato. La risposta restituisce un messaggioArnper la politica.aws iam create-policy \ --policy-name S3BucketPolicy \ --policy-document file://S3BucketPolicy.json -
Fai una AttachRolePolicyrichiesta per allegare la policy di accesso ai dati di S3 al tuo ruolo, sostituendola
policy-arncon l'ARN nella risposta del passaggio precedente:aws iam attach-role-policy \ --role-name MyImportModelRole \ --policy-arn${policy-arn}
-
- Python
-
-
Esegui il codice seguente per fare una CreateRolerichiesta per creare un ruolo IAM chiamato
MyImportModele per fare una CreatePolicyrichiesta per creare una policy di accesso ai dati S3 chiamata.S3BucketPolicyPer la politica di accesso ai dati di S3, sostituiscila${model-file-bucket}con i nomi dei bucket 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}/*" ] } ] }) ) -
Nella risposta
Arnviene restituito un valore An. Esegui il seguente frammento di codice per effettuare una AttachRolePolicyrichiesta, sostituendolo${policy-arn}con quello restituito.Arniam.attach_role_policy( RoleName="MyImportModelRole", PolicyArn="${policy-arn}" )
-
-
Seleziona una lingua per visualizzare esempi di codice per chiamare le operazioni dell'API di importazione del modello personalizzato.
- CLI
-
Per inviare un processo di importazione di modelli personalizzato, in un terminale esegui il seguente comando nella riga di comando, sostituendolo
${my-import-model-role-arn}con il ruolo modello che hai impostato e ils3-bucket-pathpercorso del bucket S3 dei tuoi file di modello.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 risposta restituisce un.
jobArnIl completamento del processo di importazione personalizzato richiederà del tempo. È possibile utilizzarejobArnil comando seguente per verificare lo stato del processo di importazione.I seguenti campi sono opzionali:
-
Per aggiungere una configurazione VPC, aggiungi il seguente argomento al comando precedente per specificare il gruppo di sicurezza e le sottoreti:
-\\-vpc-config '{securityGroupIds": ["sg-xx"], "subnetIds": ["subnet-yy", "subnet-zz"]}' -
Per crittografare il modello con una chiave KMS, aggiungi il seguente argomento al comando precedente, sostituendo i valori per specificare la chiave con cui crittografare il modello.
-\\-customModelKmsKeyId 'arn:aws:kms:region:account-id:key/key-id' -
Per aggiungere tag, aggiungete il seguente argomento al comando precedente, sostituendo le chiavi e i valori con i tag che desiderate allegare al modello di and/or output del lavoro e assicurandovi di separare key/value le coppie con uno spazio:
-\\-tags key=key1,value=value1key=key2,value=value2
La risposta restituisce un
jobArn. Il completamento del processo di importazione personalizzato richiederà del tempo. È possibile utilizzarejobArnil comando seguente per verificare lo stato del processo di importazione.aws bedrock get-model-import-job \ --job-identifier "jobArn"La risposta è simile alla seguente:
{ "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"Quando
statusèComplete. il processo di importazione è completo.Per eseguire l'inferenza sul modello appena importato, è necessario fornire l'ARN del modello importato come.
model-idOttieni l'ARN del modello importato.aws bedrock list-imported-modelsLa risposta contiene il nome del modello e l'ARN del modello. Utilizzate il modello ARN per richiamare il modello importato. Per ulteriori informazioni, consulta Invia una sola richiesta con InvokeModel.
{ "modelSummaries": [ { "modelArn":model-arn, "modelName": "MyImportedModelName", "modelArchitecture":model-architecture, "instructSupported":Y, "creationTime": "2024-08-13T19:20:14.058Z" } ] }Per eliminare il modello importato, in un terminale esegui il seguente comando nella riga di comando, utilizzando il nome del modello o l'ARN del modello importato che desideri eliminare.
aws bedrock delete-imported-model --model-identifierMyImportedModelName -
- Python
-
Esegui il seguente frammento di codice per inviare un processo di importazione del modello personalizzato. Sostituisci
my-regioncon la regione in cui hai importato il modello,${my-import-model-role-arn}con l'ARN diMyImportModelRolequello che hai configurato e sostituiscilo${model-file-bucket}con il nome del bucket 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")I seguenti campi sono facoltativi.
-
Per aggiungere una configurazione VPC, aggiungi il seguente argomento al comando precedente per specificare il gruppo di sicurezza e le sottoreti:
vpc-config = {'securityGroupIds: ["sg-xx".], 'subnetIds': [subnet-yy, 'subnet-zz']}' -
Per crittografare il modello con una chiave KMS, aggiungi il seguente argomento al comando precedente, sostituendo i valori per specificare la chiave con cui crittografare il modello.
importedModelKmsKeyId = 'arn:aws:kms:region:account-id:key/key-id' -
Per aggiungere tag, aggiungete il seguente argomento al comando precedente, sostituendo le chiavi e i valori con i tag che desiderate allegare al modello di and/or output del lavoro e assicurandovi di separare key/value le coppie con uno spazio:
jobTags key=key1,value=value1key=key2,value=value2
La risposta restituisce un JOBarn
job_arn = create_job_response.get("jobArn")Il completamento del processo di importazione personalizzato richiederà del tempo. È possibile utilizzare
jobArnil comando seguente per verificare lo stato del processo di importazione.bedrock.get_model_import_job(jobIdentifier=jobArn)Quando
statusèCompleted, il processo di importazione è completo.Per eseguire l'inferenza sul modello appena importato, è necessario fornire l'ARN del modello importato come.
model-idOttieni l'ARN del modello importato.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 risposta restituisce
modelArninsieme ad altri dettagli del modello importato.{ 'nextToken': '', 'modelSummaries': [ { 'modelArn': 'your-model-arn', 'modelName': 'MyImportedModelName', 'modelArchitecture':model-architecture, 'instructSupported':Y, 'creationTime': datetime(2015, 1, 1) }, ]Utilizzate il modello ARN per richiamare il modello importato. Per ulteriori informazioni, consulta Invia una sola richiesta con InvokeModel.
Per eliminare il modello importato, utilizzate il seguente comando utilizzando il nome del modello o l'ARN del modello importato che desiderate eliminare.
response = client.delete_imported_model( modelIdentifier='MyImportedModelName' ) -