본문으로 건너뛰기

평가셋

Struct4Search 평가셋은 같은 문서와 질문으로 검색·답변 품질을 반복해서 비교하기 위한 고정 자료입니다. 질문만 모아 둔 파일이 아니라, 질문마다 찾아야 할 문서, 답변에 포함되어야 할 필수 내용, 그 내용을 확인한 원문 근거를 함께 보관합니다.

이 페이지에서는 다음 내용을 설명합니다.

  • 어떤 평가셋이 있으며 각각 언제 사용하는지
  • 질문과 정답 데이터가 어떤 구조로 구성되는지
  • 질문을 어떤 기준으로 만들고 검증했는지
  • 평가 자료를 변경할 때 무엇을 함께 갱신해야 하는지

실행 명령과 결과 파일 확인 방법은 평가 실행과 결과 확인 페이지에서 설명합니다.

평가 자료에는 원본 문서와 정답 근거가 포함되므로 Git 저장소에 포함하지 않습니다. 서버에 보관된 고정 자료를 환경변수로 지정해 사용합니다.

평가셋 종류

Struct4Search는 빠른 회귀 확인용 평가셋과 전체 코퍼스 최종 평가셋을 구분해 사용합니다.

평가셋검색 대상질문질문 구성사용하는 경우
100문서 평가셋고정 문서 100건100건single-hop 75건, multi-hop 25건코드·모델·프롬프트·검색 설정을 변경한 뒤 전체 평가 전에 회귀를 확인할 때
전체 문서 평가셋문서 2,567건200건single-hop 150건, multi-hop 50건전체 검색 대상을 기준으로 최종 검색·답변 품질을 확인할 때

각 평가셋은 정해진 파일 구성과 해시 또는 예상 수량으로 식별합니다. 질문이나 정답을 수정한 자료는 기존 평가셋과 같은 버전으로 취급하지 않습니다.

질문 하나에 포함되는 정보

평가셋의 기본 단위는 질문입니다. 질문 하나에는 검색 평가와 답변 평가에 필요한 정보가 함께 연결됩니다.

구성 요소의미
질문 ID질문을 식별하는 고유 ID입니다. 전체 평가셋은 q001부터 q200까지 사용합니다.
질문실제 QueryService에 입력하는 질의입니다.
정답 문서질문에 답하기 위해 검색되어야 하는 문서와 관련도입니다.
필수 내용정답에 반드시 포함되어야 하는 내용을 c1, c2처럼 나눈 항목입니다.
정답 예시필수 내용을 빠짐없이 통합한 기준 답변입니다.
원문 근거각 필수 내용을 확인한 원본 PDF의 문장, 표 또는 그림 위치입니다.
질문 속성single-hop·multi-hop 여부, 주된 질문 유형, 질문 표현 방식과 근거 형식입니다.

따라서 답변 평가는 기준 답변과 문장을 그대로 일치시키는 방식이 아닙니다. 생성된 답변이 필수 내용을 충족하는지, 그리고 그 내용이 기록된 원문 근거와 일치하는지를 확인합니다.

전체 200개 질문의 구성

전체 평가셋은 짧은 사실 확인만 측정하지 않습니다. 질문의 추론 범위, 주된 유형, 표현 방식과 근거 형식을 각각 구분해 구성했습니다.

추론 범위

구분질문 수의미
single-hop150한 위치의 근거로 답할 수 있는 질문
multi-hop50여러 페이지 또는 여러 문서의 근거를 함께 찾아야 답할 수 있는 질문

multi-hop은 반드시 여러 문서를 요구한다는 뜻은 아닙니다. 같은 문서 안에서도 서로 떨어진 여러 페이지의 근거를 결합해야 한다면 multi-hop으로 분류할 수 있습니다.

질문 유형

각 질문은 ViDoRe v3 질문 유형을 기준으로 하나의 주된 유형으로 분류했습니다.

주된 질문 유형질문 수묻는 내용
서술형28작업 절차나 조치 방법을 설명하도록 요구
원문 추출형28문서에 명시된 기준이나 문구를 확인
비교형28두 조건·방법·대상의 차이를 비교
참·거짓형28특정 설명이나 조치가 맞는지 판단
수치형28압력, 농도, 시간과 같은 정확한 값 확인
여러 근거 결합32떨어진 근거를 함께 사용해 답을 구성
목록형28여러 항목을 빠뜨리지 않고 제시

single-hop·multi-hop근거를 결합하는 범위, 위 표는 질문의 주된 과업 유형을 나타내므로 서로 다른 분류축입니다. 예를 들어 비교형 질문도 여러 페이지의 근거가 필요하면 multi-hop일 수 있습니다.

평가셋을 만든 방법

각 질문은 원본 근거를 먼저 확인한 뒤 질문과 정답을 작성하는 순서로 만듭니다.

  1. 산업안전 문서에서 실제로 확인할 필요가 있는 작업 절차, 기준, 수치, 비교 항목 또는 목록을 고릅니다.
  2. 원본 PDF에서 답을 뒷받침하는 문장, 표 또는 그림의 위치를 확인합니다.
  3. 확인한 근거를 바탕으로 질문을 작성하고, 검색되어야 할 정답 문서를 기록합니다.
  4. 정답에 반드시 포함되어야 하는 내용을 c1, c2처럼 나누고 각 항목의 원문 근거를 연결합니다.
  5. 한 근거로 답할 수 있는지에 따라 single-hop 또는 multi-hop으로 분류하고, 질문 유형·표현 방식·근거 형식을 기록합니다.
  6. 질문의 답변 가능성, 필수 내용과 원문 근거의 연결, ID와 파일 구성을 검사한 뒤 승인합니다.

multi-hop 질문은 여러 근거를 실제로 결합해야만 답할 수 있는지 별도로 확인합니다. 한 근거만으로 전체 답을 만들 수 있는 질문은 multi-hop으로 승인하지 않습니다.

최종 평가셋 승인 기준

평가셋에 포함되는 질문은 다음 조건을 충족해야 합니다.

확인 항목승인 조건
답변 가능성제공된 검색 대상 문서 안에서 질문에 답할 수 있어야 합니다.
정답 완전성답변에 필요한 필수 내용이 빠짐없이 정의되어 있어야 합니다.
근거 연결모든 필수 내용에 원본 PDF에서 확인한 근거가 있어야 합니다.
multi-hop 타당성multi-hop 질문은 하나의 근거만으로 전체 답을 만들 수 없어야 합니다.
식별자질문 ID가 q001부터 q200까지 중복 없이 이어져야 합니다.
구조 검사필수 파일, 수량과 연결 관계에 오류가 없어야 합니다.

전체 평가셋은 원본 PDF 확인을 마쳤으며, 구조 검사 결과는 오류 0건·경고 0건이고 최종 상태는 approved입니다.

질문 예시

다음은 전체 평가셋의 q001입니다.

항목내용
질문질소를 사용한 교반기에서 첨가제를 투입하려면 어떻게 준비해야 하나요?
추론 범위같은 문서의 서로 다른 두 페이지를 함께 찾아야 하는 multi-hop 질문
필수 문서교반기 첨가제 투입 중 질식 사고와 예방조치를 설명한 문서 1건
필수 내용 c1맨홀 개방 전에 잔류압력을 확인하고 내부를 충분히 환기합니다.
필수 내용 c2개방한 뒤 산소농도가 18% 이상 23.5% 미만인지 확인합니다.
필수 내용 c3적정공기를 확인하기 전에는 접근하지 않고 작업 감시, 절차와 교육을 함께 시행합니다.
정답 예시맨홀 개방 전 잔류압력이 없는지 확인하고 내부를 충분히 환기한다. 개방 직후 교반기 내부와 투입구 주변의 산소를 측정해 18% 이상 23.5% 미만인지 확인한다. 확인 전에는 개구부에 접근하지 않고 작업감시·절차·교육을 병행한다.

이 예시처럼 multi-hop 여부는 정답 문서 수가 아니라, 전체 답을 만들기 위해 결합해야 하는 원문 근거의 수와 위치를 기준으로 판단합니다.

평가 자료 파일

두 평가셋은 같은 개념을 사용하지만 일부 파일 이름과 묶음 방식이 다릅니다.

역할100문서 평가셋전체 문서 평가셋들어 있는 내용
검색 대상documents.jsonlcorpus_manifest.jsonl평가 실행에서 사용할 문서 목록
질문queries.jsonlqueries.jsonl질문 ID, 질문과 질문 속성
검색 정답qrels.jsonlqrels.jsonl질문별 정답 문서와 관련도
답변 정답answers.jsonlqa_gt.jsonl정답 예시와 답변의 필수 내용
원문 근거evidence.jsonlqa_gt.jsonl필수 내용을 확인한 원문 위치
통합 레코드dataset.jsonldataset.jsonl질문, 검색 정답과 답변 정답을 질문별로 합친 자료
정답 문서 목록평가 문서·qrels에서 확인gt_documents.jsonl전체 코퍼스 중 정답으로 사용되는 고유 문서 목록
multi-hop 정보multi_hop_dependencies.jsonlqueries.jsonl, qrels.jsonlmulti-hop 분류와 답변에 필요한 정답 문서
무결성·승인release_manifest.jsonlVALIDATION_REPORT.json, TERRA_ULTRA_FINAL_AUDIT.json파일·수량 검사와 최종 승인 결과

100문서 평가셋은 release_manifest.jsonl에 기록된 파일과 SHA-256이 일치해야 합니다. 전체 평가셋의 필수 파일 이름과 예상 수량은 configs/evaluation-release.json에 정의되어 있습니다.

평가 데이터셋을 변경할 때

질문, 정답 문서, 정답 답변 또는 원문 근거를 수정하면 기존 파일을 덮어쓰지 않고 별도의 새 평가셋으로 보관합니다.

변경할 때는 다음 항목을 함께 갱신합니다.

  • 질문과 연결된 qrels, 필수 내용과 원문 근거
  • 통합 dataset.jsonl
  • 파일 수량, 해시와 검증 보고서
  • 변경된 평가셋으로 다시 계산한 기준 결과

평가셋이나 검색 대상 문서가 달라지면 이전 점수와 같은 조건의 결과가 아니므로 직접 비교하지 않습니다. 변경된 자료로 새 기준 결과를 만든 뒤 이후 실행을 그 기준과 비교합니다.

코드 참조

확인할 내용파일·심볼
전체 평가셋 파일·수량 정의configs/evaluation-release.json
전체 평가셋 검사backend/struct4search/evaluation/datasets.py
100문서 평가셋 검사backend/struct4search/e2e/final_fixture.py
검색 정답과 순위 점수 처리backend/struct4search/evaluation/retrieval.py · score_prediction_rows
답변 점수 형식과 집계backend/struct4search/evaluation/qa.py, terra_judgments.py
서버별 평가 자료 경로configs/machine-paths.yaml