비싼 모델로 먼저 검증하고, 싼 모델로 내려간다: 스킬 함대의 모델 비용을 코드 게이트로 깎는 법
문제는 모델이 아니라 배정입니다
LLM으로 업무를 자동화하다 보면 같은 딜레마를 반복해서 만납니다. 가장 똑똑한 모델은 정확성 면에서 안전한 기본값이지만, 작은 형제 모델보다 다섯 배에서 스무 배까지 비쌉니다. 그런데 자동화한 작업 대부분은 그 정도 능력이 필요하지 않습니다.
한 사람이 운영하는 자동화 함대를 예로 들겠습니다. 밤마다 도는 연구 논문 작성기, 매일 아침의 스탠드업 다이제스트, 세일즈 CRM 브리핑, 시장 모니터, 블로그 개선기, 배포 파이프라인이 각각 하나의 스킬로 묶여 돌아갑니다. 스킬이 늘어날수록 월 모델 청구서도 함께 커지는데, 그 청구서를 지배하는 것은 가장 비싼 티어에 고정된 소수의 워크플로입니다.
가장 순진한 해법은 전부 프런티어 모델로 돌리는 것입니다. 우리 함대가 처음 그랬고, 확장되지 않았습니다. 세일즈 워크플로 하나가 오케스트레이션과 콘텐츠 작성을 모두 프런티어 티어로 돌리는 바람에 한때 월 모델 지출의 약 94%를 혼자 잡아먹은 적도 있습니다. 반대로 전부 가장 싼 모델로 돌리면, 능력이 정말 필요한 출력물이 조용히 나빠집니다. 그 열화는 몇 주 뒤 사람이 알아챌 때까지 보이지 않습니다.
진짜 질문은 작업마다 다르고, 감이 아니라 측정으로만 답할 수 있습니다. 이 스킬은, 이 프롬프트와 이 스캐폴딩 아래에서, 프런티어 모델 출력과 의미 있게 나빠지지 않는 가장 싼 티어가 어디인가. 이 질문을 직관으로 답하면 틀리고, 한 번만 답하면 부족합니다. 프롬프트도 스킬도 모델도 계속 바뀌기 때문입니다.
우리가 함대에서 쓰는 방법을 소개합니다. 이름은 VETD, Validate-Expensive-Then-Descend입니다. 비싼 모델로 먼저 검증하고, 그다음 코드가 통과시키는 만큼만 싼 티어로 내려갑니다.
네 가지 약속
VETD의 핵심 약속은 넷입니다.
첫째, 비싼 것으로 먼저 검증합니다. 프런티어 티어의 출력이 품질 기준선입니다. 싼 티어가 충분하다고 가정하지 않고, 최선의 출력과의 격차를 실제로 잽니다.
둘째, 코드가 소유한 게이트 아래에서만 내려갑니다. 더 싼 티어를 받아들일지는 명시적 루브릭을 적용하는 결정론 코드가 정합니다. 모델이 “괜찮아 보인다”고 주장하는 것으로는 절대 정하지 않습니다. 모델은 콘텐츠를 만들고 차원별 점수를 매기는 데만 쓰고, 합격과 불합격의 산술은 전부 코드가 가집니다.
셋째, 가능한 곳에서는 티어가 아니라 코드로 품질을 붙잡습니다. 많은 스킬이 강등 후에도 품질을 유지하는 이유는, 형식과 개수와 검증을 결정론 후처리기가 소유하기 때문입니다. 강등이 안전한 자리에서는 대개 모델이 아니라 그 가드레일이 일을 하고 있습니다.
넷째, 내릴 수 없는 능력은 라우팅하되 흉내 내지 않습니다. 게이트가 능력 격차 때문에 강등을 거부하면, 그 스킬은 비싼 티어에 고정합니다. 증거가 아니라고 말하는데도 싼 모델이 충분한 척하지 않습니다.
루프의 생김새
전체 흐름은 다섯 단계입니다.

먼저 최적화 단위인 스킬 함대가 있습니다. 스킬 하나는 프롬프트 계약, 스크립트와 템플릿, 스케줄 러너를 담은 디렉터리입니다. 중앙 정책 레지스트리가 스킬별로 현재 티어, 고정 여부, 연속 실패 횟수, 그리고 그 티어를 쓰는 이유를 사람이 읽을 수 있게 기록합니다.
다음으로 티어 스윕이 있습니다. 대상 스킬과 고정된 입력 픽스처를 받아, 헤드리스로 티어마다 한 번씩 돌려 출력을 모읍니다. 프런티어 출력이 기준선이 됩니다.
그다음은 판정입니다. 프런티어 모델로 도는 심판이 각 티어의 출력을 루브릭 차원별로 1점에서 5점으로 매기고, 가장 싼 후보에 대해 구조화된 격차 객체를 냅니다. 종합 격차인 headline_gap, 프롬프트 편집으로 회복 가능한 fixable 격차, 싼 티어가 구조적으로 부족한 reasoning 격차로 나뉩니다. 중요한 점은 심판이 이 라벨과 점수만 낸다는 것입니다. 강등 여부는 심판이 정하지 않습니다.
마지막은 결정론 게이트입니다. 코드가 세 조건을 모두 만족할 때만 강등을 승인합니다. headline_gap이 임계값 이하이고, reasoning 격차가 0이며, fixable 격차가 0일 때입니다. 결과는 세 갈래입니다. 셋 다 만족하면 강등하고, headline_gap은 괜찮지만 fixable 격차가 있으면 스킬을 고친 뒤 다시 재고, reasoning 격차가 있거나 headline_gap이 임계값을 넘으면 보류하거나 고정합니다.
왜 강등해도 품질이 살아남는가
강등이 안전하려면 싼 티어의 콘텐츠가 충분해야 하고, 형식은 다른 데서 붙잡아야 합니다. 우리 함대의 대표 강등 사례가 정확히 이 원리로 살아남았습니다. 타임라인 다이제스트를 매일 다섯 번 올리는 스킬이었는데, 프런티어 티어에 고정돼 쿼터를 크게 잡아먹었습니다.
강등 전에 리팩터를 먼저 했습니다. 항목별 워커가 이제 콘텐츠만 뱉고, 결정론 검증기가 품질 게이트를 코드로 계산합니다. 본문 최소 길이, 출처 최소 개수, 웹검색 근거 개수, AI 글투 게이트를 코드가 재고, 통과 못 한 항목은 다시 배정합니다. 헤더와 형식과 중복 제거는 별도 포스터가 소유합니다. 형식을 코드가 가진 뒤에야 이 스킬을 opus에서 sonnet으로 내렸습니다. 정책에 남긴 이유가 명확합니다. 품질은 모델 티어가 아니라 형식 결정론 가드레일이 보존한다는 것입니다.
함대는 어떻게 갈렸나

VETD를 적용한 뒤 16개 스킬 중 10개가 중간 티어에서 돕니다. 프런티어 티어에 남은 6개는 정확히 형식이 아니라 콘텐츠 자체가 산출물인 스킬입니다. 유머, 편집 판단, 연구 산문, 창의적 앵글이 그렇습니다. VETD가 드러내는 패턴이 여기 있습니다. 오케스트레이션과 형식 중심 작업은 내려가고, 줄일 수 없는 콘텐츠 품질 작업은 남습니다.
세일즈 CRM은 통째로 내리는 대신 갈랐습니다. 오케스트레이션을 담당하는 메인 지휘자는 중간 티어로 내리고, 고객과 거래를 마주하는 콘텐츠 작성은 프런티어 티어의 서브에이전트로 남겼습니다. 비용의 대부분인 조율은 내려가고, 값이 높은 얇은 산문 조각은 그대로입니다.
게이트가 “아니오”라고 말할 때
모든 스킬이 내려가는 것은 아닙니다. 오늘 밤 라이브로 두 스킬을 재봤습니다. 리포트 검증 스킬은 headline_gap 1.4에 reasoning 격차가 둘이었고, 스탠드업 다이제스트는 headline_gap 2.4에 사실 근거와 분석 깊이라는 reasoning 격차가 둘이었습니다. 둘 다 게이트 판정은 보류였고, 코드가 낸 권고는 “형식 격차부터 코드로 옮긴 뒤 다시 재라”였습니다.
앞서 한국어 AI 글투 제거 스킬은 headline_gap 2.0으로 임계값을 크게 넘었고, fixable 격차 셋과 reasoning 격차 하나를 함께 안고 있었습니다. 역시 보류였습니다. 이 경우 VETD의 올바른 출력은 강등이 아니라 작업 지시서입니다. fixable 격차 셋을 스킬 편집으로 닫고 다시 재라는 것입니다.
이 대목이 중요합니다. 언제나 강등만 하는 시스템은 고장 난 것입니다. 게이트는 “아니오”라고 말할 수 있어야 합니다. 비용을 깎으라는 압박을 받는 시스템은 강등 쪽으로 편향되기 쉬운데, 오늘 밤의 두 라이브 측정과 humanizer 보류가 바로 그 압박에 게이트가 버티는 모습입니다.
진짜로 아팠던 실패
교훈이 된 실패는 강등이 아니라 승격 쪽에서 나왔습니다. 7월 초 몇몇 스킬이 “나쁜 실행”이 반복됐다는 이유로 프런티어 티어로 자동 승격됐습니다. 그런데 그 나쁜 실행은 사실 주간 쿼터 소진이었지 품질 실패가 아니었습니다. 실행 자체는 제대로 끝났는데 로그에 한도 마커가 있어서 잘못 집계된 것입니다.
수정은 실패 분류기가 쿼터와 인증 소진을 중립으로 처리하도록 고치는 것이었습니다. 능력 실패가 아니니 연속 실패 횟수를 올리지 않게 했습니다. 교훈은 일반화됩니다. 승격과 강등을 몰아가는 신호는 능력 실패와 가용성 실패를 반드시 구분해야 합니다. 그러지 못하면 루프는 노이즈를 상대로 최적화합니다.
정직한 경계
이 방법에는 한계가 분명합니다.
픽스처가 있는 스킬만 잽니다. 그래서 실무에서 “회사 전체”는 곧 “픽스처가 있는 부분집합”이고, 픽스처를 추가하는 만큼 커집니다. 픽스처가 없는 스킬은 강등 절반이 아니라 실패에 반응하는 승격 절반만 적용받습니다. 정직하게 말하면 이것은 방법론이자 부분 배포이지, 모든 워크플로가 비용 최적화됐다는 증명이 아닙니다.
심판은 프런티어 티어로 돌기 때문에 측정이 공짜가 아닙니다. 그래서 프로덕션 호출마다가 아니라 스킬이나 모델이 바뀔 때만, 스킬별로 돌려 비용을 분산합니다. 픽스처 하나가 분포 전체를 대표하지도 않습니다. 오늘 내려도 되는 스킬이 픽스처가 담지 못한 입력에서 나빠질 수 있습니다.
프롬프트와 스킬과 모델 버전은 흐릅니다. 오늘 유효한 강등이 상위 모델 교체 뒤 무효가 될 수 있습니다. 레지스트리가 이유를 기록하고 승격 루프가 회귀를 잡지만, 한 번의 통과가 아니라 지속적인 재검증이 필요합니다.
한 문장으로
VETD는 모델 비용 절감을 모델링 문제가 아니라 측정과 게이팅 문제로 다룹니다. 비싼 티어로 먼저 검증하고, 비싼 모델을 일하는 데가 아니라 판정하는 데로 가두고, 합격 게이트와 가능한 곳의 출력 형식을 결정론 코드가 소유하게 하면, 한 사람이 16개 스킬 함대의 다수를 중간 티어로 내리면서도 진짜로 능력이 필요한 소수는 프런티어 티어에 남길 수 있습니다. 그리고 루프가 쿼터 장애를 품질 실패로 착각한 그 한 번도 잡아냈습니다.
옮겨 갈 수 있는 핵심은 한 문장으로 줄어듭니다. 가장 좋은 모델은, 그 모델이 더는 필요 없는 자리를 찾아내는 데 쓰십시오.
이 글의 방법과 수치는 ThakiCloud 자동화 함대의 실제 운영 기록입니다. 정리한 논문 초안은 PDF로 함께 공개합니다.