기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
코드 샘플
참고
배치 추론은 현재 미리 보기이므로 변경될 수도 있습니다. 배치 추론은 현재 API를 통해서만 사용할 수 있습니다. 다음 SDK를 통해 배치 API에 액세스할 수 있습니다.
SDK를 사용할 가상 환경을 만드는 것이 좋습니다. 최신 SDK에서는 일괄 추론 API를 사용할 수 없으므로 일괄 추론 API가 포함된 버전을 설치하기 전에 가상 환경에서 최신 버전의 SDK를 제거하는 것이 좋습니다. 가이드 예제는 을 참조하십시오. 코드 샘플
언어를 선택하면 배치 추론 API 작업을 호출하는 코드 샘플을 볼 수 있습니다.
- Python
-
배치 추론 API 작업이 포함된 Python SDK 및 CLI 파일을 다운로드한 후 파일이 들어 있는 폴더로 이동하여 터미널에서
ls
실행합니다. 최소한 다음 2개의 파일이 표시되어야 합니다.botocore-1.32.4-py3-none-any.whl boto3-1.29.4-py3-none-any.whl
터미널에서 다음 명령을 실행하여 배치 추론 API를 위한 가상 환경을 만들고 활성화합니다.
bedrock-batch를
환경에 맞게 선택한 이름으로 바꿀 수 있습니다.python3 -m venv
bedrock-batch
sourcebedrock-batch
/bin/activate최신 버전의
boto3
및botocore
버전에서 아티팩트가 발생하지 않도록 터미널에서 다음 명령을 실행하여 기존 버전을 모두 제거하십시오.python3 -m pip uninstall botocore python3 -m pip uninstall boto3
터미널에서 다음 명령을 실행하여 Amazon Bedrock 컨트롤 플레인 API가 포함된 Python SDK를 설치합니다.
python3 -m pip install botocore-1.32.4-py3-none-any.whl python3 -m pip install boto3-1.29.4-py3-none-any.whl
만든 가상 환경에서 다음 코드를 모두 실행합니다.
S3에 업로드한
abc.jsonl
파일을 사용하여 배치 추론 작업을 생성합니다. 출력을s3://output-bucket/output/
에 있는 버킷에 기록합니다. 응답에서jobArn
을 가져옵니다.import boto3 bedrock = boto3.client(service_name="bedrock") inputDataConfig=({ "s3InputDataConfig": { "s3Uri": "s3://input-bucket/input/abc.jsonl" } }) outputDataConfig=({ "s3OutputDataConfig": { "s3Uri": "s3://output-bucket/output/" } }) response=bedrock.create_model_invocation_job( roleArn="arn:aws:iam::123456789012:role/MyBatchInferenceRole", modelId="amazon.titan-text-express-v1", jobName="my-batch-job", inputDataConfig=inputDataConfig, outputDataConfig=outputDataConfig ) jobArn = response.get('jobArn')
작업의
status
를 반환합니다.bedrock.get_model_invocation_job(jobIdentifier=jobArn)['status']
실패
한 배치 추론 작업을 나열합니다.bedrock.list_model_invocation_jobs( maxResults=10, statusEquals="Failed", sortOrder="Descending" )
시작한 작업을 중지합니다.
bedrock.stop_model_invocation_job(jobIdentifier=jobArn)
- Java
-
package com.amazon.aws.sample.bedrock.inference; import com.amazonaws.services.bedrock.AmazonBedrockAsync; import com.amazonaws.services.bedrock.AmazonBedrockAsyncClientBuilder; import com.amazonaws.services.bedrock.model.CreateModelInvocationJobRequest; import com.amazonaws.services.bedrock.model.CreateModelInvocationJobResult; import com.amazonaws.services.bedrock.model.GetModelInvocationJobRequest; import com.amazonaws.services.bedrock.model.GetModelInvocationJobResult; import com.amazonaws.services.bedrock.model.InvocationJobInputDataConfig; import com.amazonaws.services.bedrock.model.InvocationJobOutputDataConfig; import com.amazonaws.services.bedrock.model.InvocationJobS3InputDataConfig; import com.amazonaws.services.bedrock.model.InvocationJobS3OutputDataConfig; import com.amazonaws.services.bedrock.model.ListModelInvocationJobsRequest; import com.amazonaws.services.bedrock.model.ListModelInvocationJobsResult; import com.amazonaws.services.bedrock.model.StopModelInvocationJobRequest; import com.amazonaws.services.bedrock.model.StopModelInvocationJobResult; public class BedrockAsyncInference { private final AmazonBedrockAsync amazonBedrockAsyncClient = AmazonBedrockAsyncClientBuilder.defaultClient(); public void createModelInvokeJobSampleCode() { final InvocationJobS3InputDataConfig invocationJobS3InputDataConfig = new InvocationJobS3InputDataConfig() .withS3Uri("s3://Input-bucket-name/input/abc.jsonl") .withS3InputFormat("JSONL"); final InvocationJobInputDataConfig inputDataConfig = new InvocationJobInputDataConfig() .withS3InputDataConfig(invocationJobS3InputDataConfig); final InvocationJobS3OutputDataConfig invocationJobS3OutputDataConfig = new InvocationJobS3OutputDataConfig() .withS3Uri("s3://output-bucket-name/output/"); final InvocationJobOutputDataConfig invocationJobOutputDataConfig = new InvocationJobOutputDataConfig() .withS3OutputDataConfig(invocationJobS3OutputDataConfig); final CreateModelInvocationJobRequest createModelInvocationJobRequest = new CreateModelInvocationJobRequest() .withModelId("anthropic.claude-v2") .withJobName("unique-job-name") .withClientRequestToken("Client-token") .withInputDataConfig(inputDataConfig) .withOutputDataConfig(invocationJobOutputDataConfig); final CreateModelInvocationJobResult createModelInvocationJobResult = amazonBedrockAsyncClient .createModelInvocationJob(createModelInvocationJobRequest); System.out.println(createModelInvocationJobResult.getJobArn()); } public void getModelInvokeJobSampleCode() { final GetModelInvocationJobRequest getModelInvocationJobRequest = new GetModelInvocationJobRequest() .withJobIdentifier("jobArn"); final GetModelInvocationJobResult getModelInvocationJobResult = amazonBedrockAsyncClient .getModelInvocationJob(getModelInvocationJobRequest); } public void listModelInvokeJobSampleCode() { final ListModelInvocationJobsRequest listModelInvocationJobsRequest = new ListModelInvocationJobsRequest() .withMaxResults(10) .withNameContains("matchin-string"); final ListModelInvocationJobsResult listModelInvocationJobsResult = amazonBedrockAsyncClient .listModelInvocationJobs(listModelInvocationJobsRequest); } public void stopModelInvokeJobSampleCode() { final StopModelInvocationJobRequest stopModelInvocationJobRequest = new StopModelInvocationJobRequest() .withJobIdentifier("jobArn"); final StopModelInvocationJobResult stopModelInvocationJobResult = amazonBedrockAsyncClient .stopModelInvocationJob(stopModelInvocationJobRequest); } }