요새 LLM이 많이 나오고 있는데요.
Gemini, Claude, ChatGPT 등 다양한 LLM이 존재합니다.
그 중 저는 Claude Vision을 통해
Finetuning한 모델의 정확도를
evaluation하는 작업을 진행 중이었습니다.
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Number of request tokens has exceeded your daily rate limit (https://docs.anthropic.com/en/api/rate-limits); see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.",
},
}
테스트케이스는 총 50개가 준비되어 있었습니다.
테스트케이스 1개당
5개의 Clip 모델에서 topk 3개 제품 이미지를 뽑고,
LLM을 통해 해당 이미지들과 테스트 쿼리의 similarity를 구하는 방식입니다.
prompt를 심플하게 짜기도 했고,
이미지를 많이 넣는 것도 아니기에
evaluation이 원활하게 진행될 것이라 예상했습니다.
하지만 예상과는 달리,
5번째 테스트케이스가 진행되는 와중에
위에 코드처럼 rate limit error가 떴습니다.

tier 2를 사용하고 있어서
2,500,000 token을 사용했을리가 없다고 생각하고
중간중간에 time.sleep을 넣어줘도 마찬가지였습니다.
그래서 사용량을 자세히 확인해보니

진짜로 2,500,000을 넘게 사용했더군요.
그래서 당황하고 documentation을
좀 더 주의깊게 살펴보았습니다.

제가 사용하고 있던 이미지는 960*1280 px였고,
해당 로직으로 계산해보니 하나당 1600 tokens을 넘어갔습니다.
그러면 testcase 하나당
이미지를 15개를 8번씩 사용하여 score를 구하므로
1600 * 15 * 8 = 192,000 을 사용합니다.
Prompt까지 추가하면 testcase 하나당
200,000 tokens을 훌쩍 넘어갑니다.
그래서 저는 이미지 사이즈를 210 * 280으로 resize했고,
testcase 하나당 20,000 tokens를 사용하도록 수정했습니다.
API 사용료를 90% 절감한 것입니다.