본문 바로가기
C.W.K.
Stream
Lesson 04 of 06 · published

비용-품질 절충 분석

~18 min · safety, cost, tradeoff, routing

Level 0추측자
0 XP0/55 lessons0/10 achievements
0/150 XP to next level150 XP to go0% complete

파레토 전선 그리기

모든 LLM 시스템은 비용과 품질의 상충 곡선 위에 있어. 평가는 현재 시스템이 곡선의 어느 지점에 있는지, 또 어디까지 이동할 수 있는지 알려줘.

파레토 전선 분석

  1. 대표적인 평가 모음을 골라.
  2. 같은 평가를 여러 모델, 프롬프트, 설정에서 실행하고 품질(평가 통과율)과 비용(1,000회 호출당 달러 비용)을 모두 기록해.
  3. 품질 대비 비용 그래프를 그려. 각 모델과 설정의 조합이 하나의 점이야.
  4. "파레토 전선"은 비용을 늘리지 않고는 품질을 높일 수 없는 설정들의 집합이야. 전선 밖의 점은 다른 설정에 지배돼. 두 축 모두에서 더 나쁜 점이라는 뜻이야.

도표가 보통 보여주는 것

대부분의 제품 과제에서는 곡선 하단이 가파르고 상단은 평평해. 저렴한 모델은 거의 작동하지 않다가 비용을 조금만 늘려도 품질이 크게 뛰지만, 최첨단 모델은 미미한 품질 향상을 위해 10배나 더 비쌀 수 있어. 곡선에서 적절한 지점은 제품의 품질 기준을 충족하는 설정 가운데 비용이 가장 낮은 곳이야.

원칙: 항상 모델·프롬프트·설정 조합을 모두 평가하는 비용-품질 비교 실험을 실행해. 두 축 모두에서 더 나쁜 열등한 설정은 그래프로 그려 본 뒤에야 드러나는 경우가 많아.

고급 시스템의 모델 라우팅

모든 요청에 하나의 모델만 사용하지 마. 쉬운 질의는 저렴한 모델로 보내고, 가장 어려운 질의는 비싼 모델로 보내. 질의 길이·주제·분류기 점수를 활용한 간단한 분기 규칙과 품질 분류기를 조합하면 품질을 유지하면서 추론 비용을 3~10배 줄일 수 있어. RouteLLM, Martian, OpenAI Routing API가 대표적인 도구야.

Code

파레토 전선 조합 실험·python
MODELS = [
    {"name": "haiku-4.5",      "cost_per_1k": 0.25, "quality": None},
    {"name": "gpt-5-mini",     "cost_per_1k": 0.15, "quality": None},
    {"name": "sonnet-4.6",     "cost_per_1k": 3.00, "quality": None},
    {"name": "opus-4.7",       "cost_per_1k": 15.00,"quality": None},
    {"name": "gpt-5",          "cost_per_1k": 5.00, "quality": None},
]

for m in MODELS:
    pass_rate = run_eval_suite(model=m["name"], dataset=DATASET)
    m["quality"] = pass_rate

# Sort by cost; for each successive point, check if quality > best so far.
# Points where quality ≤ a cheaper one are dominated — drop them.
frontier = []
best_q = -1.0
for m in sorted(MODELS, key=lambda x: x["cost_per_1k"]):
    if m["quality"] > best_q:
        frontier.append(m)
        best_q = m["quality"]
print("Pareto frontier:", frontier)
간단한 분기기 — 쉬운 질의는 저렴한 모델로, 어려운 질의는 비싼 모델로·python
def difficulty_classifier(query: str) -> str:
    if len(query) < 30 and "why" not in query.lower():
        return "easy"
    if any(k in query.lower() for k in ("explain", "compare", "analyze", "why")):
        return "hard"
    return "medium"

def route(query):
    diff = difficulty_classifier(query)
    return {
        "easy":   "haiku-4.5",
        "medium": "sonnet-4.6",
        "hard":   "opus-4.7",
    }[diff]

# Validate: run eval with the routed setup. Quality should approximate
# always-using-opus while cost approximates always-using-haiku for the
# easy share of traffic.

External links

Exercise

같은 평가를 서로 다른 세 가격대의 모델에서 실행해. 품질 대비 비용 그래프를 그리고 열등한 설정을 찾아. 현재 설정이 다른 설정에 지배된다면 더 저렴하면서 품질도 더 나은 선택지를 두고 나쁜 품질에 더 많은 돈을 쓰고 있는 셈이야. 모델 분기 설정도 구성한 뒤 다시 측정해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.