본문 바로가기
원문
AWS Machine Learning Blog· Anshika Saxena·· 16일 전AI 점수56

Amazon Bedrock, 모든 Anthropic Claude 모델에서 구조화된 출력 지원

Structured outputs for Anthropic Claude models on Amazon Bedrock

AI 요약

Amazon Bedrock는 bedrock-runtime과 bedrock-mantle 두 엔드포인트에서 모든 Anthropic Claude 모델의 구조화된 출력을 지원하게 되었다. JSON 스키마를 따르는 응답을 받을 수 있어 별도의 파싱 처리나 재시도 처리가 필요 없어진다. JSON Schema 출력 형식과 strict tool use 두 가지 방식을 사용할 수 있으며, 일반 제공(GA) 중이다.

자세히

구조화 출력은 제약 기반 디코딩으로, 토큰 생성 단계에서 JSON 스키마를 강제한다. 스키마를 위반하는 토큰은 애초에 생성되지 않으므로 출력 형식이 확률적인 것에서 결정적인 것으로 바뀐다. 응답은 항상 유효한 JSON이며, 타입도 강제되고 필수 필드도 반드시 포함된다. 스키마로 정의한 필드만으로 출력이 좁혀지므로 출력 토큰 수가 줄어, 대량 처리에서는 추론 비용 절감도 기대할 수 있다. 배치 추론을 지원하며, bedrock-runtime에서는 교차 리전 추론도 추가 설정 없이 쓸 수 있다. 스트리밍에서는 타입이 지정된 이벤트로 받을 수 있다.

작동 방식은 JSON Schema Draft 2020-12의 하위 집합에 대한 스키마 검증, 새 스키마의 문법 아티팩트 컴파일, 24시간 캐시, 제약 기반 생성 순으로 진행된다. 새 스키마에서는 첫 요청이 다소 느려지지만, 같은 스키마라면 이후 오버헤드는 작다. 캐시는 계정 단위이며, 스키마 구조를 바꾸면 다시 컴파일된다. name이나 description만 바꾸면 캐시는 유지된다.

사용 방법은 두 가지다. InvokeModel API에서는 output_config.format에 스키마를 JSON 객체로 전달한다. 기사에서는 고객 이메일에서 리드 정보를 추출하는 예시와 고객지원 티켓의 분류 및 라우팅 예시를 제시한다. bedrock-mantle에서는 도구 정의에 strict: true를 지정하면 도구 입력이 스키마와 엄격히 일치한다. Mantle은 서버 측 도구, 백그라운드 추론, 상태를 유지하는 대화를 갖춘 에이전트용 기반으로, 웹 검색이나 코드 인터프리터를 사용하는 다단계 워크플로에 유용하다고 소개된다.

사용상 조건으로, 모든 객체에 additionalProperties: false를 지정하는 것이 필수다. 기사는 이 밖에도 설명적인 필드 이름, enum 활용, 단순한 스키마에서 점진적으로 확장하기, 스키마 재사용을 권장한다. 거부 응답과 max_tokens 도달의 경우 스키마를 준수하지 않는 응답이 나올 수 있으므로 stop reason 확인도 요구한다. 재귀 스키마, 외부 $ref, minimum이나 maxLength 같은 숫자·문자열 제약은 지원되지 않는다.

출처: AWS Machine Learning Blog · aws.amazon.com