피드로 돌아가기
Dev.toAI/ML
원문 읽기
LLM Provider별 Token 집계 메커니즘 파편화 해결을 통한 비용 정밀 측정
Tracking token usage across OpenAI, Anthropic, and Gemini: every streaming gotcha I hit
AI 요약
Context
OpenAI, Anthropic, Gemini 등 서로 다른 LLM Provider의 Token Usage 보고 방식 차이로 인한 비용 추적 부정확성 발생. 특히 Streaming 응답 시 Usage 데이터의 위치와 Cache 계산 방식이 상이하여 단순 추상화 모델 적용 시 심각한 과금 데이터 왜곡 가능성 존재.
Technical Solution
- Provider별 독립 Parser 우선 구현 후 공통 인터페이스로 통합하는 Bottom-up 추상화 전략 채택
- OpenAI의 Final Chunk 내
include_usage플래그 기반 Usage 추출 로직 구현 - Anthropic의
message_start및message_delta이벤트 분산 데이터를 결합하는 Stitching 프로세스 설계 - Cache Token의 포함 여부가 상이한 Provider별 계산식(OpenAI: Subset / Anthropic: Separate)을 정규화하여 Total Input Token 산출
- Gemini의 SSE 및 JSON Array 듀얼 스트림 포맷 대응을 위한 Fallback 파싱 체인 구축
- 요청 값 대신 응답에 포함된 실제 Serving Tier를 기준으로 과금 데이터를 확정하는 신뢰 모델 적용
실천 포인트
- Streaming API 사용 시 Provider별 Usage 데이터의 전송 시점과 위치를 우선 확인하십시오. - Prompt Caching 적용 시 Input Token에 Cache가 포함된 수치인지, 별도 합산이 필요한 수치인지 검증하십시오. - LLM 통합 인터페이스 설계 시 조기 추상화(Early Abstraction)를 지양하고 Provider별 전용 Parser를 먼저 구현하십시오. - 비용 관련 수치는 Type Error가 발생하지 않으므로, 실제 빌링 데이터와 대조하는 정량적 검증 테스트를 반드시 포함하십시오.