구조화된 출력 오버헤드는 LLM 응답에서 내용이 아니라 형식이 차지하는 몫입니다.
모델이 스키마를 따르는 JSON을 반환하도록 요청받으면, 실제 값에 더해 모든 키
이름과 따옴표, 콜론, 쉼표, 중괄호를 함께 내보내야 합니다. 이러한 구조적 토큰은
다른 출력 토큰과 똑같이 생성되고 청구되므로, 짧은 값 몇 개를 담은 응답이 토큰의
큰 비율을 골격에 쓸 수 있습니다. 이 계산기는 그 고정 오버헤드와, 호출량에 걸쳐
발생하는 반복 비용을 분리해서 보여 줍니다.
오버헤드의 출처
반환되는 객체의 각 필드는 따옴표로 감싼 키, 키와 값을 나누는 콜론, 다음 필드
앞의 쉼표를 더합니다. shipping_status라는 필드는 값이 쓰이기도 전에 여러
조각으로 토큰화됩니다. 필드당 비용 외에도 모든 응답은 고정된 틀, 즉 객체의 여는
중괄호와 닫는 중괄호 및 제공업체가 주입하는 스키마 골격을 지니며, 뒤따르는 필드가
몇 개든 응답당 한 번만 집계됩니다. 이 틀과 필드당 구조는 값에 의존하지 않으므로,
오버헤드는 주어진 스키마에 대해 일정하고 호출 횟수에 따라 선형으로 늘어납니다.
공식
골격이 각 토큰인 개의 필드와 개의 래퍼 토큰이 있을 때, 호출당
오버헤드는 다음과 같습니다.
tcall=f⋅tf+tw
회 호출에 걸친 총 구조적 토큰 수와, 백만 토큰당 출력 단가 에서의 비용은
다음과 같습니다.
TC=tcall⋅n=106Tp
으로 나누는 것은 100만당 제시된 단가를 토큰당 요율로 변환합니다. 구조화된
출력은 모델이 생성하므로 오버헤드는 출력 단가로 청구되며, 이는 보통 공개된 두
단가 중 더 높은 쪽입니다.
계산 예시
필드 12개짜리 레코드를 반환하는 추출 작업을 생각해 봅니다. 각 필드의 골격이 약
9 토큰이고 객체 틀이 래퍼 토큰 5개를 더한다고 하면, 호출당 오버헤드는 다음과
같습니다.
tcall=12×9+5=113 tokens
100만 토큰당 출력 단가 $15에서 40,000회 호출에 걸쳐 실행하면 구조적 비용은
다음과 같습니다.
이 $67.80은 어떤 정보도 사지 않습니다. 추출된 값을 감싸는 중괄호와 키, 쉼표에만
지불됩니다. 이 정도 규모라면 키 이름을 줄이거나 쓰이지 않는 필드를 빼는 것이
곧바로 반복 절감으로 이어집니다.
참고 사항과 변형
필드당 수치는 평균입니다. 길고 설명적인 키 이름은 짧은 이름보다 비용이 더 들고,
중첩된 객체는 자체의 중간 중괄호와 키를 더합니다. 모델은 값 자체도 내보내지만 이
계산기는 그 부분을 제외하며, 스키마가 부과하는 구조적 하한만 측정합니다. 같은
작업을 더 간결한 표현으로 처리할 수 있다면 그 하한도 그만큼 낮아집니다.
활용
구조화된 출력 오버헤드는 청구서의 출력 측에 발생합니다. 이에 대응하는 입력 측,
즉 함수 호출 요청마다 함께 보내는 도구 정의는 함수 호출 토큰 오버헤드 계산기가
다룹니다. 이러한 오버헤드가 도출되는 기반인 호출당 토큰 사용량의 단가를 매기려면
토큰 비용 계산기를 참고하시기 바랍니다.
자주 묻는 질문 (FAQ)
구조화된 출력이란 무엇입니까?
구조화된 출력은 모델이 자유로운 산문 대신 고정된 형태로 데이터를 반환하도록 제약되는 방식으로, 대부분 제공된 스키마를 따르는 JSON입니다. 프로그램이 응답을 직접 파싱하는 경우, 예를 들어 문서에서 필드를 추출하거나 타입이 지정된 레코드를 반환할 때 사용됩니다.
이 구조는 응답을 소비하는 코드에는 편리하지만 그 자체가 토큰으로 이루어져 있습니다. 모든 키 이름, 따옴표, 콜론, 쉼표, 중괄호가 값과 함께 생성되고 청구됩니다.
스키마 오버헤드를 어떻게 줄일 수 있습니까?
키 이름이 짧을수록 토큰이 적게 들므로, 간결한 필드 이름은 모든 호출에서 필드당 수치를 낮춥니다. 후속 단계가 실제로 사용하는 필드만 반환하면 아무도 읽지 않는 데이터에 대한 비용을 피할 수 있습니다. 깊게 중첩된 객체를 평탄하게 만들면 중간의 중괄호와 키가 사라집니다. 오버헤드는 응답당 고정되므로, 구조가 내용에 맞먹을 만큼 커질 수 있는 대량의 소규모 페이로드 호출에서 가장 큰 영향을 미칩니다.
JSON 모드는 함수 호출과 비용이 같습니까?
둘 다 토큰 오버헤드를 부과하지만 그 위치가 다릅니다. JSON 또는 구조화된 출력 모드는 응답, 즉 모델이 작성해 돌려주는 객체에 토큰을 더합니다. 함수 호출은 여기에 더해 매 호출마다 도구 정의를 입력에 함께 보내므로, 그 오버헤드는 대부분 입력 측에 발생합니다. 함수 호출 오버헤드 계산기는 그 입력 측 비용을 다루고, 이 계산기는 반환된 객체의 출력 측 비용을 다룹니다.
면책조항
토큰 수치는 모델의 토크나이저, 정확한 키 이름, 스키마의 중첩 방식에 따라 달라지는 추정값입니다. 공개된 단가는 시간이 지나면서 변하며 캐싱이나 배치 할인을 제외할 수 있습니다. 청구를 위해 수치에 의존하기 전에 제공업체와 함께 현재 요율과 정확한 토큰 수를 확인하시기 바랍니다.