On this page
Phase A→B 분류기 배포: 제로샷에서 파인튜닝까지
라벨링된 데이터 없이 첫날부터 동작하는 인텐트 분류기를 배포하고, 예시가 모이면 도메인 특화 모델로 졸업하는 방법을 알아보세요.
새로운 도메인용 인텐트 분류기를 구축할 때, 첫날에는 라벨링된 데이터가 없어요. 동작하는 분류기를 즉시 배포하면서 동시에 도메인 특화 모델을 향해 나아가려면 어떻게 해야 할까요? 답은 업계가 수렴한 2단계 배포 패턴이에요.
콜드 스타트 문제
사용자 쿼리를 인텐트 — SUMMARIZE, EXTRACT, REASON, SEARCH_ONLY — 로 분류해야 하는데 학습 데이터가 없어요. 카테고리당 500개 이상의 예시를 수집하고 라벨링하는 데 몇 주가 걸려요. 그동안 사용자는 지금 당장 이 기능이 필요해요.
이게 전형적인 ML 콜드 스타트예요: 사용자를 서빙하려면 모델이 필요하고, 모델을 학습시키려면 사용자 데이터가 필요해요. 2단계 접근법이 이 닭과 달걀 문제를 해결해요.
Phase A: BART-MNLI로 제로샷
BART-MNLI (~400MB)로 시작하세요. 학습 데이터가 필요 없는 제로샷 분류 모델이에요. 분류를 자연어 추론(NLI)으로 프레이밍해요: “이 텍스트가 ‘이것은 요약 요청이다’를 함의하는가?” 이 NLI 프레이밍은 어떤 라벨 셋에서든 동작해요 — 인텐트를 숫자 클래스가 아닌 일반 영어 설명으로 정의하면 돼요.
Phase A는 즉시 배포할 수 있어요. 정확도는 괜찮지만(~85%) 도메인에 특화되지는 않아요. 진짜 가치는 사용자 수정과 피드백을 통해 라벨링된 데이터를 수집하기 시작한다는 거예요. 사용자가 잘못된 분류를 수정할 때마다 무료 학습 예시를 얻게 돼요.
Phase B: 파인튜닝된 DistilBERT
카테고리당 ~500개 이상의 라벨링된 예시가 모이면(사용자 수정, 골든 셋 큐레이션, 증강을 통해) DistilBERT (~250MB)를 파인튜닝하세요. 추론 속도가 4배 빠르고(~12ms vs ~50ms), 40% 작고, 도메인 특화 정확도가 더 높아요(~95% vs ~85%).
전환 파이프라인은 이렇게 생겼어요:
라벨링된 데이터 수집 (수정, 골든 셋)
→ 증강 (템플릿, 유의어)으로 클래스당 500+ 달성
→ HF Trainer + early stopping으로 DistilBERT 파인튜닝
→ 골든 셋 대비 평가 (accuracy >= 0.90, f1 >= 0.88)
→ 섀도 비교 (두 모델 동시 실행, 메트릭 비교)
→ 수동 프로모션 (MLflow에서 Staging → Production) 모델 비교
| 차원 | BART-MNLI (Phase A) | DistilBERT (Phase B) |
|---|---|---|
| 모델 크기 | ~400MB | ~250MB |
| 추론 속도 | ~50ms/샘플 | ~12ms/샘플 |
| 학습 데이터 필요량 | 0 | 클래스당 500+ |
| 정확도 (도메인) | 괜찮음 (~85%) | 더 좋음 (~95%) |
| 유연성 | 아무 라벨이나 가능 | 고정된 라벨 셋 |
| 아키텍처 | 12층 encoder-decoder | 6층 encoder |
왜 이 패턴이 업계 표준인가
이 2단계 접근법은 새로운 게 아니에요. Google이 사용하고(제네릭으로 시작, 데이터 수집, 특화), Spotify가 콘텐츠 태깅에 적용하고(제로샷 → 파인튜닝), 대부분의 기업 ML 팀이 같은 흐름을 따라요. 이 패턴이 동작하는 이유는 배포와 데이터 수집을 분리하기 때문이에요 — 더 나은 모델을 병렬로 구축하면서 즉시 가치를 전달해요.
이 패턴을 사용할 때
- 라벨링된 데이터가 아직 존재하지 않는 새로운 분류 작업
- 사용자 수정이 지속적인 라벨링 시그널을 제공하는 제품
- 전환 후 모델 크기가 중요한 리소스 제한 환경(NAS, 엣지)
사용하지 않을 때
- 이미 풍부한 라벨링 데이터가 있는 경우 — Phase A를 건너뛰세요
- 카테고리가 자주 변경되는 경우 — 제로샷의 유연성이 파인튜닝보다 영구적인 이점일 수 있어요
- 분류 작업이 NLI 프레이밍으로는 너무 미묘한 경우(예: 미세한 감성 구분)
핵심 교훈
완벽한 데이터를 기다리며 분류기 배포를 미루지 마세요. 제로샷(BART-MNLI)으로 시작하고, 사용자 상호작용을 통해 데이터를 수집하고, 충분한 예시가 모이면 파인튜닝된 모델(DistilBERT)로 졸업하세요. 2단계 패턴은 첫날부터 배포하고 지속적으로 개선할 수 있게 해줘요.