더 많이 추출해도 검색은 움직이지 않는다 — 부정 결과와, 재현되지 않은 유의성
픽스처에서 확인됐던 이득이 3,002노트 볼트에서 재현되는지 페어드 A/B로 측정했습니다. 결론은 부정이었고, 부분적으로 관측된 이득은 두 번째 독립 실행에서 유의성이 사라졌습니다. 두 결과를 모두 남기고 인용 규칙을 바꿨습니다.
- 관계 수 +17%가 만든 검색 이득 (p=0.84, 5회 반복 풀링)
- +0.1pp
- 동일 설계·동일 코퍼스 독립 2회에서 갈린 p값
- 0.038 → 0.478
지식그래프 파이프라인에는 “문장에서 사실을 얼마나 촘촘하게 뽑을 것인가”라는 설정이 있습니다. 촘촘하게 뽑는 쪽을 전면 적용한 근거는 답변 정확도 60%에서 97%로 올랐다는 이전 측정이었습니다.
그 측정은 픽스처 몇 개의 단일 문서 그래프에서 나왔습니다. 문서가 하나면 경쟁할 다른 노트가 없고, 검색 컷오프가 물지 않고, 그래프의 모든 엔티티에 도달합니다. 즉 규모 축이 없습니다. 이 기록은 그 축을 넣고 다시 잰 것입니다.
설계
노트 3,002개짜리 실제 볼트에서 페어드 A/B를 돌렸습니다. 두 조건이 같은 프로덕션 그래프 안에 있습니다. 볼트의 그래프를 격리된 임시 저장소로 가져온 뒤, 샘플된 노트의 문서 그래프만 교체합니다. 노트 본문, 키워드 색인, 임베딩, 나머지 2,690개 문서는 두 조건에서 바이트 단위로 같으므로, 차이는 그 부분그래프에서만 나올 수 있습니다.
시험 문제는 두 조건의 합집합에서 만듭니다. 문제를 어느 한쪽 조건의 그래프에서 뽑으면 그쪽은 구조적으로 정답률 상한 100%를 얻습니다. 이 저장소가 이미 한 번 빠졌던 함정이라, 문제는 두 조건의 결과를 모두 담은 제3의 저장소에서 뽑았습니다. 어느 조건도 자기 시험지를 쓰지 않습니다.
그리고 동일 조건 대조군을 함께 돌렸습니다. 같은 프롬프트로 두 번 독립 추출한 것입니다. 처치의 효과를 읽으려면 “아무것도 바꾸지 않았을 때 얼마나 움직이는가”를 알아야 하는데, 이 저장소는 그것을 한 번도 측정한 적이 없었습니다.
산문에서의 결과
| 지표 | 처치 (촘촘하게로 변경) | 대조 (같은 프롬프트 두 번) |
|---|---|---|
| 그래프가 주장한 정답 사실 | 66.0% → 67.3% (+1.3pp) | 69.3% → 66.0% (−3.3pp) |
| 검정 | 51/49, p=0.92 | 46/51, p=0.68 |
| 노트 검색 recall@10 | 89.3% → 90.0% (+0.7pp) | 91.3% → 92.7% (+1.3pp) |
처치군의 모든 수치가 대조군 잡음 대역 안에 있습니다. 처치의 +1.3pp는 같은 프롬프트를 두 번 돌렸을 때의 −3.3pp보다 작고, 검색의 +0.7pp는 대조군의 +1.3pp보다 작습니다.
추출량 자체는 실제로 늘어납니다. 노트당 관계 수가 17.0에서 18.7로 10% 증가하고, 대조군은 17.0에서 17.1로 평평하니 이 증가는 프롬프트의 진짜 효과입니다. 그런데 그 증분이 정답 사실 집합을 바꾸지 않고, 검색으로도 변환되지 않습니다. 처치가 새로 찾은 사실 51건 중 검색 승리로 바뀐 것은 1건입니다.
표에서 다시, 이번에는 5회 반복으로
산문이 부정이었으므로, 프롬프트 효과가 있다고 주장되던 표로 같은 실험을 반복했습니다.
먼저 확인한 것은 표가 많은 볼트가 존재하지 않는다는 사실입니다. 세 볼트를 전수 조사한 결과 3행 이상 표를 가진 노트는 Market에 64개, 나머지 두 볼트에 각각 0개와 1개였습니다. 표본이 아니라 모집단 전수이고, 표본 수를 늘릴 축은 노트가 아니라 반복 횟수뿐입니다.
단일 실행에서는 검색 recall이 +3.3pp로 나왔고 방향이 일관돼 보였습니다. 그러나 같은 조건 자체의 실행 간 폭이 4.7pp로 그 효과보다 컸습니다. 그래서 양쪽 조건을 각각 5회 독립 추출하고 질문별 적중률을 5회 평균한 뒤 부호검정을 적용했습니다. 590회 호출, $19.57입니다.
| 지표 | 기존 | 촘촘하게 | Δ | 부호검정 |
|---|---|---|---|---|
| 노트당 관계 수 | 22.4–23.0 | 26.4–27.1 | +17% | 5회 범위 비중첩 |
| 그래프가 주장한 정답 사실 | 26.7% | 32.4% | +5.7pp | p=0.038 |
| 노트 검색 recall@10 | 67.5% | 67.6% | +0.1pp | p=0.84 |
검정력이 붙자 두 지표가 반대로 갈렸습니다. 단일 실행의 +3.3pp 검색 이득은 잡음이었고, 반복 풀링이 그것을 +0.1pp로 되돌렸습니다.
그리고 유의성이 재현되지 않았다
같은 설계에 답변 층을 붙여 한 번 더 돌렸습니다. 답변 1,500회와 판정 1,500회입니다.
| 지표 | 실행 A (검색 전용) | 실행 B (답변 포함) |
|---|---|---|
| 그래프가 주장한 정답 사실 Δ | +5.7pp, p=0.038 | +3.9pp, p=0.478 |
| 검색 recall@10 Δ | +0.1pp, p=0.84 | +0.7pp, p=1.0000 |
동일 설계, 동일 코퍼스, 동일 표본 수의 독립 실행 두 번에서 p가 0.038과 0.478로 갈렸습니다. 방향은 두 번 다 양수이고 크기도 비슷하지만, 유의성은 재현되지 않았습니다. 0.038은 경계값이었고, 경계값이 하는 일을 정확히 했습니다.
따라서 첫 실행의 “추출 이득은 확립됐다”는 읽기가 과했습니다. 정직한 요약은 이것입니다. 방향은 일관되게 촘촘한 쪽 우세이고, 5회 반복으로는 유의성이 재현되지 않습니다.
답변 정확도도 마찬가지입니다. +4.4pp는 방향이 맞지만 p=0.298이고, 기존 조건 자체의 실행 간 폭 7.3pp 안에 들어갑니다.
확고한 결론 하나
이 실험 전체에서 흔들리지 않은 것은 하나뿐입니다. 더 많이 추출해도 노트 단위 검색은 움직이지 않습니다. 두 실행 모두 +0.1pp와 +0.7pp이고 둘 다 잡음 바닥 안입니다.
이유는 병목이 다른 곳에 있기 때문입니다. 산문에서 검색 회수율은 정답 사실 보유율보다 23pp 높습니다. 그래프가 그 사실을 주장하지 않아도 본문에 사실이 그대로 있어서 키워드와 임베딩이 노트를 상위로 올립니다. 별도 조사에서도, 상위 10위 밖으로 밀린 42건 중 39건(93%)이 이미 후보 풀 안에 있었고 실제로 없었던 것은 3건뿐이었습니다. 실볼트에서 검색이 실패하는 지배적 방식은 사실이 없어서가 아니라 위로 못 올려서입니다.
계기 결함 두 건
이 실험은 계기 자체의 결함을 두 번 만났고, 두 번 다 결과가 나온 뒤에 발견됐습니다.
모든 추출 호출이 인증 오류로 죽었는데 측정처럼 보였습니다. 프로덕션 요청 함수는 API가 아니라 사내 프록시로 가는데, 그 프록시는 사용자 토큰으로 인증하고 eval은 API 키를 보냈습니다. 첫 실행은 48개 청크가 2초 만에 전부 실패하면서 양쪽 조건 모두 “관계 0개”라는 완벽히 대칭적인 결과를 냈습니다. 망가진 계기가 취할 수 있는 가장 위험한 형태입니다. 오류를 삼키던 코드를 고쳐 첫 실패 메시지를 보존해 출력하고, 청크 실패율이 20%를 넘으면 즉시 중단하게 했습니다.
동일 조건 대조군이 애초에 없었습니다. 처치군만 보면 “촘촘한 쪽이 51개를 더 찾았다”로 읽힙니다. 그 읽기는 추출이 재현 가능할 때만 성립하는데, 그것을 잰 적이 없었습니다. 대조군을 넣자 잡음 바닥이 처치 효과보다 크다는 것이 드러났습니다.
결정
설정은 바꾸지 않았습니다. 촘촘한 쪽이 더 나쁘다는 증거는 없고, 추출량은 실제로 늘어납니다. 바뀐 것은 인용 방식입니다.
60%에서 97%라는 수치는 볼트 규모의 주장으로 인용하지 않습니다. 그것은 단일 문서 그래프에서, 픽스처 소수에 대해, 프롬프트 교체와 다른 변경이 섞인 채로 잰 답변 정확도입니다. 3,002노트 볼트에서 같은 프롬프트 대비를 노트 단위 검색으로 재면 산문은 +0.7pp이고 표는 +0.1pp입니다.
이 측정이 보여주지 않는 것
- 한계 효과이지 전역 효과가 아닙니다. 2,810개 문서 중 120개(4%)의 부분그래프만 바꿨습니다. “볼트 전체를 다른 설정으로 다시 추출하면?“은 다른 질문이고 전수 재추출이 필요합니다.
- 프로덕션은 이 프롬프트로 표를 처리하지 않습니다. 실제 파이프라인에는 표를 먼저 분류해 결정론적 코드로 적재하고 본문에서 잘라내는 단계가 있습니다. 이 하니스는 본문 전체를 프롬프트 경로로 보내므로, 표에 대한 위 수치는 상한이지 추정치가 아닙니다. 실제로는 차이가 이보다 작습니다.
- 정답 계기가 표를 구조적으로 과소표집합니다. 정답 사실 필터가 하나의 주어와 술어에 객체가 정확히 하나일 것을 요구하는데, 재무 표는 같은 지표를 분기마다 반복하므로 대부분 탈락합니다.
- 사실 조회 질문과 노트 단위 검색만 잽니다. 멀티홉과 종합 질의는 측정하지 않았습니다.
- 볼트 하나, 소유자 한 명입니다.
측정 기록
| 항목 | 값 |
|---|---|
| 실행 시점 | 2026년 7월 30일 |
| 코퍼스 | Market 볼트, 디스크상 노트 3,002개, 그래프에 경로를 보유한 문서 2,810개 |
| 산문 표본 | 노트 120개 / 525,804자 / 중앙값 3,207자 / 조건당 174청크, 질문 150개 |
| 표 표본 | 노트 59개 / 457,985자 / 표 3,482행 / 조건당 106청크 |
| 모델 | claude-sonnet-5 |
| 하니스 | src-tauri/src/tagging/qa_eval.rs::extraction_arms_vault_ab |
| 검정 | 질문 단위 부호검정, 동점 제외, 정확 이항. 반복 실행은 5회 평균 적중률 비교 |
| 총 비용 | $74.37 — OpenRouter가 실제 청구한 금액이며 토큰 곱하기 정가 추정이 아님 |
| 실패 청크 | 2,240개 중 1개 (0.04%) |
표 슬라이스는 표 8행 이상인 노트만 남기고 5회 반복을 풀링했습니다. 이 코퍼스에서 단일 실행은 두 번 다 오독을 만들었으므로, 1회만 돌리는 경우에는 동일 조건 대조를 반드시 먼저 돌려 잡음 바닥을 재야 합니다.
측정 기록 원본은 Consilience 저장소의 docs/details/extraction-arms-vault-scale-2026-07-30.md에 있습니다.
무엇을 측정한 것인가
- Consilience
세계 최초의 범용 온톨로지 OS — 마크다운 문서에서 지식그래프를 자동으로 구축하고, 그 그래프를 대상으로 에이전트가 추론합니다