기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
조정 및 처리량 모범 사례
이 주제에서는 Amazon Bedrock 엔드포인트에서 처리량 제한 및 일정이 작동하는 방법을 설명하고 생성형 AI 애플리케이션 규모 조정을 위한 모범 사례를 제공합니다.
Amazon Bedrock 엔드포인트
Amazon Bedrock은 추론을 위해 두 개의 엔드포인트를 지원합니다.
-
bedrock-mantle.{region}.api.aws.rproxy.goskope.com- OpenAI 호환 채팅 완료 및 응답 APIs와 Anthropic Messages API를 지원합니다. -
bedrock-runtime.{region}.amazonaws.com.rproxy.goskope.com- Bedrock 네이티브 InvokeModel 및 Converse APIs, OpenAI 호환 채팅 완료 및 응답 APIs, Anthropic Messages API를 지원합니다.
대부분의 새 애플리케이션의 경우 로 시작합니다bedrock-runtime. 서버 측 도구, 배경 추론, 프로젝트, Workspace 또는 에서만 사용할 수 있는 모델과 같이 해당 엔드포인트에서만 사용할 수 있는 기능이 필요한 bedrock-mantle 경우를 사용합니다bedrock-mantle. 동일한 애플리케이션에서 두 엔드포인트를 모두 사용할 수 있습니다. 전체 비교는 단원을 참조하십시오Amazon Bedrock에서 지원하는 엔드포인트.
두 엔드포인트가 다르게 작동하는 이유
두 엔드포인트 표면 모두 동일한 기본 추론 엔진을 사용하지만 할당량 회계 및 용량 옵션은 다릅니다. bedrock-runtime는 모델별 토큰 할당량과 일부 모델의 경우 requests-per-minute 수(RPM) 할당량을 사용합니다. bedrock-mantle는 RPM 할당량을 적용하지 않으며 게시된 할당량이 있는 모델에 대해 별도의 입력 토큰 및 출력 토큰 할당량을 사용합니다. 의 다른 모델에는 Service Quotas에 노출된 계정당 할당량이 없을 bedrock-mantle 수 있지만 처리량은 여전히 내부 서비스 용량에 의해 관리됩니다.
할당량은 상한이며 모든 온디맨드 요청이 즉시 처리된다는 보장은 아닙니다. 수요가 많은 기간에는 요청이 대기열에 추가되거나 일시적인 용량 오류가 발생할 수 있습니다. 재시도 급증을 생성하지 않고 애플리케이션을 제한된 동시성, 대기열 작업 및 임시 재시도 오류로 설계합니다.
bedrock-mantle 엔드포인트: 처리량 및 할당량
bedrock-mantle 엔드포인트에는 다음과 같은 할당량 동작이 있습니다.
-
게시된 할당량이 있는 모델에는 모델별, 리전별 input-tokens-per-minute 및 output-tokens-per-minute 할당량이 별도로 있습니다.
-
엔드포인트는 RPM 할당량을 적용하지 않습니다. RPM이 동일한 두 워크로드는 매우 다양한 용량을 소비할 수 있으므로 RPM만 사용하는 대신 토큰과 동시성에 따라 계획하고 속도를 제한할 수 있습니다.
-
요청이 승인되면 입력 토큰 검사에는 입력 토큰과 요청된
max_tokens값이 포함됩니다. 응답이 완료되면 해당 예약의 미사용 부분이 보충됩니다. 애플리케이션 요구 사항보다 높지max_tokens않게 설정합니다. -
게시된 TPM 할당량이 없는 모델에는 현재 Service Quotas에 노출된 계정별 TPM 할당량이 없습니다. 이는 처리량이 무제한이라는 의미는 아닙니다. 내부 서비스 용량과 일시적 속도 제한은 여전히 적용됩니다.
-
배치 추론 및 프로비저닝된 처리량은를 통해서만 사용할 수 있습니다
bedrock-runtime. 서비스 계층 및 모델 지원은 모델에 따라 다릅니다.
기본값과 계정의 할당은 모델, 리전 및 사용 내역에 따라 다를 수 있습니다. 현재 값, 할당량 평가 세부 정보 및 증가 요청 AWS 지원 프로세스는 섹션을 참조하세요bedrock-mantle 엔드포인트 할당량. 모델별 엔드포인트, 서비스 계층 및 기능 지원한 눈에 보는 모델은 해당를 참조하세요.
bedrock-runtime 엔드포인트: 처리량 및 할당량
bedrock-runtime 엔드포인트에는 다음과 같은 할당량 동작이 있습니다.
-
모델별, 리전별 토큰 할당량은 입력 토큰과 출력 토큰을 함께 계산합니다. 출력 토큰은 모델별 연소율에 따라 할당량을 사용합니다.
-
일부 모델에는 RPM 할당량도 있지만 다른 모델은 토큰 할당량으로만 관리됩니다. 사용하는 정확한 모델 및 추론 프로파일에 적용되는 할당량을 확인합니다.
-
분당 및 일일 토큰 할당량은이 엔드포인트에서 동일한 모델을 호출하는 추론 APIs 간에 공유됩니다.
bedrock-runtime및에 대한 할당bedrock-mantle은 독립적입니다. -
사용자 지정 추론 프로파일, 배치 추론 및 프로비저닝된 처리량에는 별도의 할당량이 있으며를 통해서만 사용할 수 있습니다
bedrock-runtime.
현재 할당량 값, 토큰 감소 세부 정보 및 할당량 증가 프로세스는 섹션을 참조하세요bedrock-runtime 엔드포인트 할당량. 모델별 엔드포인트, 서비스 계층 및 기능 지원한 눈에 보는 모델은 해당를 참조하세요.
HTTP 오류 응답 이해
- HTTP 429
-
429 응답은 요청이 허용되지 않았음을 의미합니다. HTTP 상태에만 의존하지 않고 API별 오류 유형을 검사합니다.
ThrottlingException또는 속도 제한 오류는 일반적으로 요청이 계정 할당량 또는 서비스 속도 제한을 초과했음을 의미합니다. 일부 런타임 작업은에 HTTP 429도 사용합니다ModelNotReadyException. 에서 입력 및 출력 TPM 사용량과 요청max_tokens값을bedrock-mantle확인합니다. 엔드포인트에는 RPM 할당량이 없습니다. 모델에 RPM 할당량이 있는지에서 결합된 토큰 할당량과 RPM을bedrock-runtime확인합니다. - HTTP 503
-
503 응답은 수요가 높거나 용량 제약으로 인해 서비스가 일시적으로 요청을 처리할 수 없음을 의미합니다. 계정 할당량을 초과했음을 나타내지 않습니다. 지수 백오프 및 지터를 사용하여 임시 응답을 재시도합니다. 응답이 지속되면 트래픽 증가를 중지하고 동시성을 줄이며 지원되는 경우 다른 리전 또는 리전 간 추론을 고려합니다.
- HTTP 529(
overloaded_error) -
일부 모델 APIs 수요가 많거나 서비스 용량이 부족하여 모델이 일시적으로 요청을 처리할 수 없는 경우 529를 반환합니다. 임시 용량 오류로 처리합니다. 응답에
Retry-After헤더가 포함된 경우 재시도하기 전에 해당 기간 이상 기다린 다음 클라이언트가 동시에 재시도하지 않도록 지터를 추가합니다.
API별 원인 및 해결 단계는 섹션을 참조하세요Amazon Bedrock API 오류 코드 문제 해결.
권장 오류 처리
일시적 오류
일시적인 제한 및 용량 오류와 같이 재시도하기에 안전한 오류만 재시도합니다. 서비스가 Retry-After 헤더를 반환하는 경우 이를 준수합니다. 그렇지 않으면 무작위 지터를 사용하여 지수 백오프를 구현합니다.
짧은 지연으로 시작합니다(예: 1초).
각 재시도 후 지연 시간을 늘리고 애플리케이션의 지연 시간 예산에 맞게 최대 지연 시간을 제한합니다.
무작위 지터를 추가하고 작업자 간에 동기화된 재시도를 방지합니다.
애플리케이션의 지연 시간 목표에 맞는 제한된 재시도 예산을 사용합니다. 예를 들어 작업을 총 6회 시도, 즉 초기 요청과 최대 5회 재시도로 제한합니다.
AWS SDKs 및 인기 있는 HTTP 라이브러리는이 패턴에 대한 기본 지원을 제공합니다. 재시도 설정 이름은 다릅니다. botocore의 에는 초기 요청이 total_max_attempts 포함되는 반면 OpenAI 및 Anthropic SDKs의는 재시도만 max_retries 계산합니다. 따라서 다음 예제에서는 서로 다른 숫자 값을 사용하여 동일한 예제 6시도 예산을 제공합니다.
예에 대한 재시도 구성bedrock-runtime(AWS SDK/boto3)
import boto3 from botocore.config import Config config = Config(retries={"total_max_attempts": 6, "mode": "standard"}) client = boto3.client("bedrock-runtime", config=config)
예에 대한 재시도 구성bedrock-mantle(OpenAI SDK)
from openai import OpenAI client = OpenAI( api_key=api_key, base_url=f"https://bedrock-mantle.{region}.api.aws/v1", max_retries=5, )
예에 대한 재시도 구성bedrock-mantle(Anthropic SDK)
import anthropic client = anthropic.Anthropic( api_key=api_key, base_url=f"https://bedrock-mantle.{region}.api.aws/anthropic", max_retries=5, )
모델 및 작업의 문서화된 최대 추론 기간에 따라 재시도와 별도로 연결 및 읽기 제한 시간을 구성합니다. 제한 시간이 유효한 장기 실행 추론 요청보다 짧으면 재시도 및 중복 작업이 방지될 수 있습니다.
지속적인 용량 오류
영구 503 또는 529 오류가 발생하면 재시도만으로 로드가 증폭될 수 있습니다. 서비스에 일시적인 용량 제약이 발생하거나 워크로드가 모델 및 리전에 현재 사용 가능한 용량을 초과할 수 있습니다. 다음 단계를 따릅니다.
램프를 중지하고 마지막으로 안정적인 요청 속도 및 동시성 수준으로 돌아갑니다.
제한된 클라이언트 측 동시성, 속도 제한 및 요청 대기열을 사용합니다.
용량이 복구될 때까지 우선 순위가 낮은 요청을 연기하거나 삭제합니다.
의 경우 모델이 지원하는 경우 교차 리전 추론을
bedrock-runtime사용합니다. 예측 가능하고 지속적인 워크로드를 위해 프로비저닝된 처리량을 평가합니다.문제가 계속되면 AWS 상태 대시보드를 확인하고 요청 IDs 및 UTC 타임스탬프를 사용하여 AWS Support에 문의하세요.
처리량 증가
온디맨드 용량은 모델, 리전 및 시간에 따라 다를 수 있습니다. 할당량 내의 모든 요청이 수요가 많은 기간 동안 성공할 수 있는 것은 아니므로 워크로드를 시작하거나 모델 또는 리전을 변경하거나 트래픽이 크게 증가할 때 점진적으로 증가합니다. 이는 게시된 계정당 할당량이 없는 bedrock-mantle 모델에서 특히 중요합니다.
권장 램프 업 절차
각 엔드포인트, 모델 및 리전의 대상 토큰 속도 및 동시성을 추정합니다. 의 경우 입력 토큰과 출력 토큰을 별도로
bedrock-mantle추적하고 요청된max_tokens값을 입력 토큰 승인 추정치에 포함합니다.대상 아래의 알려진 안정적인 기준에서 시작합니다. 기준이 없는 경우 전체 대상 볼륨을 보내는 대신 작은 대표 로드로 시작합니다.
각 레벨을 충분히 길게 유지하여 요청 성공, 429/503/529 오류, 지연 시간 백분위수, 토큰 소비, 동시성 및 대기열 깊이를 관찰합니다.
한 번에 하나의 제어된 단계를 늘립니다. 회귀의 원인을 식별할 수 있도록 한 번에 하나의 주요 로드 차원만 변경합니다.
제한, 용량 오류 또는 지연 시간이 임계값을 초과하면 램프를 일시 중지하고
Retry-After헤더를 적용한 다음 마지막으로 안정적인 수준으로 돌아갑니다.대상에 도달할 때까지 계속하고 프로덕션 트래픽을 수신할 모든 모델 및 리전에 대해 검증을 반복합니다.
워크로드의 지연 시간 및 트래픽 패턴에서 단계 크기와 관찰 기간을 선택합니다. RPM을 유일한 제어 신호로 사용하지 마십시오. 요청 토큰 크기와 응답 길이는 RPM이 일정하게 유지되는 경우에도 용량 소비를 크게 변경할 수 있습니다.
할당bedrock-mantle량 증가의 경우를 따릅니다할당량 증가 요청. 의 경우 bedrock-runtime를 따릅니다할당량 증가 요청.
추가 모범 사례
기능 플래그를 사용하면 모든 트래픽을 한 번에 전환하는 대신 모델 간에 트래픽을 점진적으로 전환할 수 있습니다.
대규모 워크로드를 몇 분으로 분산하고 사용량이 가장 많은 기간을 피하기 위해 time-of-day 패턴을 고려합니다.
입력 크기, 출력 크기, 지연 시간 및 동시성의 대표적인 분포를 사용하여 테스트합니다. 테스트 요청의 갑작스러운 버스트를 보내지 마세요.
토큰 인식 클라이언트 측 속도 제한, 제한된 동시성 및 제한된 대기열을 사용합니다. RPM 전용 제한기는 요청 크기의 변경으로부터 보호하지 않습니다.
비동기식 대량 오프라인 작업의 경우에서 배치 추론을 사용합니다
bedrock-runtime.가변 지연 시간을 허용할 수 있는 지원되는 모델 및 non-time-sensitive 요청의 경우 Flex 서비스 계층을 고려하세요.
리전 가용성 및 리전 간 추론
온디맨드 용량은 리전별로 다르며 리전마다 다를 수 있습니다. 워크로드가 단일 리전을 대상으로 하는 경우 수요가 많은 기간 동안 용량 오류가 발생할 수 있습니다. 에서는 모델 및 데이터 레지던시 요구 사항이 지원할 글로벌 리전 간 추론 때를 bedrock-runtime사용합니다. 자체 리전 장애 조치를 구현하는 경우 모든 대상 리전에서 모델 가용성을 확인하고 제한된 재시도를 적용하여 장애 조치로 인해 트래픽 급증이 발생하지 않도록 합니다.
도움말 가져오기
-
처리량 계획 - 각 모델 및 리전에 대한 최대 입력 및 출력 토큰, 응답 지연 시간, 동시성 및 대기열 허용 오차를 추정합니다. 워크로드별 헤드룸을 포함하고 대규모 또는 비즈니스 크리티컬 출시를 위해 AWS 계정 팀에 문의하세요.
-
성능 최적화 - 지원되는 경우 프롬프트 크기, 생성된 토큰, ,
max_tokens지연 시간 백분위수 및 캐시 사용량을 모니터링합니다. 불필요한 토큰을 예약하거나 사용하지 않도록 프롬프트 및 출력 제한을 최적화합니다. -
지원 에스컬레이션 - AWS 지원 사례를 열 때 엔드포인트, 리전, 모델 또는 추론 프로파일 ID, HTTP 상태 및 API 오류 유형, 요청 IDs, UTC 타임스탬프, 토큰 속도, 요청 속도, 동시성 및 조정 타임라인을 포함합니다.
권장 사항 요약
| 시나리오 | 권장 사항 |
|---|---|
| 일반 워크로드 | bedrock-runtime 단원에서 시작합니다. 필요한 기능 또는 모델에 bedrock-mantle 사용합니다. Amazon Bedrock에서 지원하는 엔드포인트을(를) 참조하세요. |
| 일시적 429, 503 또는 529 오류 | API 오류 유형을 검사합니다. 재시도 가능한 오류의 경우 제한된 재시도 예산 내에서 지수 백오프 및 지터를 적용Retry-After하고 재시도합니다. |
| 지속적인 용량 오류 | 램핑을 중지하고, 마지막으로 안정적인 수준으로 돌아가고, 동시성과 대기열을 바인딩하고, 우선 순위가 낮은 작업을 연기하고, 지원되는 경우 리전 간 추론을 사용합니다. |
| 할당량 계획 | 에 대해 별도의 입력 및 출력 TPM을 사용합니다bedrock-mantle. 에 해당하는 경우 결합된 토큰 할당량, 토큰 연소 및 RPM을 사용합니다bedrock-runtime. |
| 대규모 오프라인 처리 | 비동기 작업에 배치 추론을 사용합니다. 가변 지연 시간을 허용할 수 있는 지원되고 non-time-sensitive 않은 요청에 Flex 서비스 티어를 사용합니다. |