"이 인용이 아직 정직한가? 기계가 언제나 같은 방식으로 답하려면 의미가 아니라 문자열을 물어야 해."
오래된 인용을 현재 원문에 다시 대봐
2년 전에 passage를 고정하고 그 위에 claim을 만들었는데 소스 에세이는 그동안 열 번 편집되었을 수 있어. 지금도 인용이 당시의 정확한 문장을 가리키는지 수천 건에 대해 사람이 일일이 읽지 않고 확인해야 해. 이 요구는 답이 취향이나 해석이 아니라 계산 가능한 규칙이어야 한다는 뜻이야.
정확한 문자열 비교로 세 상태를 얻어
- 유효 (
live): 고정한 텍스트가 기록된 문자 위치에 그대로 있어. 인용은 처음 만든 날과 똑같이 유효해. - 위치 재고정 (
reanchored): 옛 위치에는 없지만 같은 문서의 다른 곳에서 정확한 텍스트가 딱 한 번 발견돼. 문장이 이동했을 뿐이므로 새 위치로 안전하게 옮길 수 있어. - 원문 이탈 (
drifted): 정확한 텍스트를 찾을 수 없어. 단어가 바뀌었거나 사라진 상태라서 그 사실만 보고해.
판정은 모두 문자열의 ==와 등장 횟수로 끝나.
'뜻은 비슷하다'는 판단을 넣지 않아
유사 문자열 검색과 임베딩 점수, '대충 같은 뜻인가?'를 판단하는 모델은 재검증에 쓰지 않아. 그런 판단을 허용하면 소스가 그대로인데도 모델이나 임계값이 바뀌어 오늘은 유효하고 내일은 무효인 인용이 생길 수 있어. 쉼표 하나만 달라도 원문 이탈로 잡는 엄격함은 불편하지만, '유효'라는 판정을 믿을 수 있게 만드는 대가야.
검증은 기계적으로 반복할 수 있어야 해. 해석이 필요한 순간 그것은 검증이 아니라 또 하나의 리뷰가 돼. 단순한 기계가 백만 번 실행해도 같은 입력에 같은 판정을 내리게 만들어.
원문 이탈은 현재 상태이지 영구 판결이 아니야
재검증은 passage를 삭제하거나 고장 표시를 새겨 넣지 않고 현재 상태만 계산해. 나중에 편집을 되돌려 정확한 문장이 돌아오면 다음 실행에서 다시 유효 상태가 돼. 같은 문장이 다른 자리에서 딱 한 번만 발견되면 그 위치에 다시 고정하고. 증거를 수선한 것이 아니라 현실을 다시 읽어 상태를 새로 파생한 거야. 인덱스 복구와 마찬가지로 증거 레이어도 가능한 곳에서는 패치보다 재계산을 택해.