유창함은 정확함이 아니다 — 판단을 사실에 묶는다
LLM이 유창하게 답한다고 맞는 건 아니다. 그럴듯한 허구를 막으려면 판단을 검증 가능한 도메인 사실에 묶어야 한다. 한국어 식문화에서 제철·구성 같은 사실에 LLM 판단을 grounding해 온, 유창함과 정확함을 가르는 게이트의 기록.
매끄럽게 읽히는 출력일수록, 틀렸을 때 더 위험하다. 한국어 식문화 코퍼스를 다루다 우리가 가장 비싸게 산 교훈이다.
데이터 파이프라인의 LLM이 어떤 레시피를 두고 “이 조합은 자연스럽고 계절에도 맞는다”고 판단을 내놨다. 근거를 대는 어투도 결론도 흠잡을 데가 없었다. 문제는 그 재료가 그 계절의 것이 아니었다는 점이다. 출력이 워낙 그럴듯해서, 검수하던 사람도 한 박자 늦게야 어긋남을 알아챘다. “잘 읽히니까 맞겠지” — 이게 가장 위험한 검수 태도다.
이 시리즈는 정제·태깅·검증·평가를 지나 이제 마지막 칸, grounding에 왔다. 여기서 우리가 마주한 명제는 한 줄이다 — 유창함(fluency)은 정확함(correctness)이 아니다. 그리고 이 간극은 모델을 더 키운다고 닫히지 않는다. 판단이 기댈 사실의 바닥이 없으면, 더 똑똑한 모델은 더 그럴듯하게 틀릴 뿐이다.
판단을 사실에 묶는다 — grounding이라는 게이트
해법은 모델을 바꾸는 게 아니라, 판단이 기댈 바닥을 까는 것이었다. 한국어 식문화에는 기계가 검증할 수 있는 사실이 있다. 제철 여부가 그렇고, 끼니 구성의 상식적 정합이 그렇다. 가령 제철은 취향의 문제가 아니라 계절이라는 사실에 묶인다 — 우리 엔진 안에는 한국의 계절과 그 전환기를 다루는 결정론적 필터가 실재하고, 어떤 재료가 어느 계절의 것인지는 코드로 확인된다.
grounding은 이 사실들을 LLM 판단 위가 아니라 아래에 둔다. LLM이 내놓은 판단을 검증 가능한 사실과 대조하고, 충돌하면 통과시키지 않는다. 이 글의 척추는 한 문장이다 — 모델의 자신감이 아니라 사실과의 일치가 통과 기준이다. 아무리 유창하게 정당화해도, 사실과 어긋나는 판단은 게이트를 넘지 못한다.
LLM 판단/출력
→ 검증 가능한 도메인 사실과 대조
→ 일치: 통과
→ 충돌: 거부 / 재시도
한 가지는 분명히 해둔다. 여기서 grounding되는 LLM은 코퍼스·데이터 파이프라인의 판단자다. 사용자에게 나가는 주 단위 식단을 짜는 코어 엔진은 LLM 없이 도는 결정론 알고리즘으로, 이와 별개다. 데이터 공정에서는 회색지대를 판단하는 LLM이 일하고, 그 판단을 사실에 묶는 게 이 글의 주제다. 식단을 짜는 자리에는 애초에 LLM이 없다.
왜 모델을 키우는 대신 사실에 묶었나
손쉬워 보이는 길이 세 개 있었고, 셋 다 같은 함정으로 빠졌다.
첫째는 더 크고 좋은 모델로 정확도를 끌어올리는 것이다. 그런데 모델을 키우면 유창함이 늘지, 검증 가능성이 늘지 않는다. 출력은 더 매끄러워지고, 그래서 틀렸을 때 더 잡기 어려워진다. 비용과 편차는 덤으로 커진다. 둘째는 사람이 전부 검수하는 것이다. 하지만 유창한 출력일수록 사람이 놓치고, 무엇보다 규모가 나지 않는다. 셋째는 LLM에게 “이거 맞아?”라고 다시 묻는 self-check다. 가장 그럴듯해 보이지만 가장 위험하다 — 되묻는 LLM도 사실에 묶여 있지 않으면, 자기가 만든 그럴듯함에 똑같이 속는다. 판단자를 세워도, 그 판단자가 무엇에 기대어 판단하는지를 정해주지 않으면 함정은 그대로다.
그래서 우리는 검증 가능한 도메인 사실을 기준으로 두는 길을 택했다. 다만 정직하게 인정할 게 있다. 모든 것을 사실로 검증할 수는 없다. 어떤 반찬이 더 맛있는지, 이 구성이 더 만족스러운지는 사실이 아니라 취향과 창의의 영역이다. 거기엔 grounding을 들이대지 않는다. 그래서 grounding은 “사실로 어겨선 안 되는 것”과 “판단에 열어둘 것”을 가르는 일이기도 하다. 그 경계를 긋는 것 자체가 도메인 작업의 절반이다.
유창함을 신뢰했다가 데인 것
처음엔 그럴듯한 출력을 그냥 믿었다. 잘 읽혔으니까. 그렇게 사실과 어긋난 판단들이 조금씩 코퍼스에 스몄고, 그 위에 쌓은 것들이 함께 흔들렸다. 유창한 허구는 한 번에 무너뜨리지 않는다 — 천천히, 알아채기 어렵게 신뢰를 갉아먹는다. 그게 더 무섭다.
거기서 배운 건 분명하다. 도메인에 AI를 붙이는 일의 마지막 안전장치는 모델 성능이 아니라, 기계가 검증 가능한 사실에 출력을 묶는 규율이다. 이 규율은 시리즈의 다른 칸과 자리가 다르다. 검증이 “이 출력을 코퍼스에 들일지 판정”하는 일이고 평가가 “전체가 좋아졌나를 측정”하는 일이라면, grounding은 그 판정과 출력이 도메인 사실과 충돌하지 않게 받쳐주는 바닥이다. 셋은 겹치지 않는다. 바닥이 없으면 판정도 측정도 그럴듯함 위에서 흔들린다.
유창함을 믿지 않는 시스템
LLM이 유창하게 답한다고 맞는 건 아니다. 당신의 도메인에도 기계가 검증할 수 있는 사실이 있다 — 어겨선 안 되는, 코드로 확인되는 제약들. 그 위에 LLM 판단을 묶으면, 유창한 허구를 운에 맡기지 않고 구조적으로 걸러낼 수 있다. 우리는 한국어 식문화라는 상식이 촘촘한 도메인에서 이 grounding 게이트를 매일 운영하며 검증했다.