View a markdown version of this page

생성형 AI 추론 엔드포인트 벤치마크 - Amazon SageMaker AI

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

생성형 AI 추론 엔드포인트 벤치마크

SageMaker AI 벤치마킹 서비스는 SageMaker AI 엔드포인트에서 호스팅되는 대규모 언어 모델(LLMs)의 성능을 측정합니다. NVIDIA AIPerf를 사용하여 벤치마크를 실행하여 요청 지연 시간, 처리량, 첫 번째 토큰까지의 시간, 토큰 간 지연 시간과 같은 지표를 생성합니다.

사전 조건

벤치마크 작업을 생성하기 전에 다음이 필요합니다.

  • OpenAI 호환 채팅 완료 API를 지원하는 LLM을 호스팅하는 InService 상태의 SageMaker AI 엔드포인트

  • 벤치마크 출력을 위한 Amazon S3 버킷

  • 엔드포인트 및 출력 버킷에 대한 SageMaker AI 액세스 권한을 부여하는 IAM 실행 역할

1단계: 벤치마크 작업 생성

벤치마크 작업은 특정 SageMaker AI 엔드포인트를 대상으로 하며 워크로드 구성을 참조합니다.

Python(boto3)

response = client.create_ai_benchmark_job( AIBenchmarkJobName="my-benchmark-job", BenchmarkTarget={ "Endpoint": { "Identifier": "my-sagemaker-endpoint" } }, OutputConfig={ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/" }, AIWorkloadConfigIdentifier="my-benchmark-config", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", ) print(response["AIBenchmarkJobArn"])

AWS CLI

aws sagemaker create-ai-benchmark-job \ --ai-benchmark-job-name "my-benchmark-job" \ --benchmark-target '{"Endpoint": {"Identifier": "my-sagemaker-endpoint"}}' \ --output-config '{"S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/"}' \ --ai-workload-config-identifier "my-benchmark-config" \ --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \ --region us-west-2

엔드포인트가 추론 구성 요소를 통해 여러 모델을 호스팅하는 경우의 InferenceComponents 파라미터에서 모델을 지정할 수 있습니다BenchmarkTarget.

엔드포인트가 VPC에 있는 경우 보안 그룹 IDs 및 서브넷을 포함한 VpcConfig 설정과 함께 NetworkConfig 파라미터를 전달합니다.

SageMaker AI에서 완전 관리형 MLflow를 사용하여 벤치마크 결과를 추적하려면에 MlflowConfig 객체를 추가합니다OutputConfig. 자세한 내용은 MLflow를 사용하여 추론 권장 사항 및 벤치마크 결과 추적 단원을 참조하십시오.

추론 구성 요소 벤치마크

엔드포인트가 모델을 직접 배포하는 대신 추론 구성 요소를 사용하는 경우에서 벤치마킹할 추론 구성 요소를 지정해야 합니다BenchmarkTarget. 추론 구성 요소를 지정하면 벤치마킹 서비스는 엔드포인트의 기본 모델이 아닌 특정 구성 요소로 요청을 라우팅합니다.

InferenceComponents 목록에서 하나 이상의 추론 구성 요소 이름 또는 ARNs을 전달합니다.

Python(boto3)

response = client.create_ai_benchmark_job( AIBenchmarkJobName="my-ic-benchmark", BenchmarkTarget={ "Endpoint": { "Identifier": "my-multi-model-endpoint", "InferenceComponents": [ {"Identifier": "my-inference-component-llama"} ] } }, OutputConfig={ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/" }, AIWorkloadConfigIdentifier="my-benchmark-config", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", )

AWS CLI

aws sagemaker create-ai-benchmark-job \ --ai-benchmark-job-name "my-ic-benchmark" \ --benchmark-target '{ "Endpoint": { "Identifier": "my-multi-model-endpoint", "InferenceComponents": [ {"Identifier": "my-inference-component-llama"} ] } }' \ --output-config '{"S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/benchmark-results/"}' \ --ai-workload-config-identifier "my-benchmark-config" \ --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \ --region us-west-2
참고

엔드포인트가 추론 구성 요소에 대해 구성되었지만 벤치마크 대상InferenceComponents에를 지정하지 않으면 작업이 실패하고 엔드포인트에 직접 배포된 모델이 없음을 나타내는 오류가 발생합니다. inference-component-based 엔드포인트를 벤치마킹할 때는 항상 InferenceComponents 파라미터를 포함합니다.

다중 LoRA 엔드포인트 벤치마크

여러 LoRA 어댑터를 제공하는 엔드포인트를 벤치마킹하려면에서 각 어댑터를 추론 구성 요소로 지정합니다BenchmarkTarget. 선택적으로 model_selection_strategy 워크로드 파라미터를 사용하여 벤치마크가 어댑터 간에 요청을 분산하는 방법을 제어할 수 있습니다. 전략을 지정하지 않으면 기본값은 입니다round_robin.

먼저 워크로드 구성을 생성합니다. 다음 예제에는 선택적 model_selection_strategy 파라미터가 포함되어 있습니다.

# Create a workload config for multi-LoRA benchmarking workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "prompt_input_tokens_mean": 550, "output_tokens_mean": 150, "concurrency": 10, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B", "model_selection_strategy": "round_robin" }, "secrets": { "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf" }, "tooling": {"api_standard": "openai"} } import json client.create_ai_workload_config( AIWorkloadConfigName="multi-lora-config", WorkloadSpec={"Inline": json.dumps(workload_spec)} )

그런 다음 모든 LoRA 어댑터 추론 구성 요소를 대상으로 하는 벤치마크 작업을 생성합니다.

response = client.create_ai_benchmark_job( AIBenchmarkJobName="multi-lora-benchmark", BenchmarkTarget={ "Endpoint": { "Identifier": "my-lora-endpoint", "InferenceComponents": [ {"Identifier": "lora-adapter-customer-support"}, {"Identifier": "lora-adapter-code-generation"}, {"Identifier": "lora-adapter-summarization"} ] } }, OutputConfig={ "S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/multi-lora-results/" }, AIWorkloadConfigIdentifier="multi-lora-config", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", )

model_selection_strategy 파라미터는 선택 사항이며 벤치마크 도구가 지정된 추론 구성 요소에 요청을 분산하는 방법을 결정합니다. 유효값은 다음과 같습니다.

  • round_robin (기본값) - 각 어댑터는 순서대로 요청을 수신합니다. n번째 요청은 (n mod number-of-models)번째 어댑터로 전송됩니다.

  • random - 각 요청은 어댑터에 무작위로 균일하게 할당됩니다.

를 지정하지 않으면 벤치마크model_selection_strategyround_robin 기본적으로를 사용합니다.

합성 이미지로 멀티모달 엔드포인트 벤치마킹

워크로드 구성의 일부로 합성 이미지를 생성하여 비전 언어 모델을 벤치마킹할 수 있습니다. 벤치마킹 서비스는 AIPerf를 사용하여 구성 가능한 차원 및 형식으로 이미지를 생성한 다음 이를 base64로 인코딩된 페이로드로 엔드포인트에 전송합니다.

다음 예제에서는 합성 이미지로 비전 언어 모델을 벤치마킹하기 위한 워크로드 구성을 생성합니다.

import json workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "image_width_mean": 640, "image_height_mean": 480, "prompt_input_tokens_mean": 100, "output_tokens_mean": 150, "concurrency": 8, "request_count": 100, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B" }, "secrets": { "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf" } } client.create_ai_workload_config( AIWorkloadConfigName="image-benchmark-config", WorkloadSpec={"Inline": json.dumps(workload_spec)} )

다음 파라미터는 합성 이미지 생성을 제어합니다.

파라미터 유형 기본값 설명
image_width_mean 실수 없음 픽셀 단위의 평균 이미지 너비입니다.
image_width_stddev 실수 없음 이미지 너비의 표준 편차입니다. 요청 간에 이미지 차원을 변경하도록 설정합니다.
image_height_mean 실수 없음 픽셀 단위의 평균 이미지 높이입니다.
image_height_stddev 실수 없음 이미지 높이의 표준 편차입니다.
image_batch_size int 1 요청당 이미지 수입니다.
image_format 문자열 PNG 이미지 형식 유효한 값: png (손실 없음), jpeg (손실 있음, 작은 파일), random (이미지당 PNG 또는 JPEG를 무작위로 선택).

가변 크기 이미지

표준 편차 파라미터를 사용하여 다양한 차원의 이미지를 생성하여 이미지 크기가 다른 실제 워크로드를 시뮬레이션합니다.

workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "image_width_mean": 800, "image_width_stddev": 200, "image_height_mean": 600, "image_height_stddev": 150, "image_batch_size": 2, "concurrency": 4, "request_count": 50, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B" } }

합성 비디오로 멀티모달 엔드포인트 벤치마킹

워크로드 구성의 일부로 합성 비디오를 생성하여 비디오 입력을 처리하는 멀티모달 모델을 벤치마킹할 수 있습니다. 벤치마킹 서비스는 AIPerf의 합성 비디오 생성을 사용하여 구성 가능한 해상도, 프레임 속도, 기간 및 인코딩으로 비디오를 생성한 다음 엔드포인트에 base64 인코딩 페이로드로 전송합니다.

참고

비디오 생성은 기본적으로 비활성화되어 있습니다. 워크로드 구성을 활성화하려면 워크로드 구성video_height에서 video_width 및를 모두 지정해야 합니다.

다음 예제에서는 640×480 해상도의 합성 비디오로 멀티모달 모델을 벤치마킹하기 위한 워크로드 구성을 생성합니다.

import json workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "video_width": 640, "video_height": 480, "video_fps": 4, "video_duration": 5.0, "output_tokens_mean": 150, "concurrency": 4, "request_count": 50, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B" }, "secrets": { "hf_token": "arn:aws:secretsmanager:us-west-2:111122223333:secret:my-hf-token-AbCdEf" } } client.create_ai_workload_config( AIWorkloadConfigName="video-benchmark-config", WorkloadSpec={"Inline": json.dumps(workload_spec)} )

비디오 파라미터

다음 파라미터는 합성 비디오 생성을 제어합니다.

파라미터 유형 기본값 설명
video_width int 없음 프레임 너비는 픽셀 단위입니다. 비디오 생성을 활성화video_height하려면 로 설정해야 합니다.
video_height int 없음 프레임 높이를 픽셀 단위로 표시합니다. 비디오 생성을 활성화video_width하려면 로 설정해야 합니다.
video_fps int 4 초당 프레임 수.
video_duration 실수 5.0 초 단위의 클립 지속 시간입니다.
video_batch_size int 1 요청당 비디오 수입니다.
video_synth_type 문자열 이동_셰이프 합성 패턴. 유효한 값: moving_shapes (애니메이션된 기하학적 셰이프), grid_clock (클럭 애니메이션이 있는 그리드), noise (랜덤 픽셀 노이즈).
video_format 문자열 컨테이너 형식. 유효한 값: webm.
video_codec 문자열 libvpx-vp9 비디오 코덱. 지원되는 값: libvpx-vp9 (VP9, WebM).
참고

벤치마킹 서비스는 WebM 형식의 VP9 인코딩만 지원합니다.

임베디드 오디오 트랙

비디오와 오디오를 함께 처리하는 모델의 경우 생성된 비디오에 합성 오디오 트랙을 포함할 수 있습니다. 오디오는 기본적으로 비활성화되어 있습니다. 1 (모노) 또는 2 (스테레오)video_audio_num_channels로 설정하여 활성화합니다.

파라미터 유형 기본값 설명
video_audio_num_channels int 0 0 = 비활성화됨, 1 = 모노, 2 = 스테레오.
video_audio_sample_rate int 44100 Hz(8000~96000) 단위의 샘플 속도입니다.
video_audio_codec 문자열 auto 오디오 코덱. WebM의 libvorbis 경우 , MP4의 aac 경우를 자동으로 선택합니다. aac, 또는 로 재정libvorbis의할 수 있습니다libopus.
video_audio_depth int 16 샘플당 비트 깊이(8, 16, 24 또는 32).

비디오 벤치마킹 예제

저해상도 비디오 이해

workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "video_width": 320, "video_height": 240, "video_fps": 2, "video_duration": 3.0, "video_synth_type": "moving_shapes", "concurrency": 4, "request_count": 50, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B" } }

HD 비디오 벤치마킹

workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "video_width": 1920, "video_height": 1080, "video_fps": 8, "video_duration": 10.0, "concurrency": 2, "request_count": 20, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B" } }

멀티모달 모델용 오디오가 포함된 비디오

workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "video_width": 640, "video_height": 480, "video_fps": 4, "video_duration": 5.0, "video_audio_num_channels": 1, "video_audio_sample_rate": 16000, "concurrency": 4, "request_count": 50, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B" } }

혼합 텍스트 및 비디오

비디오 질문 응답 또는 캡션 워크로드에 대한 텍스트 프롬프트와 비디오를 결합합니다.

workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "video_width": 640, "video_height": 480, "video_fps": 4, "video_duration": 5.0, "prompt_input_tokens_mean": 100, "output_tokens_mean": 50, "concurrency": 8, "request_count": 100, "streaming": True, "tokenizer": "meta-llama/Llama-3.2-1B" } }

성능 고려 사항

  • 해상도와 프레임 속도가 높을수록 비디오 인코딩 시간과 페이로드 크기가 증가합니다. 처리량이 많은 테스트의 경우 더 낮은 해상도(320×240 또는 640×480)를 사용합니다.

  • WebM 형식의 VP9(libvpx-vp9)는 유일하게 지원되는 코덱이며 페이로드 벤치마킹에 적합한 압축을 제공합니다.

  • 오디오는 비디오 스트림에 비해 오버헤드를 최소화합니다. 스피치 중심 워크로드에는 16kHz의 모노(1)를 사용합니다.

2단계: 작업 상태 모니터링

터미널 상태에 도달할 때까지 작업 상태를 폴링합니다.

Python(boto3)

import time while True: response = client.describe_ai_benchmark_job( AIBenchmarkJobName="my-benchmark-job" ) status = response["AIBenchmarkJobStatus"] print(f"Status: {status}") if status in ("Completed", "Failed", "Stopped"): break time.sleep(30) if status == "Completed": print(f"Results at: {response['OutputConfig']['S3OutputLocation']}") elif status == "Failed": print(f"Job failed: {response.get('FailureReason', 'unknown')}")

AWS CLI

aws sagemaker describe-ai-benchmark-job \ --ai-benchmark-job-name "my-benchmark-job" \ --region us-west-2

3단계: 벤치마크 결과 검토

벤치마크 결과는 지정한 Amazon S3 출력 위치에 기록됩니다. 결과에는 다음과 같은 주요 지표가 포함됩니다.

request_throughput

초당 요청 수.

request_latency

백분위수 분석(P50, P90, P99)이 포함된 End-to-end 요청 지연 시간입니다.

time_to_first_token

요청 제출부터 수신된 첫 번째 토큰까지의 시간입니다.

inter_token_latency

연속 출력 토큰 사이의 시간입니다.

output_token_throughput

초당 생성된 출력 토큰입니다.

각 지표에는 평균, 최소, 최대, P50, P90, P99 및 표준 편차와 같은 통계 요약이 포함됩니다.

사용자 지정 형식 엔드포인트 벤치마크

엔드포인트가 사용자 지정 요청 또는 응답 형식(예: DJL 사용자 지정 핸들러, TensorRT-LLM 기본 형식 또는 OpenAI 채팅 완료 API를 지원하지 않는 기타 서빙 프레임워크)을 사용하는 경우 Jinja2 템플릿을 사용하여 벤치마킹하여 엔드포인트의 페이로드 셰이프를 정의할 수 있습니다.

벤치마킹 서비스는 합성 또는 사용자 지정 프롬프트를 사용하여 요청당 템플릿을 렌더링한 다음 페이로드를 SageMaker AI 엔드포인트로 전달합니다. 또한 JMESPath 쿼리를 지정하여 엔드포인트의 응답에서 생성된 텍스트를 추출합니다.

페이로드 템플릿 생성

엔드포인트의 요청 형식을 Jinja2 템플릿 파일로 정의합니다. 템플릿에서 사용할 수 있는 변수는 다음과 같습니다.

변수 설명
text 첫 번째 텍스트 콘텐츠(합성 또는 데이터 세트).
texts 모든 텍스트 콘텐츠의 목록입니다.
model 모델 이름입니다.
max_tokens 출력 토큰 제한입니다.
stream 스트리밍 활성화 여부.

문자열 값의 적절한 JSON 이스케이프를 위해 |tojson 필터를 사용합니다. 다음 예제에서는 도구 호출 형식의 DJL 엔드포인트에 대한 템플릿을 보여줍니다.

{ "messages": [{"role": "user", "content": {{ text|tojson }}}], "tools": [ {"function": {"name": "Chit_Chat", "description": "casual conversation", "parameters": {"type": "object", "properties": {}}}} ], "max_tokens": {{ max_tokens }} }

템플릿 파일을 Amazon S3에 업로드합니다(예: s3://DOC-EXAMPLE-BUCKET/templates/my_endpoint_template.jinja).

워크로드 구성 생성

템플릿 파일을 참조하는 워크로드 구성을 생성합니다. extra_inputs 파라미터를 사용하여 템플릿 경로와 응답 추출 쿼리를 지정합니다. DatasetConfig 채널을 통해 템플릿 파일을 벤치마크 컨테이너로 전송합니다.

import json TEMPLATE_LOCAL_PATH = "/opt/ml/input/data/template/my_endpoint_template.jinja" RESPONSE_FIELD = "generation_details.generations[0].content" workload_spec = { "benchmark": {"type": "aiperf"}, "parameters": { "extra_inputs": f"payload_template:{TEMPLATE_LOCAL_PATH} response_field:{RESPONSE_FIELD}", "tokenizer": "meta-llama/Llama-3.2-1B", # ... other benchmark parameters (concurrency, request_count, etc.) }, } response = client.create_ai_workload_config( AIWorkloadConfigName="custom-format-config", AIWorkloadConfigs={"WorkloadSpec": {"Inline": json.dumps(workload_spec)}}, DatasetConfig={ "InputDataConfig": [ { "ChannelName": "template", "DataSource": { "S3DataSource": { "S3Uri": "s3://DOC-EXAMPLE-BUCKET/templates/my_endpoint_template.jinja", } }, } ] }, )

는 벤치마크 컨테이너 내에서 파일이 나타나는 위치를 ChannelName 결정합니다. 라는 채널을 template 사용하면에서 파일을 사용할 수 있습니다/opt/ml/input/data/template/<filename>.

response_field 값은 엔드포인트의 응답에서 생성된 텍스트를 추출하는 JMESPath 쿼리입니다. 일반적인 패턴은 다음과 같습니다.

  • choices[0].message.content - OpenAI 형식

  • generation_details.generations[0].content - DJL 형식

  • output.text - 간단한 텍스트 응답

response_field를 생략하면 벤치마킹 도구가 응답 형식을 자동으로 감지합니다.

벤치마크 실행

엔드포인트를 대상으로 하는 벤치마크 작업을 생성합니다. 서비스는의 payload_template 키에서 템플릿 모드를 자동으로 감지extra_inputs하고 적절한 프록시 경로를 통해 요청을 라우팅합니다.

response = client.create_ai_benchmark_job( AIBenchmarkJobName="custom-format-benchmark", BenchmarkTarget={"Endpoint": {"Identifier": "my-custom-endpoint"}}, OutputConfig={"S3OutputLocation": "s3://DOC-EXAMPLE-BUCKET/results/"}, AIWorkloadConfigIdentifier="custom-format-config", RoleArn="arn:aws:iam::111122223333:role/ExampleRole", )

고려 사항

  • 템플릿은 Amazon S3를 통해 파일로 전달되어야 합니다. JSON의 쉼표가 파라미터 구문 분석기와 충돌하기 때문에 extra_inputs 문자열의 인라인 JSON 템플릿은 지원되지 않습니다.

  • 단일 추론 구성 요소가 있는 엔드포인트가 지원됩니다. 서비스가 임의의 페이로드 형식에서 각 요청을 라우팅할 구성 요소를 결정할 수 없으므로 여러 추론 구성 요소가 있는 엔드포인트는 템플릿 모드에서 지원되지 않습니다.

  • 스트리밍 엔드포인트와 비스트리밍 엔드포인트가 모두 지원됩니다. 워크로드 파라미터"streaming": false에서 "streaming": true 또는를 설정합니다.

벤치마크 프롬프트와 응답의 상관관계 파악

벤치마크 작업이 완료되면 출력 아티팩트에는 사후 처리를 위해 함께 조인할 수 있는 요청별 입력 및 출력 데이터가 포함됩니다. 이를 통해 품질 평가, 안전 감사, 구성 간 응답 비교, 예상치 못한 모델 동작 디버깅과 같은 사용 사례를 사용할 수 있습니다.

출력 아티팩트 벤치마크

Amazon S3 출력 위치의 output.tar.gz 아카이브에는 프롬프트-응답 상관 관계와 관련된 다음 파일이 포함되어 있습니다.

inputs.json

생성된 대화의 전체 합성 데이터 세트입니다. 각 레코드에는 session_id 및 전체 요청 페이로드(메시지, max_tokens, 모델)가 있습니다.

outputs.json

엔드포인트로 전송된 요청에 대한 요청별 응답 메타데이터입니다. 각 레코드에는 모델의 응답 텍스트, 요청당 지연 시간, 출력 토큰 수 및 입력에 다시 매핑conversation_id되는이 포함됩니다.

입력을 출력에 조인

conversation_id 필드outputs.json와의 session_id 필드를 사용하여 프롬프트를 응답과 연관시킵니다inputs.json.

import json # Load the artifacts extracted from output.tar.gz in your S3 output location with open("inputs.json") as f: inputs = json.load(f) with open("outputs.json") as f: outputs = json.load(f) # Build lookup tables and join inputs_by_id = {rec["session_id"]: rec for rec in inputs["data"]} outputs_by_id = {rec["conversation_id"]: rec for rec in outputs["data"]} matched_ids = set(inputs_by_id.keys()) & set(outputs_by_id.keys()) print(f"Matched: {len(matched_ids)} prompt-response pairs") # Display a correlated sample for sid in sorted(matched_ids)[:3]: in_rec = inputs_by_id[sid] out_rec = outputs_by_id[sid] prompt = in_rec["payloads"][0]["messages"][0]["content"][:100] response = out_rec.get("response_text", "")[:100] latency = out_rec["metrics"]["request_latency"] print(f"\n[{sid}] Latency: {latency:.0f}ms") print(f" Prompt: {prompt}...") print(f" Response: {response}...")

중요 정보

  • 조인 키. conversation_id의와 일치outputs.json시키려면 session_id의를 사용합니다inputs.json. 를 위치 인덱스session_num로 사용하지 마십시오. 동시성이 1보다 클 때 입력 생성 순서와 다른 실행 순서를 나타냅니다.

  • 모든 입력에 출력이 있는 것은 아닙니다. inputs.json 파일에는 완전히 생성된 데이터 세트 풀이 포함되어 있습니다. request_count가 풀 크기보다 작으면 대화의 하위 집합만 엔드포인트로 전송됩니다. 일치하지 않는 입력은 생성되었지만 사용되지 않은 대화입니다.

  • 출력 스키마입니다. 의 각 레코드outputs.json에는 conversation_id, response_text, metrics ( request_latency 및 ) 및 타이밍 필드(request_start_ns, output_sequence_length)가 포함됩니다request_end_ns.

벤치마크 리소스 관리

다음 작업을 사용하여 벤치마크 작업 및 워크로드 구성을 관리합니다.

# List benchmark jobs response = client.list_ai_benchmark_jobs(MaxResults=10) for job in response["AIBenchmarkJobs"]: print(f"{job['AIBenchmarkJobName']} - {job['AIBenchmarkJobStatus']}") # Stop a running job client.stop_ai_benchmark_job( AIBenchmarkJobName="my-benchmark-job" ) # Delete a job (must be in a terminal state) client.delete_ai_benchmark_job( AIBenchmarkJobName="my-benchmark-job" ) # List workload configurations response = client.list_ai_workload_configs(MaxResults=10) for config in response["AIWorkloadConfigs"]: print(f"{config['AIWorkloadConfigName']} - {config['AIWorkloadConfigArn']}") # Delete a workload configuration client.delete_ai_workload_config( AIWorkloadConfigName="my-benchmark-config" )