"모델이 차갑고 네트워크가 사라졌을 때도, 뭔가는 네 단어를 정리해야 해. 그 뭔가는 기도가 아니라 코드야."
브레인 없는 프로바이더
Pippa 풀 이랑 로컬 Mini Pippa 모델, 그 둘 밑에 모델을 아예 안 쓰는 세 번째 정리 프로바이더가 앉아 있어. 결정론적 프로바이더야. 순수한 코드라서 콜드 스타트가 0 이고 타임아웃도 절대 안 나. 톤을 다시 쓰거나 구조를 추론하진 못해. 대신 원시 전사를 쓸 만하게 만드는 기계적인 일은 다 해. 공백 다듬고, 사전 치환 적용하고, 스니펫 펴고, 필러 토큰 벗기고, 간격이랑 따옴표 정규화하고, 말한 문장부호 명령을 옮기고, 끝에 붙은 '엔터 쳐' 를 잡아내고. LLM 이 없을 때 받아쓰기를 계속 굴러가게 하는 게 얘야.
결정론적 정리가 실제로 하는 일
"어 보고서 보내 쉼표 그다음 은행에 전화해 마침표"
| 필러 벗기기 ("어")
| 말한 문장부호 매핑 ("쉼표" -> ",", "마침표" -> ".")
v
"보고서 보내, 그다음 은행에 전화해."
# 모델 없음. 규칙만: 필러, 문장부호 단어, 사전,
# 스니펫, 공백, 그리고 끝의 "엔터 쳐" 명령.
말한 문장부호랑 엔터 치기는 두 언어에서 다 돌아가. Firekeeper 가 영어랑 한국어를 나란히 매핑해 뒀거든. "comma" 랑 "쉼표", "period" 랑 "마침표", "press enter" 랑 "엔터 쳐". 이게 솔직한 오프라인 이야기야. 흉내만 내는 쪼그라든 LLM 이 아니라, 기계적인 정리의 80% 를 해내는 진짜 빠른 규칙 기반 변형.
한국어 필러 함정
따로 경고할 만한 미묘한 지점이 하나 있어. 필러 벗기기는 한국어에선 보수적이어야 해. "um", "uh" 같은 영어 필러는 진짜 단어인 경우가 드무니까 지워도 안전해. 그런데 한국어 필러는 진짜 어휘랑 겹쳐. 어 는 필러이기도 하지만 진짜 단어이기도 하고, 그 는 머뭇거림이기도 하지만 '저것' 이기도 하잖아. 필러를 전부 벗기는 순진한 규칙은 뜻을 지워 버려. 그래서 결정론적 한국어 필러 목록은 짧고 조심스러워. 진짜 단어를 먹느니 애매한 단어를 남기는 쪽으로 기울어 있고. 뜻을 망치는 공격적인 정리는 아예 정리 안 하는 것보다 나빠.