22개 쿼리(6개 카테고리)와 Recall/MRR/NDCG@10 + latency p50/p95 측정 스크립트 추가. wiggly-weaving-puppy 플랜 Phase 0.2 산출물. - queries.yaml: 정확키워드/한국어자연어/crosslingual/뉴스/실패 케이스 실제 코퍼스(2026-04-07, 753 docs) 기반 정답 doc_id 매핑 - run_eval.py: 단일 평가 + A/B 비교 모드, CSV 저장 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
258 lines
11 KiB
YAML
258 lines
11 KiB
YAML
# Document Server 검색 평가셋 v0.1
|
|
#
|
|
# Phase 0.2 산출물 — 정량 지표(Recall@10, MRR@10, NDCG@10) 측정용.
|
|
# 각 쿼리는 실제 코퍼스(2026-04-07 시점, 753 documents)에서 추출한
|
|
# 정답 doc_id와 함께 정의된다.
|
|
#
|
|
# 메타데이터:
|
|
# - intent : semantic_search | fact_lookup | filter_browse (Phase 2 QueryAnalyzer 분기 기준)
|
|
# - domain_hint : document | news | mixed (Phase 1 도메인 분기 기준)
|
|
# - category : 쿼리 유형 (eval 결과 그루핑용)
|
|
# - relevant_ids : 정답 doc_id 리스트 (eval에서 recall/ndcg 계산)
|
|
# - top3_ids : 반드시 top-3 안에 들어와야 하는 강한 정답 (선택)
|
|
# - notes : 의도/배경 (사람용)
|
|
#
|
|
# 주의:
|
|
# - 정답은 "현재 코퍼스에 실제 존재하는 문서"만 기재. 코퍼스가 바뀌면 갱신 필요.
|
|
# - relevant_ids가 빈 리스트인 쿼리는 "결과 없어야 정상" 또는 "low confidence가 정상"인 케이스.
|
|
|
|
version: "0.1"
|
|
created_at: "2026-04-07"
|
|
corpus_size: 753
|
|
notes: |
|
|
Phase 0.2 초기 평가셋. 22개 쿼리, 6개 카테고리.
|
|
Phase 1 reranker 통합 후 NDCG@10 비교 baseline으로 사용.
|
|
search_failure_logs(Phase 0.3)에서 자동 수집된 쿼리로 점진 확장 예정.
|
|
|
|
queries:
|
|
# ─────────────────────────────────────────────────────────
|
|
# 1. 정확 키워드 검색 (fact_lookup, document)
|
|
# ─────────────────────────────────────────────────────────
|
|
- id: kw_001
|
|
query: "산업안전보건법 제6장"
|
|
category: exact_keyword
|
|
intent: fact_lookup
|
|
domain_hint: document
|
|
relevant_ids: [3856, 3868, 3879]
|
|
top3_ids: [3856]
|
|
notes: |
|
|
"유해·위험 기계 등에 대한 조치"가 들어있는 6장.
|
|
Act(3856), Decree(3868), Rule(3879) 모두 정답이지만 본법(Act)이 최우선.
|
|
|
|
- id: kw_002
|
|
query: "중대재해 처벌 등에 관한 법률 제2장 중대산업재해"
|
|
category: exact_keyword
|
|
intent: fact_lookup
|
|
domain_hint: document
|
|
relevant_ids: [3917, 3921]
|
|
top3_ids: [3917]
|
|
notes: 본법 제2장(3917)이 정답. 시행령 동일 장(3921)도 허용.
|
|
|
|
- id: kw_003
|
|
query: "화학물질관리법 유해화학물질 영업자"
|
|
category: exact_keyword
|
|
intent: fact_lookup
|
|
domain_hint: document
|
|
relevant_ids: [3981]
|
|
top3_ids: [3981]
|
|
notes: 화학물질관리법 제4장 = 유해화학물질 영업자.
|
|
|
|
- id: kw_004
|
|
query: "근로기준법 안전과 보건"
|
|
category: exact_keyword
|
|
intent: fact_lookup
|
|
domain_hint: document
|
|
relevant_ids: [4041]
|
|
top3_ids: [4041]
|
|
notes: 근로기준법 제6장 = 안전과 보건.
|
|
|
|
- id: kw_005
|
|
query: "산업안전보건기준에 관한 규칙 보호구"
|
|
category: exact_keyword
|
|
intent: fact_lookup
|
|
domain_hint: document
|
|
relevant_ids: [3888]
|
|
top3_ids: [3888]
|
|
notes: 산업안전보건기준 규칙 제4장 = 보호구.
|
|
|
|
# ─────────────────────────────────────────────────────────
|
|
# 2. 한국어 자연어 질의 (semantic_search, document)
|
|
# ─────────────────────────────────────────────────────────
|
|
- id: nl_001
|
|
query: "기계로 인한 산업재해 관련 법령"
|
|
category: natural_language_ko
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3856, 3868, 3879, 3854]
|
|
top3_ids: [3856]
|
|
notes: |
|
|
플랜의 대표 예시 쿼리. 기계 안전 = 산안법 6장(3856).
|
|
4장 유해·위험 방지 조치(3854)도 의미상 관련.
|
|
|
|
- id: nl_002
|
|
query: "사업주가 도급을 줄 때 산업재해를 예방하기 위해 해야 할 일"
|
|
category: natural_language_ko
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3855, 3867, 3878]
|
|
top3_ids: [3855]
|
|
notes: 산안법 제5장 도급 시 산업재해 예방.
|
|
|
|
- id: nl_003
|
|
query: "유해화학물질을 다루는 회사가 지켜야 할 안전 의무"
|
|
category: natural_language_ko
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3980, 3981, 3982]
|
|
notes: 화관법 제3-5장(유해화학물질 관리/영업자/사고 대응).
|
|
|
|
- id: nl_004
|
|
query: "중대재해가 발생했을 때 경영책임자가 처벌받는 기준"
|
|
category: natural_language_ko
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3916, 3917, 3920, 3921]
|
|
top3_ids: [3917]
|
|
notes: 중대재해처벌법 본법+시행령 제1-2장.
|
|
|
|
- id: nl_005
|
|
query: "안전보건교육은 누가 받아야 하고 어떤 내용을 다루는가"
|
|
category: natural_language_ko
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3853, 3865]
|
|
top3_ids: [3853]
|
|
notes: 산안법 제3장 안전보건교육 + 시행령 제3장.
|
|
|
|
# ─────────────────────────────────────────────────────────
|
|
# 3. 한국어 → 영어 crosslingual (semantic_search, document)
|
|
# ─────────────────────────────────────────────────────────
|
|
- id: cl_001
|
|
query: "기계 안전 가드 설계 원리"
|
|
category: crosslingual_ko_en
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3770, 3856]
|
|
top3_ids: [3770]
|
|
notes: |
|
|
Industrial Safety and Health Management(7-ED) Ch15 Machine Guarding(3770)이
|
|
한국어 쿼리로 검색되어야 함. 한국 산안법 6장(3856)도 관련.
|
|
|
|
- id: cl_002
|
|
query: "산업 안전 입문서"
|
|
category: crosslingual_ko_en
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3755, 3775, 3776, 3777]
|
|
notes: |
|
|
Safety and Health for Engineers / Industrial Safety and Health Management
|
|
영문 교재 입문 챕터들이 한국어 쿼리로 검색되어야 함.
|
|
|
|
- id: cl_003
|
|
query: "전기 안전 위험"
|
|
category: crosslingual_ko_en
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [3772, 3790]
|
|
notes: |
|
|
Electrical Hazards(3772), Electrical Safety(3790) 영문 챕터.
|
|
한국어 안전기준 규칙 중 전기 관련 장도 있을 수 있음(보수적으로 영문만 정답).
|
|
|
|
# ─────────────────────────────────────────────────────────
|
|
# 4. 뉴스 / 다국어 (semantic_search, news)
|
|
# ─────────────────────────────────────────────────────────
|
|
- id: news_001
|
|
query: "이란과 미국의 군사 충돌"
|
|
category: news_ko
|
|
intent: semantic_search
|
|
domain_hint: news
|
|
relevant_ids: [4303, 4304, 4307, 4316, 4322, 4323, 4327, 4335]
|
|
notes: |
|
|
경향신문의 이란-미국 전쟁 보도. recall 위주 평가.
|
|
diversity 제약 적용 후에도 최소 5건은 top-10에 들어와야 함.
|
|
|
|
- id: news_002
|
|
query: "호르무즈 해협 봉쇄"
|
|
category: news_ko
|
|
intent: semantic_search
|
|
domain_hint: news
|
|
relevant_ids: [4316, 4320, 4322, 4327]
|
|
top3_ids: [4316]
|
|
notes: 호르무즈 해협 직접 언급 기사.
|
|
|
|
- id: news_003
|
|
query: "Trump Iran ultimatum"
|
|
category: news_en
|
|
intent: semantic_search
|
|
domain_hint: news
|
|
relevant_ids: [4258, 4260, 4262]
|
|
notes: Der Spiegel 영어판 Iran 관련 기사.
|
|
|
|
- id: news_004
|
|
query: "guerre en Iran"
|
|
category: news_fr
|
|
intent: semantic_search
|
|
domain_hint: news
|
|
relevant_ids: [4199, 4202, 4210, 4361, 4363, 4507, 4519, 4521]
|
|
notes: Le Monde 불어 Iran 전쟁 보도.
|
|
|
|
- id: news_005
|
|
query: "이란 미국 전쟁 글로벌 반응"
|
|
category: news_crosslingual
|
|
intent: semantic_search
|
|
domain_hint: news
|
|
relevant_ids: [4202, 4258, 4262, 4536, 4303, 4304, 4316]
|
|
notes: |
|
|
한국어 쿼리로 한/영/불/독 뉴스가 골고루 검색되어야 함.
|
|
Phase 1 domain-aware retrieval + multilingual embedding 효과 측정용.
|
|
diversity 제약(국가당 max 2)이 동작하면 최소 4개국 이상 노출.
|
|
|
|
# ─────────────────────────────────────────────────────────
|
|
# 5. 기타 도메인 (semantic_search, document)
|
|
# ─────────────────────────────────────────────────────────
|
|
- id: misc_001
|
|
query: "강체의 평면 운동학"
|
|
category: other_domain
|
|
intent: fact_lookup
|
|
domain_hint: document
|
|
relevant_ids: [4063, 4065]
|
|
top3_ids: [4063]
|
|
notes: 공업역학 동역학 ch16, ch18.
|
|
|
|
- id: misc_002
|
|
query: "질점의 운동역학"
|
|
category: other_domain
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: [4060, 4061, 4062]
|
|
notes: 공업역학 동역학 ch13~15 (질점 운동역학).
|
|
|
|
# ─────────────────────────────────────────────────────────
|
|
# 6. 실패 / 애매 케이스 (low confidence 기대)
|
|
# ─────────────────────────────────────────────────────────
|
|
- id: fail_001
|
|
query: "Rust async runtime tokio scheduler 내부 구조"
|
|
category: failure_expected
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: []
|
|
notes: |
|
|
코퍼스에 Rust/프로그래밍 문서 없음. Phase 0.3 search_failure_logs로 자동 수집되어야 함.
|
|
Phase 1+에서 confidence 점수 < 0.5로 분류되는지 확인.
|
|
|
|
- id: fail_002
|
|
query: "양자컴퓨터 큐비트 디코히어런스"
|
|
category: failure_expected
|
|
intent: semantic_search
|
|
domain_hint: document
|
|
relevant_ids: []
|
|
notes: 코퍼스에 양자물리 문서 없음.
|
|
|
|
- id: fail_003
|
|
query: "재즈 보컬리스트 빌리 홀리데이"
|
|
category: failure_expected
|
|
intent: semantic_search
|
|
domain_hint: news
|
|
relevant_ids: []
|
|
notes: 코퍼스에 음악/재즈 문서 없음.
|