본문으로 건너뛰기

전체 연구 기록

기법

더 많이 추출해도 검색은 움직이지 않는다 — 부정 결과와, 재현되지 않은 유의성

픽스처에서 확인됐던 이득이 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 — 마크다운 문서에서 지식그래프를 자동으로 구축하고, 그 그래프를 대상으로 에이전트가 추론합니다