Executive Summary

물려받은 데이터 창고에는 이름이 뜻을 말해 주지 않는 열이 많습니다. 그런 열을 이름도 문서도 없이 값만 보고 되짚어 본 실험이 2026년 8월 8일 arXiv에 올라왔습니다. 미국의 독립 연구자 마이크 헬윅이 만든 로제타는 언어모델을 검증 장치 안에 가둬 두고, 증거가 있는 자리에서만 말하게 합니다.

식별자를 지운 BIRD 11개 데이터베이스의 680개 열을 사람이 쓴 문서와 대조한 결과, 로제타는 42%의 열에만 답하고 그 답에서 0.475를 받았습니다. 같은 모델을 검증 장치 없이 쓰면 94%에 답하고 0.223이었습니다. 그런데 양쪽이 모두 답한 283개 열만 떼어 놓고 보면 로제타의 서술이 더 낫지 않았고, 세 항목 중 둘에서는 오히려 조금 나빴습니다. 오른 것은 서술 실력이 아니라 답할 자리를 고르는 판단이었습니다.

저자는 이 결론을 스스로 한 문장으로 적었습니다. 결정론적 계층은 실력을 키우는 장치가 아니라 실력을 재는 장치라는 것입니다. 카탈로그를 100% 채우는 자동 문서화와 42%만 채우고 나머지를 비워 두는 카탈로그 중 무엇을 계약으로 쓸 것인지가 이 논문이 실무에 남기는 질문입니다.

주요 수치

네 숫자 중 앞의 둘은 BIRD 680개 열 실험에서, 뒤의 둘은 임상 창고와 모순 서술 집계에서 나왔습니다. 정확도라고 적은 값은 사람이 쓴 문서와 겹치는 내용어의 비율이며, 논문은 열 이름 확장과 설명, 값 도메인 세 항목을 따로 잽니다. 아래 0.223과 0.475는 그중 열 이름 확장 항목의 값입니다.

출처: arXiv:2608.07946 5.1절·5.2절·5.3절·5.4절

0.223 → 0.475

답한 열의 이름 복원 정확도

대신 답한 열의 비율은 94%에서 42%로 내려갔습니다

0.550 / 0.293

구조적 증거가 있을 때와 없을 때의 응답률

같은 시스템 안에서 갈린 값이고, 서술 품질 차이는 통계적으로 잡히지 않았습니다

95.5%

값만으로 해독한 ICD-9 코드

실제 코드 134개 기준이며, NDC 약제 코드 44개는 전부 기권했습니다

8.3 / 15.0

열 100개당 나온 모순 서술

로제타와 모델 단독의 비교이며, 55%를 기권해서 줄어든 값입니다

1

실제 창고에는 이름도 문서도 없다

논문은 학계의 전제를 먼저 겨눕니다. Spider와 BIRD 같은 text-to-SQL 벤치마크는 테이블과 열에 사람이 읽을 수 있는 이름이 붙어 있고 외래키가 선언돼 있는 데이터베이스를 내놓습니다. 그 전제 위에서 남는 문제는 번역이고, 최근 모델은 번역을 꽤 잘합니다. 실제 창고는 반대편에 있습니다. 수십 년의 퇴적을 거친 이름들이 정돈된 데이터 마트 옆에 그대로 남아 있고, 문서는 부분적이거나 오래됐거나 아예 없습니다. 논문이 예로 드는 열 이름은 pms_legacy.t_resv.amt_minor 하나로 충분합니다.

그래서 저자는 번역보다 앞선 문제를 실험 대상으로 삼습니다. 데이터 자체에서 열과 값이 무엇을 뜻하는지 되찾는 일입니다. 측정 방식은 단순하고 가혹합니다. BIRD의 11개 데이터베이스에서 테이블과 열 식별자를 최대 강도로 뭉개 시스템이 t3.c0 같은 이름만 보게 만든 다음, 복원 결과를 그 데이터베이스를 만든 사람들이 써 둔 문서와 대조합니다. 정답은 다른 사람이 썼고 저자가 손대지 않았습니다.

이름이 있던 자리, 이름이 사라진 자리 문서화된 스키마 pms_legacy.t_resv .amt_minor 예약 금액(소수 단위) 최대 강도로 뭉갬 복원 전 입력 t3.c0 이름·문서 없음 로제타: 값만 보고 의미 복원 → 사람이 쓴 문서와 대조
▲ 실험은 이름과 문서를 지운 자리에서 값만으로 되짚어 가는 절차다 | 페블러스 원본 도식

비교 대상은 세 갈래입니다. 언어모델을 전혀 쓰지 않는 통계적 의미 타입 탐지, 열과 그 값을 그대로 보여 준 언어모델, 그리고 검증 장치 안에 언어모델을 넣은 로제타입니다. 셋은 같은 입력을 받고, 680개 열에서 짝을 맞춰 채점됩니다. 점수는 열 이름 확장과 설명 문장, 값 도메인 세 항목으로 나뉘어 매겨집니다.

이 설정이 실무에 닿는 지점은 분명합니다. 사내 데이터에 자연어로 질문하는 도구를 붙일 때 실패의 진짜 원인은 SQL 생성 능력이 아니라 스키마가 무엇을 뜻하는지 아무도 적어 두지 않았다는 사실인 경우가 많습니다. 질문에 맞는 열을 고르는 단계에서 이미 절반이 무너진다는 관측은 페블러스가 에이전트가 연구 질문에 맞는 열을 절반도 못 찾는다는 OADD-Bench 결과에서 다룬 적이 있습니다. 논문은 그 공백을 문서화 과제가 아니라 측정 가능한 복원 문제로 옮겨 놓습니다.

2

증거를 먼저 만들고 모델은 그 위에서만 말한다

로제타의 설계는 언어모델에게 열의 뜻을 물어보는 구조가 아닙니다. 결정론적 프로파일러가 먼저 구조적 증거를 만들고, 모델은 그 증거를 조건으로 삼아 의미를 제안하며, 만들어진 모든 사실에는 출처와 증거 등급에 따라 상한이 걸린 신뢰도가 붙습니다. 프로파일러는 값싸고 확실한 증거부터 소진한 뒤에야 비싸고 불확실한 쪽을 부릅니다.

  • 구조 지문. 열마다 최대 5,000개 값을 표본으로 길이 분포, 문자 종류 비율, 구분자와 대소문자 형태, 앞뒤 공통 접두사와 접미사, 문자당 엔트로피, 수치 요약, 벤포드 첫자리 분포, 단조 증가 여부, 카디널리티를 계산합니다. 언어모델은 여기에 관여하지 않습니다.
  • 패턴 라이브러리. 변형을 세면 26종에 이르는 패턴 명세가 지문 위에서 작동합니다. 값이 체크섬을 통과하면 신뢰도가 0.95 이상으로 올라가고, 정규식만 맞으면 0.85, 지문 휴리스틱만 맞으면 0.70에서 멈춥니다. 체크섬 검증기는 Luhn, ISBN-10과 13, EAN-13, UPC-A, IBAN mod-97, mod-11을 구현합니다.
  • 규칙 검증 명명기. 어떤 패턴도 걸리지 않는 진짜 암호 같은 열에서만 언어모델이 등장합니다. 모델은 패턴 이름과 의미 타입, 그리고 검증용 정규식을 한 벌로 제안하고, 그 정규식이 실제로 컴파일되며 표본 값의 90% 이상을 통째로 맞혀야 채택됩니다. 모델은 일치를 선언할 권한이 없고 가설만 낼 수 있습니다.

이렇게 모인 증거는 여덟 단계의 권위 사다리로 번역됩니다. 프로필만 보고 모델이 추론한 의미는 신뢰도 상한 0.50에서 멈추고, 알려진 형태에 맞으면 0.60, 체크섬으로 뒷받침되면 0.85, 사람이 명시적으로 확인해 주면 1.00까지 올라갑니다. 상한은 모델이 스스로 얼마나 확신하든 상관없이 걸립니다. 흥미로운 설계는 체크섬 등급을 문서 인용 등급보다 일부러 낮게 둔 부분입니다. 체크섬은 값이 어떤 종류인지 증명할 뿐 이 열이 무엇을 위한 열인지까지 증명하지는 못하기 때문입니다.

아래 도식은 이 순서를 한 장에 옮긴 것입니다. 왼쪽에서 값 표본이 들어오고, 언어모델이 등장하기 전에 증거와 신뢰 상한이 먼저 정해지며, 발언과 기권은 맨 아래에서 갈립니다. 점선으로 그린 커밋 게이트만 처음 출고된 시스템에 없던 장치입니다. 저자가 왜 그것을 나중에 덧붙여야 했는지는 다음 절의 실험이 설명합니다.

증거가 먼저, 발언은 그다음 열 값 표본 열마다 최대 5,000개 결정론적 프로파일러 구조 지문: 길이·엔트로피·벤포드 패턴 라이브러리 26종 체크섬: Luhn·IBAN·ISBN·EAN 언어모델 없음 증거 등급과 신뢰 상한 추론만 0.50 · 형태 일치 0.60 · 체크섬 0.85 언어모델의 제안 증거를 조건으로 의미를 적는다 커밋 게이트: 증거 등급을 코드로 확인 발언: 출처와 신뢰 상한을 붙여 기록 기권: 빈칸이 아니라 기권 기록
▲ 값싸고 확실한 증거를 먼저 소진한 뒤에야 모델이 등장한다 | 페블러스 원본 도식

기권한 자리를 빈칸으로 두지 않는 점도 이 설계의 일부입니다. 증거가 부족해 말하지 않기로 하면 시스템은 표준화된 기권 기록을 남깁니다. 소비하는 쪽이 빈칸을 주장으로 오해할 수 없게 만든 조치입니다. 논문에 적힌 실행 비용은 약 105M 토큰과 55,000회 호출에 281달러로, 복원한 열 하나당 0.0027달러 수준입니다.

3

정확도를 올린 것은 기권이었다

세 갈래를 나란히 놓은 표가 이 논문의 출발점입니다. 언어모델을 쓰지 않는 통계적 탐지는 모든 열에 답하지만 점수가 거의 0에 가깝고, 언어모델은 두 갈래 모두 그 기준선을 크게 앞섭니다. 다만 모델 단독과 로제타 사이는 깔끔하게 갈리지 않습니다.

방법 답한 열 비율 이름 확장 설명 값 도메인
통계적 탐지 (언어모델 없음) 1.000 0.011 0.061 0.030
언어모델 단독 0.941 0.223 0.244 0.205
로제타 (검증 장치 안의 모델) 0.422 0.475 0.330 0.292

정리: 페블러스. arXiv:2608.07946 5.1절의 680개 열 결과입니다. 식별자를 최대 강도로 지운 BIRD 11개 미니 개발 데이터베이스이며, 점수는 사람이 쓴 문서와 겹치는 내용어의 비율입니다. 백본은 Gemini 3.1 Pro입니다.

이 점수가 결국 단어 겹침을 세는 방식이라는 점은 저자도 약점으로 봅니다. 그래서 지표를 주장하는 대신 검증합니다. 눈을 가린 심사자가 180건을 따로 판정한 결과는 토큰 지표와 스피어만 0.642로 같은 방향을 가리켰고, 다른 계열 모델로 세운 2차 평가자도 그 심사자와 0.737의 일치도를 보였습니다. 길게 쓰면 점수가 오르는 것 아니냐는 의심도 확인 대상이었습니다. 로제타는 주장 하나당 내용어 17.4개로 모델 단독의 19.6개보다 짧게 쓰면서 더 많이 맞혔습니다.

저자는 여기서 멈추지 않고 격차의 정체를 찾아 들어갑니다. 두 갈래가 모두 답한 283개 열만 남기면 질문 자체가 같아지므로 남는 차이는 서술뿐입니다. 그 조건에서 로제타는 모델 단독보다 나은 글을 쓰지 못했고, 세 항목 중 둘에서는 오히려 조금 뒤졌습니다. 눈을 가린 심사자도 같은 방향으로 판정했습니다.

그다음 검증이 이 논문의 중심입니다. 680개 열의 결정론적 증거를 언어모델 없이 다시 계산해 보니 342개 열에는 구조적 증거가 있고 338개 열에는 없었습니다. 증거가 있는 열에서 로제타의 응답률은 0.550, 없는 열에서는 0.293으로 그 격차가 0.257이고 신뢰구간이 0을 넘지 않습니다. 반면 증거가 서술 품질을 끌어올렸는지 물으면 효과가 잡히지 않습니다. 증거를 아예 보지 못하는 모델 단독은 응답률이 0.980에서 0.902로 거의 움직이지 않습니다. 결정론적 계층은 능력을 키우는 증폭기가 아니라 능력을 알아보는 탐지기라는 저자의 문장이 여기서 나옵니다.

증거가 있느냐가 말하느냐를 갈랐다 구조적 증거 있음 342개 열 0.550 구조적 증거 없음 338개 열 0.293 격차 0.257 [0.128, 0.378] 같은 조건에서 서술 품질 차이는 잡히지 않았습니다 백본을 Claude Sonnet 4.6으로 바꾸면 응답률이 0.422에서 0.823으로 뛰고, 같은 격차는 마이너스 0.089로 흩어져 더는 검출되지 않습니다.
▲ 프롬프트로 부탁한 기권은 백본이 바뀌면 따라오지 않았다 | 페블러스 원본 도식

백본 교체 실험은 이 주장의 한계를 스스로 그어 놓습니다. 채점기와 프롬프트와 프로파일러를 그대로 두고 모델만 Claude Sonnet 4.6으로 바꾸자, 서술에 관한 결론은 거의 그대로 재현됐지만 선택 행동은 따라오지 않았습니다. 응답률이 0.422에서 0.823으로 뛰었고 증거를 따라가던 격차는 흩어졌습니다. 원인은 구조적입니다. 출고된 시스템은 기권을 프롬프트로 부탁했을 뿐 코드로 강제하지 않았고, 그래서 추측하기를 좋아하는 모델은 그냥 추측했습니다.

마지막 실험이 그 구멍을 막습니다. 증거 등급을 코드로 확인하는 커밋 게이트를 모든 기록 경로가 지나는 길목에 두자, 증거 없는 열의 응답률은 세 백본 모두에서 0.000이 됐습니다. 대가도 함께 보고됩니다. 백본에 따라 99개에서 295개의 주장이 철회됐고 그중에는 맞는 주장도 있었습니다. 다만 말한 것들의 정확도는 떨어지지 않았습니다. 추측이 많던 백본에서는 철회된 쪽이 남은 쪽보다 점수가 낮아, 게이트가 걷어 낸 것이 대체로 근거 없는 추측이었음을 보여 줍니다.

실무로 옮기면 한 줄로 줄어듭니다. 모델에게 모르면 말하지 말라고 부탁하는 것과, 증거가 없으면 쓰지 못하게 코드로 막는 것은 다른 일입니다. 앞의 것은 모델을 바꾸는 순간 사라지고 뒤의 것은 남습니다.

4

카탈로그를 무엇으로 계약할 것인가

기권이 실제로 무엇을 지키는지는 임상 데이터에서 가장 선명합니다. 저자는 디코더를 감춘 i2b2 임상 창고 75개 열을 복원하고, 사실 테이블의 코드 열을 외부에서 해독한 정답과 대조했습니다. 시스템은 값만 보고 이 열이 진단용 ICD-9와 약제용 NDC 접두어를 함께 싣고 있다는 사실을 알아냅니다. 처음 만든 설명문은 코드 하나하나의 뜻까지 담지 못했는데, 저자는 그것이 애초에 설명문에 시키지 않은 과제였다고 적고 나서 제대로 시킨 뒤 다시 잽니다. 디코드 표를 요구하자 같은 기계가 실제 ICD-9 코드 134개 중 95.5%를 값만으로 풀어냈고, NDC 약제 코드 44개는 접두어가 붙어 있을 때 44개 전부를 기권했습니다.

기권의 선이 어디에 그어졌는지가 중요합니다. ICD-9처럼 공개된 조합형 코드 체계는 값의 구조만으로도 해독을 시도할 자격이 있고, NDC처럼 등록 기관이 임의로 부여한 키는 그렇지 않습니다. 시스템은 값 단위로 자신이 어떤 코드 체계를 해독할 처지에 있는지 판단합니다. 외래키 복원에서도 같은 태도가 나옵니다. 이름은 남기고 외래키 선언만 지운 조건에서 정답 간선 103개 중 49개만 제안했지만 그 49개의 정밀도는 1.000이었고, 식별자까지 뭉갠 조건에서는 아예 한 개도 제안하지 않았습니다. 거짓 조인은 한 건도 만들지 않았습니다. 복원 단위를 열에서 테이블로 올려도 태도는 같습니다. 식별자를 전부 지운 67개 테이블에서 네 곳 중 세 곳은 이름을 맞혔고, 말하기로 한 55개 테이블 가운데 50개에서 그 테이블이 무엇을 담는지까지 짚었습니다.

복원한 카탈로그가 질의 시점에 무엇을 하는지도 측정됐습니다. 스키마를 완전히 가린 Spider 실험에서 그냥 번역하는 쪽은 실행 정확도가 0.92에서 0.42로 무너집니다. 절반 이상이 조용히 틀린 답으로 돌아온다는 뜻입니다. 같은 조건에서 로제타의 게이트는 커버리지 59%에서 정확도 86%를 유지하며, 답하지 않기로 한 질문이 실제로 어려운 질문 쪽에 몰립니다.

번역만 하면 무너지고, 게이트는 버틴다 스키마 노출 (기준) 실행 정확도 0.92 스키마 은닉 · 그냥 번역 정확도 붕괴 0.42 로제타 게이트 · 커버리지 59% 정확도 유지 0.86 답하지 않은 41%는 실제로 어려운 질문 쪽에 몰렸습니다.
▲ 그냥 번역은 정확도로 값을 치르고, 게이트는 커버리지로 값을 치른다 | 페블러스 원본 도식

가장 실무적인 숫자는 모순 서술 집계입니다. 열 100개를 살펴볼 때 모델 단독은 정답 문서와 어긋나는 서술을 15.0개 내놓고 로제타는 8.3개를 내놓습니다. 55%를 기권했기 때문입니다. 저자는 여기에 반대편 숫자도 함께 적습니다. 표본에서 말하기로 한 것만 놓고 보면 로제타 쪽이 오히려 조금 더 자주 어긋났습니다.

자기에게 불리한 이 숫자를 저자는 표본에 남겨 두지 않고 전수로 다시 쟀습니다. 같은 기준으로 11개 데이터베이스의 공통 열 574개, 주장 776건을 모두 다시 판정했습니다. 말할 때의 어긋남은 로제타 9.6%와 모델 단독 8.0%로 좁혀졌고, 차이의 신뢰구간이 0을 걸쳐 두 갈래를 구분할 수 없었습니다. 반면 열 100개당 집계는 4.01개와 7.49개로 갈렸고 이쪽 차이의 신뢰구간은 0을 넘지 않습니다. 표본에서 보이던 열세는 힘을 갖춘 재판정에서 사라졌고 총량의 격차만 남았습니다. 기권은 말할 때를 더 정확하게 만들지 않고, 전체로 내보내는 거짓말의 총량을 줄입니다.

논문의 정직성은 자기 설계를 부정하는 대목에서 드러납니다. 저자는 세 갈래 분석을 근거로 자신이 만든 권위 사다리가 이 결과를 만든 메커니즘이 아니라고 적습니다. 실제로 일한 것은 실행 근거와 결정론적 임계값이며, 사다리가 남기는 것은 정확도가 아니라 감사 가능성입니다. 680개 BIRD 열과 75개 임상 열을 통틀어 체크섬으로 뒷받침된 일치가 한 건도 나오지 않아 사다리의 윗단은 아직 시험되지 않은 채로 남아 있다는 사실도 함께 적혀 있습니다.

불리한 보고는 더 있습니다. 장난감처럼 단순한 Spider 스키마에서는 값싼 기준선 하나가 로제타의 게이트와 같은 성적을 냅니다. 범용 신호로 학습한 셀렉터는 저자가 만든 권위 점수보다 순위와 캘리브레이션이 좋았고, 권위 점수는 판단에 보탤 몫이 없었습니다. 저자가 다는 단서는 하나입니다. 그 셀렉터는 실행 라벨을 먹고 자라는데, 문서 없는 창고에는 실행 라벨이 없습니다. 이전 Spider 실험의 채점 장치에 있던 버그를 스스로 찾아 고치고 더 큰 규모로 다시 돌린 뒤에야 강한 주장을 했다는 기록도 논문 안에 있습니다. 열을 먼저 복원해 두면 테이블 복원이 쉬워지리라던 설계 가설 역시 지지되지 않았습니다.

데이터 품질을 다뤄 온 쪽에서 이 논문을 읽으면 계약의 문제로 보입니다. 카탈로그를 100% 채운 자동 문서화는 완성도라는 지표에서는 이기지만, 감사에서 어느 항목이 근거 있는 항목인지 가려낼 방법을 남기지 않습니다. 42%만 채우고 나머지를 기권 기록으로 비워 둔 카탈로그는 채워진 칸마다 왜 그렇게 적었는지 답할 수 있습니다. 페블러스가 모델이 아니라 데이터가 먼저다에서 다룬 준비도 논의, 그리고 다운스트림 코드를 읽어 데이터 검증 규칙을 만드는 PrismaDV가 짚은 헛경보 문제가 같은 축에서 만납니다. 규칙을 더 많이 만드는 일과 어디서 멈출지 정하는 일은 다른 작업입니다.

오늘 확인해 볼 수 있는 것은 세 가지입니다.

  • 지금 쓰는 카탈로그에서 자동 생성된 설명과 사람이 쓴 설명을 구분할 수 있습니까. 구분되지 않으면 감사에서 둘의 신뢰도가 같이 떨어집니다.
  • 비어 있는 칸과 기권한 칸이 다르게 기록되고 있습니까. 빈칸은 아직 안 한 일이고 기권은 근거가 없다는 판정인데, 소비하는 쪽이 둘을 구별하지 못하면 판정이 사라집니다.
  • 모르면 답하지 말라는 지침이 프롬프트에 있습니까, 코드에 있습니까. 모델을 교체하는 날 사라지는 안전장치라면 지금 세어 두는 편이 낫습니다.

Editor's Note: 페블러스가 데이터 품질 현장에서 자주 보는 상황은 메타데이터가 없는 상태가 아니라, 누가 언제 무슨 근거로 적었는지 알 수 없는 메타데이터가 가득한 상태입니다. 이 논문의 수치는 그 상태의 비용을 한 줄로 보여 줍니다. 열 100개당 15개의 어긋난 서술을 담은 카탈로그와 8.3개를 담은 카탈로그의 차이는 문서화 기술이 아니라 어디서 멈출지 정하는 규율에서 나왔습니다.

R

참고문헌