김범진(데이터 처리) 메모 — 목차

이 폴더의 진입점. 규칙 둘: ① 주제마다 문서 하나. ② 값은 정본에서만 고치고 나머지는 링크로 넘긴다.

뭘 알고 싶으신가요

궁금한 것여기로
질문 하나가 답이 되기까지 무슨 일이 일어나나쿼리 파이프라인
어떤 질문이 어느 갈래로 가나라우터 5분기 판정 흐름 🖼
지금 검색이 어떤 상태인가 · 뭘 채택했나검색 실험 결과 (4모델·BM25)
실험이 뭘 기준으로 재는 건가 (파이프라인·정답지·지표·통제)검색 실험 설계 (4모델·BM25) ← 측정 조건 정본
어떤 모델·변형을 놓고 비교하나 (M0/M1/M2, C~G)검색 실험 설계 (4모델·BM25) §6~§8
정답지가 공정한가 · 라벨을 어떻게 늘렸나검색 실험 결과 (4모델·BM25) §8
실험하다 뭘 틀렸고 어떻게 알았나검색 실험 결과 (4모델·BM25) 2부
평가 기준(정답지)이 어떻게 만들어졌나골든셋
MRR·BM25·리랭커가 뭔지 모르겠다개념 색인
웹 화면이 어디까지 붙었나BidMate 웹 연동 현황

검색 실험 — 문서 둘

검색 실험 문서는 설계 / 결과 둘뿐이다.

검색 실험 설계    고정·변수·비교쌍·가설·3단계 순서   ← 조건이 헷갈리면 여기
      ↓
검색 실험 결과    판정표 + 근거 + 바로잡은 것 4건    ← 결론은 여기, 경위는 2부

실험은 3단계로 갔다후보 구성 → 리랭커 → 임베딩. 리랭커·임베딩은 후보 안에 든 것만 다루므로 아래층이 바뀌면 위층 판정이 다시 열리는데, 1단계에서 후보가 C(dense 단독)로 확정되어 위층 조건이 그대로다. 세 판정 모두 최종검색 실험 설계 (4모델·BM25) §8-1

문서답하는 것상태
검색 실험 설계 (4모델·BM25)파이프라인·전제 · 정답지(v5) · 지표 · 실험 대상(M0M2, R1·R2, CG) · 통제 조건★ 조건 정본
검색 실험 결과 (4모델·BM25)판정표 · 프로덕션 반영 상태 · 실험하며 바로잡은 것 4건★ 판정 정본
골든셋40→200 확장 설계 · 라운드별 성적 (라벨링 성적 정본)현행
골든셋 200문항 제작200문항을 실제로 어떻게 뽑았나 · 버전 이력(v3→v4→v5)현행
검색 실험 골든셋 40문항첫 40문항 라벨링·감사 · 문항 전체 목록 + 실패 4건 분석사료 (수치 인용 금지)
검색 개선 스토리보드 🖼골든셋 40 → 청킹 → 메타 → BM25 인과 서사사료

“1차·2차” 구분은 버렸다. 전수로 다시 재면서 그 구분이 의미를 잃었고, 옛 수치 상당수가 무효다.

이전에는 검색 문서가 여섯이었다(검색 개선 · 검색 실험 계획/결과 (164문항) · 검색 2차 실험 · 정답지 편향 제거 · 검색 실험 골든셋 40문항). 2026-07-29에 둘로 재편하고 나머지는 _archive/로 내렸다 — 배너를 붙여뒀으니 사료로만 읽을 것.


그 밖의 문서

파이프라인

문서답하는 것
쿼리 파이프라인검색이 왜 2번 일어나나, chunks vs doc_cards, run_turn 5분기, 잔여 백로그
라우터 5분기 판정 흐름 🖼질문이 어느 분기로 가고 왜 갈리는가 (라우터 정본)

인덱스 품질

문서답하는 것
청킹 표 처리 수정 (Phase 11) 🖼표 깨짐·섹션 뭉개짐 원인 3개와 수정, 재인덱싱
인덱스 데이터 손상 진단고유번호 유실·중복 청크 등 손상 7종과 우선순위

제품 · 기타

문서답하는 것
BidMate 웹 연동 현황프론트-백엔드 연동 상태, 블록된 화면 3개
BidMate 실제 웹 플로우 🖼실기동 스크린샷 12장으로 본 전체 플로우
작업 화면 개편 실험목록+채팅 한 화면 개편 실측 (동작 정본)
작업 화면 개편 실험 (요약) 🖼위 문서를 스크린샷 4장 + 발견 4개로 압축
유저 플로우 🖼BidMate UX 설계 + RFP 추천 초기 브레인스토밍
참가자격 매칭 구조 정리 🖼전재완 Eligibility — 추출·매칭 구조와 미해결 5건
참가자격 판정 — 지금 vs 제안 🖼판정을 “개수 세기 → 종류 보기”로 바꾸자는 제안
팀 초기 기록역할 분담 회의(07-22) + 인프라 구상. 사료
팀 인프라 초기 구상 🖼브랜치·VM·스토리지 초기 스케치(07-20)

개념 (별도 폴더)

검색 캐시의 dense_doc / dense_full / bm25 구분은 후보 캐시에 있다.

용어가 막히면 개념 색인. 16개 노트가 개념/에 있다 — MRR · nDCG · Recall과 hit rate · BM25 · Dense 검색 · RRF · 하이브리드 검색 · 크로스인코더 리랭커 · 임베딩 · 청크와 chunk_id · 골든셋 · 재현율과 정밀도 · 지표 포화 · 후보 캐시 · 상·하한 채점 · paired bootstrap

🖼 = 캔버스(다이어그램). 배치와 연결선 자체가 정보라 md로 옮기지 않고 남겼다.


숫자 기준표 — 헷갈릴 때 여기부터

설명
원본 RFP 문서100프로젝트 개요 기준
chunks 컬렉션30,002청크 / 99문서추출 실패 1건 제외. data/chroma_v2
doc_cards 컬렉션100실패 문서도 카드는 있음
구 인덱스28,293청크data/chroma낡음. 이 수가 보이면 갱신 안 된 서술
문서당 청크중앙값 280 / 최대 794
골든셋 전체200문항v5 — 전체 풀링 라벨링 반영본. 그 전이 v4_20260729(v3에서 라벨 변경 없이 파일만 분리)
채점 성립 문항164200 − 모른다 15 − 반문 15 − 빈 정답 6
정답 청크 (v5)연인원 353v4의 310 + 신규 42 + 검증 추가 1 → 검색 실험 결과 (4모델·BM25) §8
판정 풀 (v5)8,856문항당 41.2 → 54.0. 미판정률 전 조합 0.0%
정답 청크 (v4)연인원 310 / 고유 253옛 수치. v4 기준 성적표를 읽을 때만 쓴다
유형 분포 (200 기준)단일세부 90 · 후속 30 · 탐색비교 25 · 직답 25 · 모른다 15 · 반문 15
유형 분포 (채점 164 기준)단일세부 90 · 후속 29 · 탐색비교 25 · 직답 20실험 수치는 이쪽이다. 후속 1 · 직답 5가 gold 없음
정답지 검증170문항 완료rest130 130 + pilot40 40
골든셋 v5 위치로컬 산출물VM current는 아직 v4_20260729를 가리킨다
36 · 40 · 42문항옛 모수. 지금 정본은 164. _archive/ 문서에 남아 있다

골든셋 버전을 확인하고 읽어라. 판정 성적표는 v5 기준, dense 단독 진단표는 v4 기준이다. 라벨을 늘린 경위 → 검색 실험 결과 (4모델·BM25) §8

검색 성적 — 값 정본은 검색 실험 결과 (4모델·BM25) §1

골든셋 v5 · 리랭커 R1 · C_doc

임베딩MRR@10기준선 대비95% CI
e5-small (현행)0.7443기준선
bge-m30.7640+0.0197[−0.0151, +0.0578]
KURE-v10.7740+0.0297[−0.0042, +0.0654]

리랭커를 켠 것이 지금까지 최대 이득이다 — dense 단독 0.6402 → 0.7443 (+0.104).

→ 세 축 모두 현행 유지. 임베딩은 점추정이 앞서도 구간이 0을 품어 미채택 (“차이가 없다”가 아니라 “이득이 증명되지 않는다”, 재판정 조건 3개는 결과 §2-1). R2 리랭커는 점수 포화로 기각. BM25는 설계 결함 2건을 고쳐 재측정했으나 미채택 — MRR은 유의차 없고 nDCG·Recall은 유의하게 나쁘다(결과 §4).


정본이 볼트 밖인 것

대상실제 위치
라벨링 스킬 원문GPTPilots_Project/.harness-mem/goldenset-skill/rounds/rN/SKILL.md — 현행 v8
라운드 성적같은 경로 rounds/rN/score.json
골든셋 200문항 (버전 관리)VM /srv/GPTPilot/goldenset/ — 현행 v5(전체 풀링 반영), 직전 v4_20260729. 파일 구성은 goldenset.jsonl 200줄 · rerank_labels.jsonl 164줄(실험용) · rerank_labels_full.jsonl 200줄
1차 실험 판정표GPTPilots_Project/data/promote_decision_200.md (gitignore)
태스크 로드맵GPTPilots_Project/Plans.md 6.5~6.8

_archive/ — 읽되 현행으로 믿지 말 것

낡았지만 사료 가치가 있어 지우는 대신 내렸다. 전부 상단에 배너가 붙어 있다.

문서대체 정본왜 내렸나
검색 개선.md검색 실험 설계 (4모델·BM25) · 검색 실험 결과 (4모델·BM25)1부 구현 커밋 이력은 여기가 유일한 기록 — 그 목적으로만
검색 실험 계획 (164문항).md검색 실험 설계 (4모델·BM25)36~164문항 시절 설계
검색 실험 결과 (164문항).md검색 실험 결과 (4모델·BM25)유효한 내용은 전부 이관
검색 2차 실험 (임베딩·BM25·리랭커).md“1차·2차” 프레이밍을 버리며 재편
검색 2차 실험 계획/결과 *.md그 전 판 (변형 D 설명이 틀림)
정답지 편향 제거 (전체 풀링 라벨링).md검색 실험 결과 (4모델·BM25) §8·§9상·하한 3가정 표 전체가 여기 남아 있다
검색 실험 구도.md검색 실험 설계 (4모델·BM25)측정 전 사전등록 설계서
검색 품질 개선 (BM25·리랭커).canvas검색 실험 설계 (4모델·BM25)4변형 시절 설계도
쿼리 파이프라인 개선안.md쿼리 파이프라인 §잔여 백로그

미해결

검색

  • 거짓양성 미검사 — 모른다·반문 30문항에서 없는 근거를 지어내지 않는지 아직 안 봤다
  • 탐색비교·후속 유형이 안 오른다 — 리랭커로 +0.034 / +0.005뿐. 여러 문서를 걸치는 검색은 별도 접근 필요
  • 정답이 후보에 아예 없는 문항 — dense만으로는 e5 17 / KURE 9. 임베딩으로도 BM25로도 다 못 없앴다. 남은 접근 미정
  • e5 수치의 셋째 자리를 못 믿는다 — 리랭커 점수 동점 시 입력 순서가 결과를 바꿔 MRR이 ±0.007 흔들린다(해당 문항 e5 18 / bge 2 / KURE 0). 재려는 효과와 자릿수가 같다 → 검색 실험 결과 (4모델·BM25)
  • 라벨링 보류 5건 — 사람 확인 대상. 쟁점은 표기 정규화(예: “3개월”과 “90일”을 같은 값으로 볼지) → 검색 실험 결과 (4모델·BM25) §8-4
  • KURE는 언제 다시 보나 — 지금은 기각이지만 조건 3개 중 하나면 재판정한다(골든셋 300문항↑ · 다른 이유로 재인덱싱 · Recall@20이 병목인 기능) → 검색 실험 결과 (4모델·BM25) §2-1

그 밖

  • 자격요건 재추출이 왜 98건인가 — 문서 100 / chunks 99 / 자격요건 98. 마지막 1건 기록 없음 → 참가자격 매칭 구조 정리
  • 전건 재추출이 팀 공용 키($20)를 쓰는가청킹 표 처리 수정 (Phase 11)은 팀 합의 대상으로 두고 동결. 자격요건 쪽도 같은 성격인지 미확인
  • 적합도 “상/중/하” 정의 미합의 — 이것 때문에 웹 화면 3개가 블록 → BidMate 웹 연동 현황
  • 골든셋 v5가 아직 VM에 안 올라갔다currentv4_20260729를 가리킨다
  • 볼트 공개 범위 — Quartz ignorePatterns메모/를 제외하지 않는다. gh-pages로 배포하면 RFP 발췌가 있는 문서가 공개된다

해소된 것 (기록)

  • 리랭커를 아직 안 켰다RETRIEVAL_USE_RERANKER = True로 켰다. 선결 둘 다 해소 → 검색 실험 결과 (4모델·BM25) §5
    • 동시 요청 시 568M 모델 중복 로드 → OOM → 이중검사 락 + MODEL_LOAD_TIMEOUT_S=300 유한 대기(초과 시 폴백 강등). 8스레드 Barrier 테스트로 로더 1회 호출 확인
    • 맥(MPS) 지연시간 재측정전제가 틀렸다. 코드가 MPS를 안 쓰고 CPU로 돈다. 맥 CPU 실측 문항당 13.27초(VM L4 0.27초의 49배) → RERANKER_REQUIRE_GPU=True 가드로 GPU 없으면 dense 단독 자동 강등
  • BM25는 dense가 약한 임베딩 위에선 살아날 수 있다RRF 순서 융합은 임베딩 3종 전부에서 순손해(−0.031 → −0.124). 단 후보 확장 효과는 별개이고 미측정 — 위 미해결 참조
  • 리랭커 모델끼리는 비교한 적이 없다R1 유지 확정. 한국어 튜닝판 R2는 전 조합 −0.06~−0.08. 점수가 1.0으로 포화해 변별을 못 한다 → 검색 실험 결과 (4모델·BM25) §3
  • M0×R2에서 C_doc ≠ D_doc (0.001 차이)버그 아님. 애초에 D가 후보 집합을 안 바꿔 C와 동치이고, 0.001은 R2 점수 동점 위에 얹힌 부수 현상이다 → 검색 실험 결과 (4모델·BM25) §10-1
  • 골든셋 200문항 검증 완료 여부 → 2026-07-29 완료, 170문항 검증

2026-07-29 정리 — 문서 10 + index + 캔버스 9 + _archive/ 8. 개념 노트 16개는 개념/ 폴더.