같은 에이전트에서 두 모델을 A/B 테스트하는 가장 깔끔한 방법은?
Cleanest way you've found to A/B two models in the same agent?
핵심 요약
에이전트 내에서 모델별 성능과 비용 효율을 비교하고, 최적의 라우팅 전략을 수립하는 방법을 논의함.
- 모델 A/B 테스트 — 에이전트 내에서 모델별 성능과 비용을 비교하는 효율적인 방법 모색
- 라우팅 전략 — 단순 작업은 저렴한 모델, 복잡한 추론은 고성능 모델로 분기하는 방식 검토
- 성과 측정 — 전체 성공률과 비용을 고려한 단계별(step-level) 평가 지표 설정
에이전트 하나 만들고 있는데 좀 막히는 부분이 있어서. GLM 5.2 같은 거대 모델이 작고 싼 모델보다 다단계 추론을 더 잘하는지, 아니면 굳이 비싼 돈 들일 필요 없이 작은 모델로도 충분한지 궁금하더라고.
이론상 테스트는 간단함. 에이전트랑 도구는 똑같이 두고 모델만 바꿔서, 어디서 지시사항을 씹거나 무한 루프를 도는지 비교해보는 거지. 근데 말은 쉽지, 막상 해보면 주변 환경 세팅하는 게 진짜 헬임. 제공업체가 다르면 SDK도 두 개, 인증 방식도 두 개, 응답 형태도 미묘하게 달라서 그거 맞추느라 정작 모델 테스트는 뒷전이고 내 테스트 환경 디버깅만 하고 앉아있게 됨.
그래서 두 모델 다 OpenAI 호환 엔드포인트 하나로 묶어버리니까 해결되더라. Featherless를 썼는데, 설정 파일에서 문자열 하나만 바꾸면 GLM 5.2에서 작은 모델로 바로 전환됨. 인증도, 요청 형태도 똑같으니까 에이전트 코드는 모델이 바뀐 줄도 모르지. 덕분에 시간도 아끼고 골치 아픈 일도 확 줄었음. 작은 모델이 단순한 단계에서는 생각보다 잘 버티는데, 추론이 2단계 이상 넘어가면 바로 맛이 가버리더라고. 대충 예상했던 결과가 나온 셈이지.
작은 모델은 웬만한 단계는 다 처리하는데, 더 깊은 추론이 필요한 어려운 구간에서만 뻗어버림. 그럼 난이도에 따라 라우팅을 할까? 쉬운 건 작은 모델로 보내고, 어려운 건 GLM 5.2로 보내는 식으로. 근데 그렇게 하면 라우팅 로직 짜야 하고 분류 호출도 추가되잖아. 아니면 그냥 다 큰 모델로 돌리고 비용을 감수할까? 만약 큰 모델이 성능은 10% 올리는데 비용은 30% 더 든다면, 라우팅 해봤자 헛수고니까 그냥 지금 작은 모델 쓰는 게 낫겠지. 어떻게 하는 게 좋을까? 그리고 한계 효용을 효과적으로 측정하려면 어떻게 해야 할까? 미리 고맙다!!
