규칙+LLM 하이브리드 전략
규칙 + LLM 폴백 하이브리드 교정 전략 — 왜 두 방식을 결합했나
바른의 맞춤법 검사는 규칙·사전 기반 교정과 LLM 교정을 결합한 하이브리드 방식입니다.
규칙으로 대부분의 오류를 빠르고 일관되게 고치고, 규칙으로는 풀기 어려운 일부 어절만 LLM에 맡깁니다.
이 글은 왜 한쪽만 쓰지 않고 두 방식을 결합했는지, 그리고 어떻게 과교정을 막는지를 설명합니다.
규칙만으로도, LLM만으로도 부족한 이유
| 방식 | 강점 | 약점 |
|---|---|---|
| 규칙·사전 | 빠르고 일관됨, 근거(규정) 부착 가능, 비용 없음 | 사전·규칙에 없는 신조어·맥락 의존 오류에 약함 |
| LLM 단독 | 맥락을 이해, 미등록·드문 오류에 강함 | 느리고 비용 발생, 원문을 과도하게 바꿀 위험(과교정) |
규칙만 쓰면 사전에 없는 오류를 놓치고, LLM만 쓰면 느리고 비싸며 원문을 멋대로 바꿀 수 있습니다. 바른은 두 방식을 순서대로 배치해 서로의 약점을 메웁니다.
규칙 쪽은 오류 성격이 분명한 것을 맡습니다. 바른은 ① 분절 단계에서 잡는 14개 형태적 오류 유형,
② NFD(음소) 기반 사전 검색으로 찾는 맞춤법 규정 위반, ③ 비표준어 사전 교정을 규칙·사전으로 처리합니다.
반면 LLM 쪽은 규칙으로 가릴 수 없는 것을 맡습니다. 발음이 비슷해 표기만으로는 가릴 수 없는 혼동어(예: 반드시/반듯이)와,
문장 전체 관점이 필요한 문장 단위 오류가 그것입니다. 이렇게 "규정으로 명확한 것은 규칙, 맥락이 필요한 것은 LLM"으로 나누는 것이 결합의 핵심입니다.
규칙으로 대부분을 처리한다
파이프라인 앞단(규칙 기반 띄어쓰기 교정, 빈도 오타·비표준어·혼동어 검사)에서 규칙·사전 기반 교정이 먼저 동작합니다.
- 빈도 기반 오타 교정:
스빈다→습니다 - 비표준어 교정:
글장이→글쟁이 - 규칙 기반 띄어쓰기:
아름다운강산→아름다운 강산
자주 반복되고 규정 근거가 분명한 오류는 이 단계에서 끝납니다.
사전·규칙으로 확정된 교정은 표준국어대사전·우리말샘 등 근거(rule_article)까지 붙일 수 있어 신뢰도가 높습니다.
UNK·NA·CONFIRM만 LLM으로 넘긴다
규칙으로 확정하지 못한 어절만 미등록·분석불능 어절 LLM 교정으로 넘어갑니다. 대상은 다음 세 가지입니다.
| 상태 | 의미 |
|---|---|
UNK |
미분류 — 형태소 분석에서 품사를 정하지 못함 |
NA |
분석불능 — 형태소 단위 분석 자체가 실패 |
CONFIRM |
확인 필요 — 규칙이 교정을 자신하지 못해 추가 판단이 필요 |
이렇게 소수의 어절만 LLM에 보내므로, 전체 문장을 LLM에 통째로 맡기는 방식보다 빠르고 비용이 적으며, 규칙이 이미 확정한 부분을 LLM이 망치는 일도 없습니다.
graph LR
A[어절] --> B{규칙으로<br>교정 확정?};
B -- 예 --> C[규칙 교정 채택<br>근거 부착];
B -- 아니오 (UNK·NA·CONFIRM) --> D[LLM 폴백];
D --> E{자모 편집거리<br>임계 이내?};
E -- 예 --> F[LLM 교정 채택];
E -- 아니오 --> G[교정 거부<br>원문 유지];
자모 편집거리로 과교정을 막는다
LLM은 때때로 원문과 동떨어진, 그럴듯하지만 잘못된 결과를 내놓습니다. 바른은 LLM 결과를 그대로 믿지 않고 한글 편집거리(레벤슈타인 거리) 로 검증합니다.
원문과 LLM 결과를 한글 자모로 풀어 편집거리를 재고, 그 거리가 임계(원문 글자수 × 3)를 넘으면 교정을 거부하고 원문을 유지합니다.
왜 글자가 아니라 자모로 재나요?
한글 한 글자는 초성·중성·종성으로 이뤄집니다. 글자 단위로 거리를 재면 밤과 밥처럼 종성 하나만 다른 경우와
완전히 다른 글자가 모두 "1글자 차이"로 묶입니다. 자모로 풀어서 재면 받침 하나 차이와 통째로 바뀐 경우를
구분할 수 있어, 작은 오타 교정은 허용하고 큰 변형은 거부하는 판단이 정확해집니다.
캐시로 같은 일을 두 번 하지 않는다
LLM 호출 결과는 어절 교정 캐시와 띄어쓰기 판별 캐시에 MD5 키로 저장됩니다. 같은 어절·문맥이 다시 들어오면 LLM을 부르지 않고 캐시 결과를 씁니다. 기본 용량은 각각 최대 10,000건입니다.
정리하면
규칙으로 대부분을 빠르게, LLM으로 나머지 어려운 부분만, 자모 편집거리로 과교정을 차단. 이 세 가지가 바른 하이브리드 교정의 핵심입니다.
자주 묻는 질문
Q. 모든 어절을 LLM으로 검사하나요?
아니요. 규칙·사전으로 확정하지 못한 어절, 즉 미분류(UNK)·분석불능(NA)·확인 필요(CONFIRM) 어절만
LLM으로 폴백 교정합니다. 나머지는 규칙으로 처리합니다.
Q. LLM이 엉뚱하게 고치면 어떻게 되나요?
LLM 결과는 한글 편집거리(레벤슈타인 거리)로 검증합니다. 원문과의 거리가 임계(원문 글자수 × 3)를 넘으면 교정을 거부하고 원문을 그대로 둡니다. 이렇게 과교정을 막습니다.
Q. 어떤 오류는 규칙으로, 어떤 오류는 LLM으로 처리하나요?
규정으로 명확한 오류는 규칙·사전이 맡습니다. 분절 단계의 14개 형태적 오류 유형, NFD(음소) 기반 사전 검색,
비표준어 사전 교정이 여기에 해당합니다. 반면 발음이 비슷한 혼동어(반드시/반듯이)와 문장 단위 오류처럼
맥락이 필요한 오류는 LLM이 맡습니다.
도움이 되었나요?