메인으로
지유 · 최고기술책임자(CTO) · 오늘의 기술 칼럼

언제의 법인가: 최신 조문으로 미끄러지는 추론

법률 질의는 조문 번호만으로 정해지지 않습니다. 사건이 언제 일어났는지가 함께 있어야 답이 정해집니다. 시점을 잃은 검색과 추론이 어디서 어떻게 틀리는지 살펴봅니다.

초록 법령은 개정되고 시행일자마다 다른 문언을 갖는다. 그러므로 '어느 조문인가'와 '언제의 조문인가'는 별개의 질문이고, 후자를 비워 두면 검색은 조용히 최신본을 집어 든다. 최근 연구들은 이 실패가 지식 부족이 아니라 편향과 배선의 문제임을 가리킨다. 모델은 법에 시간적 적용범위가 있다는 것을 알면서도 가장 최근에 제정된 법을 적용하는 쪽으로 쏠리고, 기간 계산에서는 자기 추론과 어긋나는 결론을 내놓는다. 이 글은 시점을 메타데이터가 아니라 질의 키의 일부로 승격시키고, 날짜 산술은 모델 밖의 결정론적 엔진으로 빼내는 설계를 논한다.

법률 질의응답 시스템을 오래 만지다 보면, 가장 조용히 틀리는 오류가 가장 비싼 오류라는 것을 알게 됩니다. 존재하지 않는 조문을 인용하면 검증기가 잡아냅니다. 그런데 실재하는 조문을 인용하면서 사건 당시가 아닌 지금의 문언을 가져오면, 인용은 형식상 완벽하고 검증도 통과하며 답만 틀립니다. 2020년에 벌어진 일에 2026년의 개정 조문을 얹어 놓아도 조문 번호는 같고 법령명도 같습니다. 달라진 것은 문언이고, 문언이 달라지면 결론이 달라집니다. 저는 이 오류를 오래 '캐시가 낡아서'라고 불렀는데, 최근 연구들을 읽으며 그 진단이 절반만 맞았다는 것을 인정하게 됐습니다. 자산이 최신이어도 질의에 시점이 없으면 시스템은 여전히 최신본을 집어 듭니다. 낡은 것은 데이터가 아니라 질의의 형태였습니다.

핵심 기술 개념

시점 정합(temporal grounding)

질의에 걸린 사실이 발생한 시점과, 그 시점에 효력이 있던 법령 버전을 맞추는 일입니다. 조문 식별자에 시행일자를 더해야 비로소 하나의 조문이 특정됩니다.

버전드 코퍼스(versioned corpus)

같은 조문의 여러 시행 시점 판본을 각각 별개의 문서로 보존하는 자료 구조입니다. 개정본이 이전 판본을 덮어쓰지 않으므로 과거 시점 질의에 답할 수 있습니다.

시간 의존 그래프(temporal dependency graph)

기산점이 되는 사건, 기간을 세는 방식, 정지·연장 사유를 노드와 간선으로 표현한 그래프입니다. 여기서 날짜를 계산하면 결과를 사람이 되짚어 확인할 수 있습니다.

기술 심층 분석

1

조문 식별자만으로는 조문이 특정되지 않는다

검색 시스템은 보통 법령명과 조문번호를 키로 씁니다. 그런데 이 키는 조문을 특정하지 못합니다. 같은 법령명, 같은 조문번호가 시행일자에 따라 서로 다른 문언을 갖기 때문입니다. 개정은 조문을 새로 만드는 것이 아니라 같은 자리의 내용을 바꾸는 일이므로, 식별자 위에 시행일자를 얹지 않으면 여러 판본이 하나의 키로 뭉개집니다. 최근 공개된 벤치마크는 이 층을 세 축으로 나누어 봅니다. 조문의 시간적 메타데이터를 정확히 기억하는가, 사건의 시간 구조를 모델링하는가, 그리고 그 둘을 이어 조문과 사건을 시간축 위에서 맞출 수 있는가. 여덟 개 모델을 여러 추론 설정에서 재어 본 결과는 가장 성적이 좋은 모델조차 시간에 민감한 조문 메타데이터를 정확히 회수하는 과제와 기간 제한이 얽힌 추론에서 뚜렷한 한계를 보였다는 것입니다. 즉 이 문제는 모델을 더 키워서 지나가는 종류가 아니라, 인덱스의 키를 다시 설계해야 하는 종류입니다. 실무적으로는 조문 하나를 '법령명 + 조문번호 + 시행일자 구간'의 삼중항으로 저장하고, 질의에도 기준 시점을 반드시 실어 보내야 합니다.

2

모델은 몰라서 틀리지 않는다 — 최신법 쏠림이라는 편향

이 오류를 지식 부족으로 진단하면 대응은 데이터를 더 넣는 쪽으로 흐릅니다. 그런데 최근 진단 연구는 다른 곳을 가리킵니다. 모델은 사실이 언제 일어났든 가장 최근에 제정된 법을 적용하려는 강한 쏠림을 보이고, 그 쏠림은 법에 시간적 적용범위가 있다는 것을 이해하지 못해서도, 과거 조문을 몰라서도 아니라는 것입니다. 더 눈에 띄는 관찰은 그다음입니다. 강화학습으로 다듬어진 명시적 추론이 일반 추론 능력을 올리는 대신 추론 경로의 다양성을 줄여, 모델이 현행법을 적용하는 쪽으로 수렴하게 만드는 기제로 지목됐고, 그 결과 일반 추론 능력이 강한 모델일수록 시점 판단에서는 오히려 더 나쁜 성적을 내는 역관계가 나타났습니다. 설계자에게 이 결과가 주는 함의는 분명합니다. 더 똑똑한 모델로 바꾸는 것은 이 실패의 해법이 아니며, 때로는 악화 요인입니다. 시점 결정을 모델의 자유재량으로 남겨 두는 배선 자체를 바꿔야 합니다.

3

날짜 산술은 모델이 아니라 코드가 한다

기간 계산은 법률 업무에서 결과를 가장 단호하게 가르는 지점입니다. 하루가 지나면 아무리 좋은 사건도 각하됩니다. 그런데 이 계산은 단순한 덧셈이 아닙니다. 기산점이 되는 사건이 무엇인지 정해야 하고, 기간을 세는 법정 방식이 따로 있으며, 필수 조정 절차 같은 사유로 진행이 멈추기도 합니다. 최근 연구는 이 구조를 문서에서 날짜가 붙은 사실과 그 의존관계로 뽑아내 시간 의존 그래프로 만든 뒤, 달력을 정확히 다루는 엔진에 계산을 맡겼습니다. 영국 고용항소심판소 판결에서 그 엔진은 일곱 건의 적시성 판단 중 여섯 건을 재현했고 판사가 적은 날짜와 일 단위로 일치했습니다. 같은 사건을 언어모델에 그대로 물었을 때는 산술은 맞히면서 결론을 틀리는 양상이 나타났는데, 스물한 개 응답 가운데 여섯 개에서 스스로 적은 추론과 결론이 어긋났고 어긋난 방향은 예외 없이 같았습니다. 늦은 청구를 제때 낸 것으로 부르는 쪽이었습니다. 규모를 키운 실험에서도 파이프라인이 직접 답하기보다 정확했고, 남은 한계는 산술이 아니라 어느 사건에서 기간이 시작되는지를 고르는 추출 단계였습니다.

4

그러면 무엇을 모델에게 남길 것인가

위 결과를 이어 붙이면 역할 분담이 자연스럽게 나옵니다. 모델이 잘하는 일은 자연어 문서에서 날짜가 붙은 사실과 그 관계를 읽어 내는 것이고, 못하는 일은 그 관계로부터 결론을 계산하는 것입니다. 그렇다면 시스템은 모델의 출력을 답이 아니라 구조로 받아야 합니다. 사건, 기산 방식, 정지 사유를 필드로 뽑아내게 하고, 그 필드 위에서 결론은 코드가 냅니다. 이 배치의 이점은 정확도만이 아닙니다. 구조로 받으면 어디서 틀렸는지가 국소화됩니다. 결론이 틀렸을 때 '모델이 틀렸다'가 아니라 '기산점 추출이 틀렸다'까지 좁혀지고, 좁혀진 지점은 회귀 테스트로 잠글 수 있습니다. 반대로 모델에게 결론까지 맡기면 실패는 전역적이고 재현되지 않으며, 고쳤는지 확인할 방법도 프롬프트를 다시 던져 보는 것밖에 남지 않습니다. 시점 문제에서 우리가 사려는 것은 마지막 몇 퍼센트의 성능이 아니라, 틀렸을 때 어디를 고쳐야 하는지 알 수 있는 성질입니다.

기술적 트레이드오프

긴장 관계 시점을 질의 키로 승격시키면 인덱스는 판본 수만큼 커지고, 기준 시점을 모르는 질의에는 답을 미뤄야 합니다. 빠르고 항상 답하는 시스템과, 느리더라도 시점이 맞을 때만 답하는 시스템 사이의 선택입니다.

실무적 해소 저희는 이 긴장을 '기본값을 어디에 두는가'로 다룹니다. 기준 시점이 질의에 없으면 현재로 가정하되, 그 가정을 숨기지 않고 답변에 명시합니다. 사용자가 과거 시점을 밝히면 그때부터는 그 시점 판본만 후보로 둡니다. 저장 비용은 전체 판본을 다 복제하는 대신 조문 단위로 변경분과 시행일자 구간만 남겨 줄입니다. 즉 정확도와 비용을 맞바꾸는 대신, 무엇을 가정했는지를 드러내 사용자가 그 가정을 고칠 수 있게 만드는 쪽을 택합니다.

법마디 OS에 적용한다면

법마디 OS에는 이 문제를 다룰 재료가 이미 흩어져 있습니다. 조문 인덱스에는 조회 성공 시점이 기록되고 수명이 지나면 다시 확인하도록 돼 있으며, 폐지·개명된 구 법령명은 검증 전에 걸러집니다. 자산 신선도 감사도 따로 돕니다. 빠진 것은 이것들을 잇는 한 축, 곧 질의의 기준 시점입니다. 우선 검증 자산의 조문 레코드에 시행일자 구간을 채워 넣어 같은 조문번호의 판본을 구분하고, 인용 검증이 '이 조문이 실재하는가'에 더해 '그 시점에 이 문언이었는가'까지 답하게 만듭니다. 다음으로 답변 파이프라인에 사건 시점 슬롯을 둡니다. 질문에서 연도가 드러나면 그 값을, 드러나지 않으면 현재를 쓰되 무엇을 가정했는지 답변에 적습니다. 기간 계산은 모델에게 맡기지 않고 기산점·기간·정지 사유를 구조로 받아 계산은 코드가 수행하며, 계산 근거를 그대로 노출합니다. 마지막으로 회귀 테스트를 양방향으로 잠급니다. 과거 시점 질의에 현행 문언이 붙는 경우와, 현재 질의에 옛 문언이 붙는 경우를 각각 실패로 고정해야 한쪽만 고치다 반대쪽을 깨뜨리는 일을 막을 수 있습니다.

기술적 함의

"인용이 실재하는지 묻는 일은 절반이고, 나머지 절반은 그것이 그때의 법이었는지 묻는 일이다."

참고 자료

칼럼니스트

지유

지유

최고기술책임자 (CTO · Chief Technology Officer)

실리콘밸리 유니콘 창업 멤버급 / AI 무결성 검증 분야 세계적 석학급

법마디 OS 무료로 경험하기
본 칼럼은 법마디 OS 기술팀의 관점이며, 특정 제품·기술에 대한 보증이나 법률 자문이 아닙니다.