MINERVA 도메인 분류기 07: 배포 의사결정과 후속 실험

ALBERT 속도 역설·BiLSTM 격상·시나리오별 권장과 시리즈 전체 회고

실험 5 latency 실측, 실험 6 K-Fold CV, 그리고 6편까지의 Task 재정의를 통합해 최종 배포 결정을 내린다. ALBERT의 추론 속도 역설(12.49ms - 가장 느림), BiLSTM의 격상 근거(CV 96.18%, 1.48ms, 671K), 시나리오별 권장 매트릭스, 실험 7·실험 8 후속 실험 로드맵, 그리고 이 시리즈가 남기는 방법론적 자산을 정리한다.

Data Science
Machine Learning
Deep Learning
NLP
MINERVA
저자

Kwangmin Kim

공개

2026년 04월 17일

1 이 편의 위치 — 시리즈 마무리

01편에서 프로젝트의 배경과 질문을 정의했고, 02~05편에서 데이터·모델·실험·통계를 정리했으며, 06편에서 Task의 본질을 재정의했다. 이 편은 그 모든 결론을 배포 가능한 하나의 결정으로 압축한다. 동시에 이 결론에 도달하기까지 자주 뒤집혔던 평가들의 궤적을 정리하여, 향후 MINERVA 과제 3이나 유사 프로젝트에서 재사용할 수 있는 플레이북 형태의 자산으로 남긴다.

2 사후 실험 일람

이 시리즈에서 수행한 여섯 개의 사후 실험을 먼저 한 표로 정리한다.

번호 실험명 중심 질문 핵심 결과
실험 1 RAG-only Holdout 합성 73.6% 학습 데이터에 모델이 과적합됐나 기각. 8개 모두 RAG 서브셋에서 Full 대비 동등 또는 개선
실험 2 접미사 Ablation 도메인명 마지막 3자만으로 분류 가능한가 채택. 마지막 3자로 93.7% 달성 (baseline 94.81% 대비 −1.1%p)
실험 3 Per-source 오류 분석 KLUE/ALBERT만 RAG에서 상대적으로 약한 이유는 합성 특화 + 일반단어 경계 약점. KLUE+ALBERT 동시 오답 ∧ 다른 모델 정답 = 9건(RAG 428건 중), 그중 18.2%가 일반단어
실험 4 일반단어 Noise Floor 96%대 천장의 원인이 일반단어 그룹인가 확인. 제외 시 상위 5개 모두 97~98% 구간으로 수렴
실험 5 K-Fold CV 단일 split이 경량 모델(BiLSTM)을 과소평가했나 BiLSTM CV 96.18% ± 0.41% → KLUE와 paired t-test p=0.73 (통계적 동등)
실험 6 Latency 실측 파라미터 수와 추론 속도가 비례하는가 불일치. ALBERT(13M) 12.49ms 가장 느림, BiLSTM(671K) 1.48ms 1위

각 실험이 담당하는 축은 다음과 같다.

  • 실험 1·3 — 합성 데이터 리스크 정량화. 02편에서 복선으로 깔았던 “합성 73.6% 의존” 우려를 정면 검증한다.
  • 실험 2·4 — Task 본질 해부. 접미사에 신호가 집중됨을 확인하고 일반단어 그룹의 구조적 한계를 정량화한다.
  • 실험 5 — 단일 split 샘플링 노이즈 통제. 특히 경량 모델의 공정 평가에 필수다.
  • 실험 6 — 파라미터 수와 추론 속도를 분리한 실측. 배포 의사결정의 핵심 축을 확보한다.

실험 1·2·3·4는 06편에서 Task 재정의의 근거로, 실험 5·6은 이 편에서 배포 의사결정의 근거로 각각 활용된다. 구현 코드는 data_standardization/notebooks/domain_classification/ 아래 21_rag_holdout_eval.ipynb ~ 25_kfold_cv.ipynb20_model_comparison.ipynb에 있다.

3 배포 결정의 다섯 축 재확인

01편에서 성공 기준을 다섯 축으로 정의했다. 정확도·속도·배포 환경 적합성·해석 가능성·유지보수. 이 다섯 축에 대해 8개 모델의 최종 실측치를 한 표로 정리한다.

모델 Test Acc CV Acc Latency Params 크기 (MB) 한국어 SP GPU 필수
KLUE-RoBERTa 96.88% 12.25ms 110M 443 O O
XLM-RoBERTa 96.49% 중간 278M 1,112 △ (다국어) O
KoBERT 95.84% 중간 92M 369 O O
ALBERT (Kor) 95.58% 12.49ms 13M 53 O O
mBERT 95.52% 중간 167M 670 △ (다국어) O
BiLSTM 94.81% 96.18%±0.41% 1.48ms 671K 2.7 N/A (char) X
DistilKoBERT 93.12% 중간 28M 111 O O
multilingual-e5 90.84% 중간 (frozen) 278M frozen X

이 표가 이 시리즈 전체의 요약이다. 이 표의 각 열이 다섯 축의 어느 한 면에 대응하고, 의사결정은 이 표에서 어떤 열에 가중치를 두느냐의 문제로 환원된다.

4 실험 5 실측 latency의 역설

4.1 예상과 실측의 불일치

03편 설계 시점의 예상은 단순했다. “파라미터가 작을수록 빠르다”. BiLSTM 671K는 당연히 빠르고, ALBERT 13M이 그 다음, KLUE 110M과 mBERT 167M이 중간, XLM 278M이 가장 느릴 것으로 예상했다.

실측 결과는 이 예상을 두 군데에서 뒤집는다.

  • BiLSTM 1.48ms — 예상대로 압도적으로 빠르다. 다른 모델 대비 8~10배.
  • ALBERT 12.49ms — 8개 모델 중 가장 느림 — 예상과 정반대. 13M 파라미터임에도 110M KLUE보다 느리다.

4.2 왜 ALBERT가 가장 느린가

ALBERT의 핵심 기술인 cross-layer parameter sharing은 메모리를 절약하지만 추론 속도를 줄이지 않는다. 12 layer를 실행할 때 각 layer가 같은 weight를 참조하더라도 layer-wise forward pass 자체는 12번 수행된다. KLUE 같은 일반 BERT도 12 layer를 12번 실행하므로 이론적으로 계산량이 동일하다. 거기에 ALBERT의 factorized embedding(128 → 768)이 matmul을 하나 더 추가한다.

결과적으로 ALBERT는 “메모리는 1/8, 속도는 BERT와 동일 혹은 약간 느림” 의 trade-off를 가진다. 실무에서 “ALBERT 쓰면 빠르다”는 통념은 부정확하다. 정확한 표현은 “ALBERT 쓰면 메모리가 적다”이다.

이 관찰은 ALBERT의 배포 포지션을 재고하게 만든다. 설계 시점(03편)에는 “경량 + 속도”의 조합으로 봤으나 실측 후에는 “경량이지만 속도는 아님”이 된다. 메모리 제약이 없는 환경(Azure GPU)에서는 KLUE-RoBERTa와 ALBERT의 선택 근거가 흐려진다.

4.3 1.48ms의 BiLSTM이 이기는 지점

BiLSTM 1.48ms는 단순히 “빠르다”를 넘어선다. 사용자 UI의 체감 지연 상한을 1~2초로 잡은 01편 성공 기준에서, ALBERT 12.49ms는 단일 요청 처리에도 여유가 있지만 배치 처리·동시 요청 시 CPU fallback이 불가능하다. BiLSTM은 CPU에서도 수 ms 수준의 추론이 가능해 GPU 없이도 같은 응답성을 유지한다. 이는 엣지 배포·onprem 제약 환경·재해 복구(DR) 시나리오에서 결정적 차이가 된다.

5 실험 6 K-Fold CV — 단일 split의 재평가

04편에서 K-Fold 필요성을 언급했고 실험 6에서 BiLSTM·ALBERT 두 모델로 5-Fold CV를 수행했다. 결과는 다음과 같다.

모델 단일 split Test Acc 5-Fold CV 평균 ± std
BiLSTM 94.81% (fold 하나에서 91.30%) 96.18% ± 0.41%
ALBERT (Kor) 95.58% 96.24% ± 0.35%

Paired t-test 결과 p = 0.73 — 두 모델이 K-Fold에서도 통계적 동등. 단일 split에서 0.77%p 차이가 났던 것이 CV에서 0.06%p로 줄어들면서 사라진 셈이다.

5.1 단일 split이 BiLSTM을 과소평가한 이유

BiLSTM은 671K 파라미터로 학습 데이터 구성에 상대적으로 민감하다. test set에 어려운 샘플이 많이 뽑히는 fold에서 91.30%까지 떨어졌고, 고른 fold에서는 96%대를 낸다. 이 변동성이 5-fold 평균에서는 0.41% std로 수렴한다. 사전학습 모델은 이 변동성이 더 작아(ALBERT std 0.35%) 단일 split 결과와 CV 결과의 차이가 작다.

이 관찰이 실무적으로 중요하다. 경량 모델·from-scratch 모델일수록 K-Fold로 검증해야 진짜 실력이 드러난다. 대형 사전학습 모델만 비교하면 단일 split으로도 큰 문제가 없지만, 경량 모델을 포함하면 CV가 공정성의 필수 조건이 된다. MINERVA 과제 3에서 경량 모델을 비교할 때 이 교훈이 그대로 적용된다.

6 시나리오별 배포 권장 매트릭스

다섯 축과 실험 1~6 결과를 통합하면 다음 매트릭스가 나온다. 단일 “최고 모델”이 아니라 시나리오에 따른 최적 선택의 형태다.

시나리오 1순위 근거
사실상 default (★ 최종 권장) BiLSTM (Kor) CV 96.18%, 671K (KLUE의 1/164), 1.48ms (ALBERT의 1/8), CPU 가능
정확도 마지막 한 끗 KLUE-RoBERTa 96.88% (BiLSTM CV + 0.7%p), 12.25ms, 110M
RAG/실데이터 강건 XLM-RoBERTa RAG-only Test Acc 97.43%로 전 모델 1위
RAG 13-class만 (일반단어 후처리 분리) ALBERT (Kor) RAG + 일반단어 제외 98.48%로 전 모델 1위
학습 없이 즉시 배포 multilingual-e5 임베딩 동결, RAG 인프라 재활용, 91.82%
선택 금지 DistilKoBERT, mBERT 모든 축에서 dominated

6.1 사실상 default가 BiLSTM인 이유

최종 권장이 BiLSTM이 된 과정은 단일 실험의 결과가 아니라 다섯 실험의 통합 논리다.

  • 정확도 — 실험 6에서 CV 96.18%, KLUE 대비 -0.7%p. 05편 단일 split의 통계적 열세가 CV에서는 동등.
  • 속도 — 실험 5에서 1.48ms, ALBERT 대비 1/8.
  • 크기 — 671K, KLUE의 1/164. 2.7MB 모델 파일.
  • 배포 환경 — CPU 전용 가능. GPU 미확보 환경에서도 작동.
  • 합성 의존성 — 실험 1에서 RAG holdout 시에도 정확도 유지.

다섯 축이 모두 양수다. 약점이 있다면 “정확도 절대 1위는 아님”이지만, 통계적으로 KLUE와 동등인 이상 “1위가 아닌 것”은 실질적 약점이 아니다. 이것이 03편 설계 시점에는 보이지 않던 결론이다.

6.2 정확도 한 끗 필요 시 KLUE

BiLSTM의 -0.7%p가 특정 업무에서 허용 불가하면 KLUE-RoBERTa로 간다. 단일 split 정확도 96.88%, Azure GPU 배포 환경에서 12.25ms는 허용 범위. BiLSTM으로 시작해 정확도 이슈가 생기면 KLUE로 교체하는 단계적 배포 경로가 현실적이다.

6.3 RAG 강건성 우선 시 XLM-RoBERTa

프로덕션 환경에서 입력 분포가 RAG 스타일(실데이터 편향)이라면 XLM-RoBERTa의 RAG 97.43%가 결정적 장점이 된다. 278M 크기 부담이 있지만 Azure 인프라에서는 감당 가능. MINERVA의 Vector DB 인프라와 다국어 토크나이저의 호환성도 장점.

6.4 하이브리드 옵션 — ALBERT + 일반단어 후처리

실험 4에서 일반단어 제외 시 ALBERT가 RAG 98.48%로 전 모델 1위가 나왔다. 이 현상은 “ALBERT는 13개 유의미한 그룹에서는 최강이지만 잔여 그룹에서 무너진다”로 해석된다. 배포 시 일반단어를 별도 규칙(rule-based fallback)으로 분리하고 나머지 13개 그룹만 ALBERT가 담당하는 하이브리드 구조가 가능하다.

이 하이브리드 구조의 장점은 (a) 13-class ALBERT의 최고 정확도(98.48%)를 이용하고, (b) 잔여 그룹은 모델 학습 불가 영역이므로 규칙·휴리스틱이 오히려 더 잘 처리할 수 있으며, (c) 전체 시스템 정확도가 BiLSTM 96%대를 상회할 여지를 연다는 것이다. 단점은 운영 복잡도 증가. 최종 배포가 충분히 안정화된 후 고려할 옵션이다.

7 ALBERT 재평가 — 두 번 뒤집힌 결론의 교훈

이 프로젝트에서 ALBERT의 평가는 두 번 뒤집혔다.

  • 03편 설계 시점 — “경량(13M) + 한국어 SP + 프로덕션 친화”로 중량급 후보.
  • 05편 통계 검증 후 — “KLUE와 McNemar Holm ns → 실질 최적해”. 파라미터 1/8.5로 SOTA와 동등이라는 흥미로운 이야기.
  • 실험 5·6 통합 후 — “추론 속도 12.49ms로 가장 느림, BiLSTM과 CV 동등 → 실질 우위 없음”. 경량의 실제 의미가 “메모리”이지 “속도”가 아니었음이 드러남.

이 세 번의 평가 변화는 단일 지표(정확도)로 의사결정하지 않는 것의 중요성을 보여주는 가장 좋은 사례다. 만약 01편에서 “정확도만 본다”고 결정했다면 KLUE 선택으로 끝났을 것이다. “정확도 + 크기”를 봤다면 ALBERT가 최종이었을 것이다. “정확도 + 크기 + 속도 + CPU 가능 여부”를 다 보고 나서야 BiLSTM이 떠오른다. 다섯 축을 모두 보는 설계의 이유가 여기에 있다.

“ALBERT로 하지 왜 BiLSTM으로 가나”라는 의구심이 제기될 때 이 세 평가의 궤적 자체가 답이 된다. “설계 시점에는 ALBERT가 최적해로 보였고 통계 검증까지도 유지됐다. 그러나 latency 실측과 K-Fold CV 결과 통합 후 BiLSTM이 다섯 축 모두에서 ALBERT를 상회함이 드러났다. 이 세 번의 평가 변화를 추적할 수 있는 것 자체가 프로젝트 설계의 가치였다.”

8 후속 실험 로드맵

이 시리즈에서 기각되지 않은 가설 두 가지가 남았다. 각각 실험 7, 실험 8로 설계되어 있다.

8.1 실험 7: 설명 컬럼 ablation

02편에서 예약한 실험이다. 입력 feature를 도메인명 한 컬럼으로 한정한 결정을 ablation으로 정량 검증한다.

A. 도메인명만 (baseline, 현재 96.88%)
B. 도메인명 + [SEP] + 설명 (결측 시 빈 문자열)
C. 도메인명 + [SEP] + 설명 (결측 제거 서브셋)

측정: Test Acc, Macro F1, per-class F1 (특히 `일반단어`)
      McNemar로 B·C가 A 대비 통계적 유의한지

예상:
- B: ± 0.5%p (결측 비율에 따른 노이즈 상쇄)
- C: +0.5~1.5%p (설명 품질 좋은 서브셋)
- 둘 다 Holm ns 가능성 높음 → "설명 안 쓴다"의 정당화

이 실험의 가치는 “왜 설명을 안 썼나”라는 의문에 수치로 답할 수 있게 하는 것이다. 06편에서 접미사 가설이 강하게 채택됐으므로 설명의 추가 이득이 이론적으로 작을 것으로 예상된다. 예상대로 ns가 나오면 “접미사에 신호가 집중되어 있어 설명의 한계 이득이 통계적으로 유의하지 않음”이 실증으로 정리된다.

8.2 실험 8: Rule/경량 ML baseline 대조

“regex로 풀리지 않나”, “DL이 필요한가”라는 비판에 정량적으로 답하기 위한 실험이다.

A. Pure regex rule (14그룹 × suffix list 수기 작성)
   예상 70~85% — `일반단어` 0%, 접미사 공유 그룹 저조

B. TF-IDF char n-gram (n=2,3,4) + Linear SVM
   예상 85~92% — 통계적 패턴만 잡는 한계

C. BiLSTM (이미 측정, CV 96.18%)
D. ALBERT (이미 측정, 95.58%)
E. KLUE-RoBERTa (이미 측정, 96.88%)

해석:
- A가 낮으면 "rule로 충분" 비판 무력화
- B가 92% 근처면 BiLSTM 선택이 "경량 ML + 미세 상승의 sweet spot"임을 역으로 입증

이 실험의 가치는 두 가지다. 첫째, “이 문제 DL 안 쓰고도 되지 않나”라는 의구심에 정량으로 답할 수 있다. 둘째, rule·SVM·BiLSTM·BERT 4단계 곡선 자체가 이 task의 난이도를 시각화한다. A→B→C→E의 정확도 상승 기울기가 각 접근의 한계와 강점을 드러낸다.

시간 비용은 저렴하다. regex는 수 시간, SVM은 수 분. 방어 비용 대비 투자 효율이 극도로 높다.

8.3 기타 향후 검토 사항

  • 일반단어 그룹 데이터 레벨 접근 — 실험 4 결과에서 천장의 1.5%p가 이 그룹에서 옴이 확인됐다. 모델이 아니라 데이터로 해결해야 하는 영역이다. 별도 프로젝트로 분리 권장.
  • BiLSTM CPU 프로덕션 latency 측정 — 실험 5는 GPU 기준. CPU 환경에서 몇 ms인지 실측이 엣지 배포 결정의 기준이 된다.
  • 나머지 6개 모델의 K-Fold — 보고서 보강용. 실험 6에서 BiLSTM·ALBERT만 돌렸으나 시간 여유 시 KLUE·KoBERT·mBERT·XLM까지 확장하면 “단일 split이 충분했는가”의 최종 검증이 된다.

9 시리즈 전체 회고 — 이 프로젝트가 남긴 자산

이 시리즈는 7편에 걸쳐 도메인 분류기 하나의 선정 과정을 다뤘다. 최종 배포 모델(BiLSTM)은 한 줄로 요약된다. 그러나 이 시리즈의 진짜 산출물은 모델 이름이 아니라 재사용 가능한 방법론 자산이다.

9.1 자산 1 — 의사결정 공간 probe 설계

8개 모델을 4개 전략 공간(한국어 SP / 다국어 / 임베딩 동결 / from-scratch) × 3개 파라미터 규모에 배치한 설계는 단일 모델 최적화가 아니라 공간 scanning의 예시다. 각 칸이 검증하려는 가설을 담았고, 결과적으로 스케일링의 포화·토크나이저의 지배력·경량 모델의 정당성 세 가지 발견이 나왔다. 이 probe 설계 방식은 MINERVA 과제 3에 그대로 전이된다.

9.2 자산 2 — 재현성 표준화 인프라

04편의 random_state·LabelEncoder·training_summary 표준화는 8개 모델의 공정 비교를 가능케 했다. 이 인프라 없이는 predictions.pkl 재사용·McNemar 검정·실험 1 RAG-only holdout이 모두 불가능했다. “코드의 일관성이 후속 실험의 전제 조건”이라는 교훈은 ML 프로젝트 어디에나 적용된다.

9.3 자산 3 — 통계적 등급 frame

05편의 Holm 보정 후 “상위 5개 통계적 등급 A”라는 frame이 이 프로젝트의 의사결정 언어를 바꿨다. 정확도 순위가 아니라 등급 묶음으로 생각하게 되면서, 배포 결정이 “1위 선택”에서 “축별 최적 조합 선택”으로 전환됐다. 이 frame은 벤치마크를 다루는 모든 후속 프로젝트에 전이된다.

9.4 자산 4 — Task 재정의의 과학적 과정

02편에서 가설을 깔고(합성 73.6% 리스크), 06편에서 실험으로 검증하고(실험 1 기각), 그 결과가 배포 결정에 소급 작용한 과정 자체가 방법론적 자산이다. 가설이 기각되는 것도 결과이며, 검증되지 않은 가설을 결정에 반영하는 것이 위험함을 이 프로젝트가 실증한다.

9.5 자산 5 — 두 번 뒤집힌 ALBERT 평가의 궤적

ALBERT의 평가가 설계→통계→실측 세 단계에서 두 번 뒤집힌 궤적은 “단일 지표로 결정하지 않기”의 구체적 교재다. 이 궤적을 서사로 설명할 수 있다는 것이 이 프로젝트가 남긴 의외의 방어 자산이다.

10 한 줄 결론

최종 배포: BiLSTM (Kor). 근거: 정확도(CV 96.18%)·속도(1.48ms)·크기(671K)·CPU 가능·합성 강건의 다섯 축 모두에서 양수. 이 결론에 도달하기까지 설계→통계→latency→K-Fold 네 단계의 평가 뒤집힘이 있었고, 이 궤적 자체가 이 프로젝트의 방법론적 산출물이다.

11 MINERVA 과제 3로의 전이

이 시리즈의 방법론이 MINERVA 과제 3(인실리코 알고리즘 분석 Agent)에 어디까지 전이될 수 있는가.

전이 가능: - 8-모델 probe 설계 — 코드 메타데이터 분류에서 4개 전략 공간 × 3개 규모 배치 - 재현성 표준화 — random_state·LabelEncoder·training_summary 스키마 - 통계적 등급 frame — Holm 보정 후 등급 묶음 확인 - 단일 지표 경계 — 정확도 + 속도 + 크기 + 해석 가능성 통합

부분 전이: - Task 재정의 가능성 — 과제 3 task가 접미사 구조인지 의미 이해 구조인지 사전 분석 필요 - 경량 모델 우선 — 과제 3의 입력 길이·분류 공간 복잡도에 따라 다름

신규 필요: - 긴 코드 context 처리 — 과제 3는 분류가 아닌 설명 생성 task. 별도 설계 필요. - RAG와의 통합 — 과제 3는 classification이 아니라 retrieval + generation.

이 시리즈가 과제 3 설계의 출발점이 될 수는 있으나 복제본이 될 수는 없다. 방법론은 이전되고 task 본질 분석은 처음부터 다시 한다.

12 관련 주제

이 시리즈 전체

관련 포스트

Subscribe

Enjoy this blog? Get notified of new posts by email: