기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
요청별 메타데이터 태그 지정
요청 메타데이터를 사용하면 bedrock-runtime 엔드포인트의 개별 Amazon Bedrock 추론 호출에 키-값 태그를 연결할 수 있습니다. 태그는 요청과 함께 모델 호출 로그에 기록됩니다. 그런 다음 팀, 애플리케이션, 환경, 실험 또는 호출마다 다른 기타 차원에 사용량을 속성으로 지정할 수 있습니다. 미리 생성하거나 구성할 리소스는 없습니다. 각 호출은 다른 태그 세트를 전달할 수 있습니다.
요청 메타데이터는 다음 bedrock-runtime APIs
참고
요청 메타데이터는 bedrock-mantle 엔드포인트에서 지원되지 않습니다. 비용 할당 태그로서 AWS Cost Explorer 및 AWS Cost and Usage Reports로 직접 흐르는 어트리뷰션은 애플리케이션 추론 프로파일, Projects또는 섹션을 참조하세요워크스페이스.
요청 메타데이터 작동 방식
호출하는 API에 따라 요청에 메타데이터를 다르게 연결합니다.
-
InvokeModel 및 InvokeModelWithResponseStream - 요청에
X-Amzn-Bedrock-Request-MetadataHTTP 헤더를 설정합니다. 값은 키와 값이 선택한 문자열인 JSON 객체입니다. -
Converse 및 ConverseStream - 요청 본문에서
requestMetadata필드를 설정합니다. 자세한 내용은 requestMetadata 단원을 참조하십시오.
요청 메타데이터는 호출 AWS 리전 이 이루어진에서 로깅이 활성화된 경우에만 모델 호출 로그에 기록됩니다. 설정 지침은 단원을 참조하십시오CloudWatch Logs 및 Amazon S3를 사용하여 모델 간접 호출 모니터링.
다음 예제는 팀 이름, 환경 및 테스트 사례 식별자로 호출에 태그를 지정하는 InvokeModel 요청을 보여줍니다.
POST /model/anthropic.claude-3-haiku-20240307-v1:0/invoke HTTP/1.1 Content-Type: application/json X-Amzn-Bedrock-Request-Metadata: {"team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_sync"} { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 50, "messages": [{"role": "user", "content": "Say hello in one word."}] }
InvokeModelWithResponseStream에서 동일한 헤더가 지원됩니다.
POST /model/anthropic.claude-3-haiku-20240307-v1:0/invoke-with-response-stream HTTP/1.1 Content-Type: application/json X-Amzn-Bedrock-Request-Metadata: {"team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_stream"} { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 50, "messages": [{"role": "user", "content": "Say hello in one word."}] }
중요
AWS 서명 버전 4(SigV4)를 사용하여 요청에 서명하는 경우 SignedHeaders 목록에 X-Amzn-Bedrock-Request-Metadata를 포함합니다. 서명된 목록에서 헤더를 생략하는 요청은 요청 메타데이터를 파라미터로 노출하는 InvalidSignatureException. AWS SDKs가 이를 자동으로 처리합니다.
다음 예제에서는 Converse 호출에서 AWS SDK for Python(Boto3)을 사용하여 요청 메타데이터를 설정합니다. SDK에는 SigV4-signed 헤더에 메타데이터가 포함되어 있습니다.
import boto3 client = boto3.client("bedrock-runtime") response = client.converse( modelId="us.anthropic.claude-opus-4-8", # or an inference profile ARN messages=[{"role": "user", "content": [{"text": "Summarize this ticket."}]}], requestMetadata={ "user": "alice@example.com", "team": "growth", "feature": "summarizer", "environment": "prod", }, )
한도
요청 메타데이터에는 X-Amzn-Bedrock-Request-Metadata 헤더(InvokeModel, InvokeModelWithResponseStream)와 requestMetadata 본문 필드(Converse, ConverseStream) 모두에 적용되는 다음과 같은 제한이 있습니다.
요청당 최대 16개의 메타데이터 항목.
키: 최대 256자.
값: 최대 256자.
허용되는 문자: 제한된 영숫자 및 구두점 문자 집합입니다.
이러한 제한을 초과하는 요청은 검증 오류와 함께 거부됩니다.
요청 메타데이터가 나타나는 위치
요청 메타데이터는 최상위 requestMetadata 필드 아래의 Amazon Bedrock 모델 호출 로그에 표시됩니다. 다음 약식 로그 항목은 InvokeModel 호출의 필드를 보여줍니다.
{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-01-15T12:00:00Z", "accountId": "123456789012", "region": "us-east-1", "requestId": "abcd1234-5678-efgh-ijkl-mnopqrstuvwx", "operation": "InvokeModel", "modelId": "anthropic.claude-3-haiku-20240307-v1:0", "requestMetadata": { "team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_sync" }, "input": { "...": "..." }, "output": { "...": "..." } }
Amazon CloudWatch Logs Insights, Amazon Athena와 같은 Amazon S3 쿼리 도구 또는 호출 로그를 읽는 기타 시스템의 메타데이터 필드를 기준으로 로그를 필터링하고 집계할 수 있습니다.
로그에서 비용 가져오기
요청 메타데이터 및 토큰 수는 청구서가 아닌 모델 호출 로그에 기록됩니다. 두 가지 방법으로 비용을 절감할 수 있습니다.
- 토큰 수에서 계산
-
각 로그 레코드에는 요청에 대한 입력, 출력, 캐시 읽기 및 캐시 쓰기 토큰 수가 포함됩니다. 여기에 Amazon Bedrock 요금
의 토큰당 요금을 곱하고 그룹에 메타데이터 태그를 곱합니다. 이 접근 방식은 프롬프트별로 거의 실시간으로 이루어지지만 추정치입니다. 요금 카드를 유지합니다. 모델링하지 않는 한 할인, 약정, 배치 요금, 프리 티어 또는 프로비저닝된 처리량은 반영되지 않습니다. 다음 CloudWatch Logs Insights 쿼리는 호출 로그가 CloudWatch Logs로 전달될 때 사용자 및 모델당 토큰을 합산합니다.
fields requestMetadata.user as user, modelId, input.inputTokenCount as inTokens, output.outputTokenCount as outTokens | stats sum(inTokens) as totalInput, sum(outTokens) as totalOutput, count() as calls by user, modelId | sort totalInput descAmazon S3로 전송된 로그의 경우 다음 Amazon Athena 쿼리는 팀별 비용을 추정합니다. 토큰당 요금을 Amazon Bedrock 요금
의 현재 요금으로 바꾸고 테이블 정의에 맞게 AWS Glue 테이블 및 열 참조를 조정합니다. SELECT requestMetadata.team AS team, modelId, SUM(input.inputTokenCount) AS input_tokens, SUM(output.outputTokenCount) AS output_tokens, SUM(input.inputTokenCount) * 0.000015 AS est_input_cost, SUM(output.outputTokenCount) * 0.000075 AS est_output_cost FROM bedrock_invocation_logs GROUP BY requestMetadata.team, modelId ORDER BY est_input_cost DESC; - CUR과 조정
-
인보이스의 정확한 합계를 위해 호출 로그를 AWS 비용 및 사용 보고서에 조인합니다. 클래식 CUR도 CUR 2.0도 행 항목에 요청당 식별자를 포함하지 않습니다. 두 가지 모두 1시간 또는 1일 동안의 사용량 유형별로 비용을 집계합니다. 이 경로를 모델 및 사용량 유형 단위에서 조정으로 취급하고 로그는 아래에 요청별 세부 정보를 제공합니다.
참고
요청 메타데이터와 IAM 세션 태그는 서로 다른 메커니즘입니다. 요청 메타데이터는 호출마다 설정되며 요청에 따라 다릅니다. 호출 로그에 저장됩니다. IAM 세션 태그는 세션별로 바인딩되며 AWS Cost Explorer 및 CUR에서 집계된 결제 데이터로만 표시됩니다. 사용자별, 프롬프트별 속성의 경우 세션 태그가 아닌 ARN에서 요청 메타데이터 또는 사용자별 자격 증명을 사용합니다.
고려 사항
-
요청 메타데이터 값은 호출의에서 모델 호출 로깅이 활성화된 경우에만 기록됩니다 AWS 리전. 로깅이 구성되지 않은 경우 요청은 계속 성공하지만 메타데이터는 유지되지 않습니다.
-
요청 메타데이터는 AWS 비용 할당 태그로 전달되지 않으며 AWS Cost Explorer 또는 CUR에 표시되지 않습니다. 메타데이터 차원별로 비용을 분석하려면 호출 로그를의 비용 및 사용 보고서와 조인합니다
requestId. 또는 로그 레코드에서 직접 토큰 수를 집계하고 Amazon Bedrock 요금의 토큰당 요금을 곱합니다. Cost Explorer 및 CUR로 기본적으로 흐르는 어트리뷰션의 경우 , 또는 애플리케이션 추론 프로파일Projects를 사용합니다워크스페이스. -
집계하기 쉬운 분석을
experiment위해team,feature, 또는environment와 같은 안정적이고 카디널리티가 낮은 키를 선택합니다. 개별 호출을 추적해야 하는 경우에만 세션 또는 추적 식별자와 같은 더 높은 카디널리티 값을 사용합니다. -
요청 메타데이터에 개인 식별 정보(PII), 자격 증명 또는 기타 민감한 데이터를 배치하지 마세요. 값은 모델 호출 로그와 해당 로그를 읽는 모든 시스템에 저장됩니다.
-
요청 메타데이터는 호출당 제공되며 Amazon Bedrock에서 적용되지 않습니다. 이를 생략하는 요청은 여전히 성공하며 이를 요구하는 서비스 측 정책은 없습니다. 조직 전체의 적용 범위를 보장하려면 공유 클라이언트 또는 LLM 게이트웨이에서 요청 메타데이터를 설정합니다. 통화당 코드 없이 항상 존재하는 어트리뷰션의 경우를 사용합니다IAM 보안 주체 속성. 호출자 자격 증명을 자동으로 캡처합니다.
-
요청 메타데이터는 다른 Amazon Bedrock 사용량 추적 방법과 함께 작동합니다. 동일한 워크로드IAM 보안 주체 속성에서 ID별 어트리뷰션 및 리소스 수준 비용 할당 태그에 애플리케이션 추론 프로파일를 사용할 수 있습니다.