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.
Exemple de code pour l’inférence par lots
L’exemple de code présenté dans ce chapitre montre comment créer une tâche d’inférence par lots, afficher les informations la concernant et l’arrêter. Cet exemple utilise le format InvokeModel API. Pour plus d'informations sur l'utilisation du format Converse API, consultezMise en forme et chargement des données d’inférence par lots.
Sélectionnez une langue pour voir un exemple de code correspondant :
- Python
-
Créez un fichier JSONL nommé
abc.jsonlet incluez un objet JSON pour chaque enregistrement contenant au moins le nombre minimum d'enregistrements (voir le nombre minimum d'enregistrements par tâche d'inférence par lots pour).{Model}Quotas pour Amazon Bedrock Dans cet exemple, vous allez utiliser le modèle Anthropic Claude 3 Haiku. L’exemple suivant présente le premier fichier JSON d’entrée dans le fichier :{ "recordId": "CALL0000001", "modelInput": { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Summarize the following call transcript: ..." } ] } ] } } ... # Add records until you hit the minimumCréez un compartiment S3 appelé
amzn-s3-demo-bucket-inputet chargez-y le fichier. Créez ensuite un compartiment S3 appeléamzn-s3-demo-bucket-outputpour y écrire vos fichiers de sortie. Exécutez l'extrait de code suivant pour soumettre une tâche et obtenirjobArnla réponse :import boto3 bedrock = boto3.client(service_name="bedrock") inputDataConfig=({ "s3InputDataConfig": { "s3Uri": "s3://amzn-s3-demo-bucket-input/abc.jsonl" } }) outputDataConfig=({ "s3OutputDataConfig": { "s3Uri": "s3://amzn-s3-demo-bucket-output/" } }) response=bedrock.create_model_invocation_job( roleArn="arn:aws:iam::123456789012:role/MyBatchInferenceRole", modelId="anthropic.claude-3-haiku-20240307-v1:0", jobName="my-batch-job", inputDataConfig=inputDataConfig, outputDataConfig=outputDataConfig ) jobArn = response.get('jobArn')Renvoyez le
statusde la tâche.bedrock.get_model_invocation_job(jobIdentifier=jobArn)['status']Répertoriez les tâches d'inférence par lots qui
Failed.bedrock.list_model_invocation_jobs( maxResults=10, statusEquals="Failed", sortOrder="Descending" )Arrêtez la tâche que vous avez commencée.
bedrock.stop_model_invocation_job(jobIdentifier=jobArn) - Java
-
package com.amazon.aws.sample.bedrock.inference; import software.amazon.awssdk.services.bedrock.BedrockClient; import software.amazon.awssdk.services.bedrock.model.*; public class BedrockBatchInference { private final BedrockClient bedrockClient = BedrockClient.create(); public void createModelInvokeJobSampleCode() { CreateModelInvocationJobResponse response = bedrockClient.createModelInvocationJob(request -> request .modelId("anthropic.claude-haiku-4-5-20251001-v1:0") .jobName("unique-job-name") .roleArn("arn:aws:iam::123456789:role/bedrock-role") .clientRequestToken("client-token") .inputDataConfig(input -> input .s3InputDataConfig(s3 -> s3 .s3Uri("s3://batch-input/abc.jsonl") .s3InputFormat(S3InputFormat.JSONL))) .outputDataConfig(output -> output .s3OutputDataConfig(s3 -> s3 .s3Uri("s3://batch-output/")))); System.out.println(response.jobArn()); } public void getModelInvokeJobSampleCode() { GetModelInvocationJobResponse response = bedrockClient.getModelInvocationJob(request -> request .jobIdentifier("jobArn")); System.out.println(response.status()); } public void listModelInvokeJobSampleCode() { ListModelInvocationJobsResponse response = bedrockClient.listModelInvocationJobs(request -> request .maxResults(10) .nameContains("matching-string")); response.invocationJobSummaries().forEach(job -> System.out.println(job.jobName() + ": " + job.status())); } public void stopModelInvokeJobSampleCode() { bedrockClient.stopModelInvocationJob(request -> request .jobIdentifier("jobArn")); } }