본문으로 건너뛰기
r/LLMDevs조회 1

좁은 반복 업무에서 4B와 72B의 성능 격차

QLoRA를 적용한 4B 모델이 합성 반복 업무에서 72B 교사 출력과 90% 이상 일치했지만, 모호한 라벨과 교사 불일치가 한계를 만들었다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

작성자는 합성 데이터로 고정한 Support-ticket classification과 Invoice field extraction에서 Qwen2.5-72B-Instruct의 출력을 교사 신호로 삼고 Qwen3-4B-Instruct-2507을 QLoRA로 학습했다. 4B 모델은 ticket exact-label agreement를 72.4%에서 90.8%로, invoice field-level agreement를 82.9%에서 93.5%로 높였고, 모든 invoice 필드가 맞은 행도 1.2%에서 62.5%로 늘었다. 개선의 핵심은 입력에 없는 subtotal·currency·quantity를 지어내지 않는 null 규칙 습득이었지만, complaint처럼 의미가 겹치는 라벨과 교사 자체의 출력 불일치는 성능 상한으로 남았다. 실제 고객 로그와 stronger prompting baseline이 빠졌으므로, 이 결과는 4B가 72B를 일반적으로 대체한다는 뜻이 아니라 좁은 반복 업무에서 비용 효율적인 교사 행동 재현이 가능하다는 뜻이다.

커뮤니티 반응

작성자 본인의 실험과 실패 사례가 중심이며, 댓글에 기반한 별도 커뮤니티 반응은 제공되지 않았다.

주요 논점

01찬성다수

좁고 반복적인 classification·extraction 업무에서는 4B 모델도 QLoRA로 교사 모델 출력과 90% 이상 일치할 수 있다. 특히 invoice의 모든 필드 정답 행이 1.2%에서 62.5%로 증가해 작은 모델의 실무적 비용 절감 가능성을 뒷받침한다.

02중립다수

측정값은 실제 고객 로그가 아니라 합성 입력과 Qwen2.5-72B-Instruct의 자체 출력 재현율이므로, 4B가 72B를 일반적으로 대체한다고 해석할 수 없다. 최적화 prompt·few-shot·8B·rank sweep과 실제 traffic 평가도 빠져 있다.

03반대다수

교사 출력이 모순되거나 taxonomy가 겹치면 Fine-tuning만으로 agreement ceiling을 넘기 어렵다. complaint 라벨의 의미 중첩과 unit_price·amount 처리의 교사 불일치가 학생 성능보다 데이터와 라벨 설계가 더 큰 병목임을 보여준다.

합의점 vs 논쟁점

합의점

  • Holdout은 학습 전에 분리하고 평가 과정에서 확인하지 않아야 성능 수치가 의미를 가진다. 이 실험은 seeded split으로 train·validation·holdout을 나누고 같은 holdout에서 baseline과 tuned model을 비교했다. 다만 표본이 ticket 76건과 invoice 80건으로 작아 단일 숫자 차이를 과도하게 해석하지 않아야 한다.
  • Aggregate metric만으로는 오류 원인을 구분하기 어렵다. 작성자는 confusion matrix와 실제 disagreement rows를 함께 확인해 complaint의 taxonomy 중첩, null 규칙 위반, 교사 출력 불일치를 분리했다. 세 문제는 각각 라벨 재설계, prompt 규칙 정비, 교사 일관성 개선이라는 다른 처방을 요구한다.
  • 교사 모델의 자기 일관성이 학생 모델의 증류 성능을 제한한다. 같은 prompt를 사용해도 Naan Bread의 가격 필드를 서로 다른 방식으로 처리하면 학생은 안정적인 규칙을 학습할 수 없다. 따라서 Fine-tuning epoch를 늘리기 전에 교사 출력과 null convention을 먼저 정리해야 한다.

논쟁점

  • Invoice의 93.5% field-level agreement와 62.5% row-exact 비율 가운데 어떤 지표가 실무 품질을 더 잘 나타내는지는 업무의 오류 허용도에 따라 달라진다. 약 20개 필드 중 하나만 틀려도 행 전체를 실패로 처리하는 row-exact는 엄격하지만, 일부 필드만 필요한 파이프라인에서는 field-level 수치가 더 직접적일 수 있다. 원문은 두 지표를 함께 제시했지만 특정 업무에 어느 하나를 우선하라고 결론내리지는 않았다.
  • 4B가 72B급 모델에 충분히 가까워졌다는 해석에는 실제 고객 로그와 강한 prompting baseline이 없다는 한계가 있다. 합성 입력은 작성자가 생각해 낸 방식으로만 messy하기 때문에 실제 traffic의 예외와 분포 이동을 포착하지 못할 수 있다. 따라서 현재 수치는 고정된 합성 분포에서 교사 행동을 재현한 결과이지 frontier API 대체 성능이 아니다.

실용적 조언

  • 학습 전에 holdout을 분리하고 seed와 split을 고정해야 한다. Baseline과 Fine-tuned model은 같은 holdout, system prompt, decoding settings에서 비교해야 prompt나 데이터 차이가 성능 차이로 섞이지 않는다. 평가셋을 반복해서 들여다보며 학습 데이터를 수정하면 수치의 정직성이 약해진다.
  • 최악의 disagreement rows를 직접 읽고 오류 유형을 분류해야 한다. 분류 업무에서는 혼동 행렬과 실제 문장을 함께 확인해 라벨 겹침과 학생 오류를 구분하고, 추출 업무에서는 null·추론·필드 매핑 규칙을 따로 검사해야 한다. 오류가 어디에 몰리는지 알아야 taxonomy 수정, prompt 수정, 모델 학습 중 올바른 대응을 선택할 수 있다.
  • Teacher 출력을 학습 데이터로 쓰기 전에 동일한 입력을 반복해 자기 일관성을 확인해야 한다. 교사가 같은 문서 형식에서 unit_price와 amount를 번갈아 선택하면 학생에게 더 많은 epoch를 적용해도 기준 자체가 흔들린다. null convention을 명확히 적고 모순된 교사 행을 정제하는 편이 추가 학습보다 효과적일 수 있다.
  • 저신뢰 결과를 큰 모델로 보내는 routing을 함께 설계할 수 있다. invalid JSON이나 사전에 없는 라벨처럼 기계적으로 감지할 수 있는 실패를 먼저 걸러낸 뒤 Qwen2.5-72B-Instruct 같은 큰 모델에 재요청하면 모든 입력을 72B로 처리하지 않아도 된다. 다만 원문에서는 이 routing을 구현했을 뿐 성능과 비용 절감 수치를 아직 제대로 측정하지 않았다.

섹션별 상세

작성자는 좁고 반복적인 두 업무에서 Qwen3-4B-Instruct-2507이 Qwen2.5-72B-Instruct의 출력을 얼마나 재현하는지 측정하기 위해 평가셋을 먼저 고정했다. Support-ticket classification은 6개 라벨과 오탈자·대문자·복합 이슈를 포함했고, Invoice field extraction은 중첩 JSON과 OCR 오류·전달 이메일 형식을 포함했다. 두 작업 모두 합성 데이터 약 800건을 80/10/10으로 나눴으며, holdout은 학습 전에 분리해 끝까지 건드리지 않았다.
Zero-shot 4B는 Fine-tuning 뒤 ticket의 exact-label agreement가 72.4%에서 90.8%로, invoice의 field-level agreement가 82.9%에서 93.5%로 올랐다. Invoice에서 모든 필드가 맞은 행은 1.2%에서 62.5%로 증가했고 valid JSON 비율은 두 방식 모두 100%였다. 다만 holdout이 ticket 76건과 invoice 80건뿐이므로 한 자릿수 퍼센트 차이는 잡음으로 봐야 하며, Zero-shot 비교도 최적화 prompt나 few-shot이 아닌 순진한 prompt 기준이다.
Invoice 개선의 핵심은 새로운 필드를 더 잘 읽은 데 있지 않고, 입력에 없는 값을 임의로 채우지 않는 규칙을 익힌 데 있었다. Zero-shot 모델은 subtotal이 없을 때도 line item을 합산하거나 discount를 무시해 295를 만들고, 달러 기호만 보고 currency를 USD로 추정하며, 수량이 없는 line item에 quantity 1을 넣었다. Fine-tuning은 이런 schema null convention을 교정했지만, Naan Bread 사례처럼 교사 자체가 unit_price와 amount를 오가는 경우에는 학생도 일관된 규칙을 배울 수 없었다.
Ticket의 남은 오류는 학생의 무능보다 교사 라벨과 taxonomy의 모호성에 가까웠다. 학습 모델은 complaint에서 recall 0.56을 기록했고, 7건의 오답 가운데 5건이 complaint와 다른 범주 사이에서 발생했으며, 웹사이트 장애와 결제 불만이 함께 있는 문장처럼 합리적인 해석이 여러 개였다. 같은 split으로 다시 학습해도 90.8%에 도달했지만 오류 분포는 달라졌고, 모호한 행 대부분은 반복해서 틀려 catch-all 범주가 agreement ceiling을 만든다는 점이 드러났다.
작성자는 QLoRA를 rank 16, alpha 32, 2~3 epochs, learning rate 2e-4, 4-bit NF4 기본 모델과 peft·trl 조합으로 실행했다. 학습은 임대한 4090에서 수 분이 걸렸고 run당 비용은 2달러보다 낮았으며, adapter 크기는 약 50MB였다. 72B급 hosted API가 토큰 백만 개당 약 5~15달러인 반면 4B shared infrastructure는 그보다 수십 배 낮을 수 있어, 고빈도 반복 호출에는 저비용 모델을 우선 배치하고 invalid JSON이나 사전에 없는 라벨을 큰 모델로 보내는 routing이 실용적인 후속 단계로 제시됐다.

용어 해설

QLoRA
QLoRA는 4비트로 양자화한 기본 모델은 고정하고, 저순위 어댑터만 학습하는 Fine-tuning 방식이다. 이 글에서는 Qwen3-4B-Instruct-2507에 rank 16 어댑터를 붙여 4090에서 수 분 안에 반복 업무 데이터를 학습했다.
교사-학생 증류(Teacher–Student Distillation)
큰 교사 모델의 출력을 정답처럼 사용해 작은 학생 모델이 동일한 입력-출력 행동을 재현하도록 학습하는 방식이다. 이 글의 평가는 4B 학생이 Qwen2.5-72B-Instruct의 출력을 얼마나 일치시키는지 측정했으며, 교사의 불일치도 학생 성능 상한을 낮췄다.
스키마 null 규칙(Schema Null Convention)
구조화된 JSON 추출에서 입력에 값이 없을 때 null을 넣을지, 다른 필드에서 값을 추론할지 정하는 규칙이다. 이 글에서는 Zero-shot 모델이 subtotal·currency·quantity를 임의로 채웠지만, Fine-tuning 뒤에는 값이 없을 때 답하지 않는 행동이 크게 늘었다.
혼동 행렬(Confusion Matrix)
분류기의 실제 클래스와 예측 클래스를 교차 집계해 어떤 범주끼리 혼동되는지 나타내는 표다. 이 글에서는 complaint가 다른 범주와 겹치면서 7건의 오답 중 5건에 관여했고, 단순 정확도만으로는 드러나지 않는 taxonomy 문제를 드러냈다.
필드 단위 일치율(Field-level Agreement)
중첩된 JSON을 평탄화한 뒤 각 경로의 값이 교사 출력과 일치하는 비율이다. 이 글에서는 invoice의 필드 일치율이 82.9%에서 93.5%로 올랐지만, 모든 필드가 맞은 행의 비율은 1.2%에서 62.5%로 더 크게 변했다.

언급된 도구

peft중립

QLoRA 어댑터 학습에 사용하는 라이브러리

trl중립

Fine-tuning 실행에 사용하는 라이브러리

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 22.수집 2026. 08. 22.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.