🔍 검색 벤치 가이드 짝꿍
1 / 1
🔍

검색 벤치 — 18에서 23으로

본편 「GraphRAG 검색 원리」의 짝꿍 — 실제 24문항을 돌려 정답률을 어떻게 끌어올렸는지, 그리고 정직하게 못 잡은 1개까지.

본편에서 "다음 레버 = 더 좋은 임베딩(BGE-M3) + 정답 셋 재검토"라고 예고했었죠. 이 짝꿍은 그걸 실제로 당겨본 기록입니다. 같은 24개 질문에 답이 몇 위로 나오는지를 측정해서, 18 → 23으로 올렸습니다 — 그리고 끝까지 못 잡은 1개는 끼워맞추지 않고 정직하게 남겼습니다.
23/24정답을 상위 5위 안에
48과적합 검증용 별도 질문
1정직하게 남긴 진짜 약점
이 짝꿍에서 보는 것
  • "정답·상위 5위·속도"가 정확히 무슨 뜻인지
  • 같은 질문을 기본 검색 vs GraphRAG로 돌리면 얼마나 다른지 (0 · 7 · 23)
  • 18을 23으로 올린 3단계 — 그리고 점수 부풀리기를 안 했다는 증거
  • 순위도 없는 기본 검색이 그래도 꽤 먹히는 이유 (우리 볼트 구조)
용어

먼저 — 용어 3개만

표와 막대를 보기 전에, 딱 3개만 알면 됩니다. 어렵지 않아요.

🎯 ① 정답(gold)

질문마다 "이 문서가 나와야 한다"고 미리 정해둔 핵심 문서입니다. 대부분 주제별 목차(MOC) 문서예요. 검색 결과에 이게 뜨면 정답.

예) "MCP" → 정답: MCP-생태계-현재와-미래-MOC
🏅 ② 상위 5위 안 (hit@5)

검색 결과 목록의 맨 위 5개 안에 정답이 들어왔는가. 사람은 보통 위 5개만 보니까, "위 5개 안에 정답이 있나"가 실질 성공 기준입니다. 23/24는 24문항 중 23개에서 정답이 상위 5위 안에 들어왔다는 뜻.

정답이 3위 → 상위 5위 안 ✓ / 357위 → 실패 ✗
⏱️ ③ 속도

질문 하나에 답을 찾기까지 걸린 시간(밀리초, 1000ms=1초). 같은 질문을 3번 돌려 가운데값(중앙값)을 씁니다.

이 세 개만 들고 있으면 다음 장의 막대·표가 전부 읽힙니다.
눈으로 비교

같은 24문항 — 0 · 7 · 23

똑같은 24개 질문을 두 방식으로 돌렸습니다. 막대는 "정답을 상위 5위 안에 올린 개수"입니다.

기본 검색그냥 검색어만
0
기본 검색 + 구조파일명·태그 활용
7
GraphRAG · 개선 전기존 모델(MiniLM)
18
GraphRAG · 개선 후새 모델(bge-m3)
23
🔎 기본 검색은 왜 0인가?

옵시디언 기본 검색은 'MCP'라는 글자가 든 곳을 전부 찾아주지만 — "어느 게 더 관련 있나"를 판단하지 않습니다(순위가 없음). 그래서 흔한 단어일수록 정답이 묻혀요. 실제로 "MCP" 검색 = 1,279개 결과가 나오는데 정답은 357위에 묻혔습니다. '찾아지냐'는 되지만 '정답이 위로 오느냐'가 안 되는 거죠.

비유: 기본 검색은 'MCP'가 적힌 모든 카드를 책상에 쏟아내는 사서입니다 — 1,279장을 그냥 쌓아만 줘요. GraphRAG는 그 카드들을 "질문과 얼마나 관련 있나"로 줄 세워 맨 위 5장을 건네는 사서입니다.

공정하게: 기본 검색이 나쁜 도구라는 게 아닙니다. 파일명·태그를 정확히 알 때는 즉시 여는 1급 도구예요(구조를 활용하면 7개까지). 다만 "그게 어디 있더라" 같은 의미·막연한 질문엔 약합니다. 우열이 아니라 용도예요.

핵심

18 → 23, 어떻게 올렸나

설정값(채널 가중치)만으로는 18이 천장이었습니다. 검색 엔진의 핵심 부품(의미 모델)을 더 똑똑한 것으로 교체하고, 벤치 정답 자체의 오류를 바로잡으니 23까지 올랐어요. 세 단계로:

① 18 → 20

더 똑똑한 의미 모델

의미를 좌표로 바꾸는 모델을 옛것(MiniLM)에서 한국어·다국어에 강한 새 모델 bge-m3로 교체하고 채널 합산 방식을 손봤습니다. 검색 자체가 18→20.

② 과적합 아님

전혀 다른 48문항으로도 검증

"24문항에만 맞춘 꼼수 아니냐"를 막으려고, 겹치지 않는 48개 독립 질문으로도 측정했습니다 → 9 → 15 동반 상승, 하나도 안 깎임. 특정 문제집 답을 외운 게 아니라 전체 실력이 늘었다는 증거.

③ 20 → 23

틀린 건 검색이 아니라 정답이었다

원래 '놓침' 6개 중 3개(Q07·Q08·Q21)는 검색이 더 나은 노트를 1위로 올렸는데 우리가 적어둔 정답이 좁았던 것. 정답 정의를 바로잡으니 23.

🎯 정직하게 — 남은 1개(Q09): 'Anthropic 안전연구' 질문은 옳은 노트(Claude-Mythos-RSP-안전평가)를 정답에 추가해도 여전히 상위 5위에 못 올렸습니다 = 진짜 검색 약점. 정답을 끼워맞춰 24로 만들 수도 있었지만, 1개는 정직하게 miss로 남겼습니다 — 점수 부풀리기를 하지 않았다는 증거예요. (이게 23/24를 믿을 수 있는 핵심입니다.)
⚖️ 속도는 trade-off

새 모델이 더 무거워서 속도는 조금 느려집니다(테스트 측정 약 0.15초 → 0.23초). 정확도(18→23)를 위해 속도를 조금 내준 셈 — 그래도 0.23초라 체감은 어렵습니다.

라이브 반영: 이 엔진은 실제 검색에 이미 켜져 동작 중입니다(되돌리기 준비 완비 후 적용). 위는 전부 측정값.
공정성

기본 검색은 왜 '그래도' 먹히나

순위도 없는 기본 검색이 24문항 중 7개나 잡는 건 도구가 좋아서가 아니라, 우리가 노트를 구조적으로 잘 정리해뒀기 때문입니다. 4가지 구조가 받쳐줘요 — 전부 실측.

📛 ① 파일명이 주제를 담는다

노트 이름에 핵심 주제어를 그대로 넣는 규율(예: MCP-생태계-MOC·GraphRAG-Theory-MOC). 그래서 결과를 '파일명에 질문어가 든 것' 우선으로 다시 줄 세우면 정답이 위로 올라옵니다.

🏷️ ② frontmatter 별칭·태그

노트 윗부분에 영문/한글 별칭(aliases)과 태그를 달아둡니다. 영어로 검색해도 한글 노트가, 한글로 검색해도 영문 개념이 걸려요. ("MCP" 노트 별칭 = "Model Context Protocol" 등.)

🗂️ ③ MOC 목차 허브 · 🔗 ④ wikilink 그물

주제마다 'MOC' 목차 노트를 둬 관련 문서를 모으고, 노트끼리 촘촘히 링크로 엮습니다. 그래서 "이 노트로 뭐가 연결됐나"를 즉시 답할 수 있어요 — 이건 기본 검색(CLI)이 GraphRAG보다 오히려 잘하는 영역입니다.

정리: 기본 검색의 약점(순위 없음)은 우리 볼트의 구조 규율(작명·별칭·MOC·링크)이 상당 부분 메웁니다. 단순 조회·구조 질문엔 즉답, "그게 어디 있더라" 의미 질문은 GraphRAG가 필요 — 그래서 둘은 경쟁이 아니라 상보입니다.

마무리

한 장 요약

한 줄: 더 똑똑한 의미 모델 + 정직한 정답 교정으로 18 → 23/24. 24문항에만 맞춘 게 아니라 별도 48문항에서도 9→15로 동반 상승(과적합 아님). 못 잡은 1개는 정직하게 남김.

무엇을 쟀나 — 같은 24개 질문에 정답이 상위 5위 안에 들어오는 비율. 사람이 실제로 보는 건 위 몇 개니까요.

왜 올랐나 — ① 의미 모델 교체(bge-m3) ② 별도 48문항 검증(과적합 차단) ③ 잘못 적은 정답 교정. 셋이 합쳐 23.

왜 믿나 — 끝까지 못 잡은 1개(Q09)를 끼워맞추지 않고 남겼습니다. 24가 아니라 정직한 23인 이유.

기본 검색과의 관계 — 우열이 아니라 용도. 정확히 알면 기본 검색, "그게 어디 있더라"는 GraphRAG.

🔍 검색 벤치 — 18에서 23으로 · 본편 「GraphRAG 검색 원리」의 짝꿍
근거 raw: gr_goldfix_24q.json(개선 후 23/24·mrr 0.81) · broadval-48q(광범위 9→15) · 측정 = 라이브 서버 24문항×3회