# 컴북스 요청 데이터 스펙 & 요약 정답셋 작성 가이드 > 오투오 과제2(콘텐츠 표절 탐지 / 요소 분석) 2단계 고도화에 필요한 데이터 스펙. > 데이터 수령 즉시 학습·검증에 투입할 수 있도록, 포맷을 본 문서로 사전 고정한다. > 관련 평가 스크립트: `scripts/eval_rouge.py`, `scripts/eval_metadata_f1.py`, > `scripts/analyze_case_coverage.py` ## 0. 요약 — 무엇을, 왜, 어떤 포맷으로 | # | 데이터 | 용도(성능지표) | 제공 주체 | 비고 | |---|---|---|---|---| | 1 | 표절/비표절 샘플 글 | 표절 정밀도 97% (No.4) | 컴북스 | 39 케이스·자서전 도메인 커버 | | 2 | article 본문 3만건 + 저작권 확보분 | 요소 추출·군집화 코퍼스 | 컴북스 | 1단계 계획 수량 | | 3 | 도메인별 텍스트 | 요약 모델 범용성 (No.7) | 컴북스+공개 | 장르 다양성 | | 4 | 콘텐츠 요소(메타) 정답 라벨 | 메타 추출 F1 83 (No.3) | 컴북스 1단계분 | KLUE NER 공개로 보완 | | 5 | **요약 정답셋(reference summary)** | 요약 ROUGE 65 (No.7) | **별도 구축** | 컴북스 미보유 → 역할분담 | | 6 | **Human Feedback 선호 라벨** | 표절검출 HF 고도화 | **별도 구축** | 라벨링 공수 필요 | → #1~#4 는 컴북스 직접 제공, **#5·#6 은 컴북스가 줄 수 없는 데이터**로 제작 주체를 먼저 합의해야 한다. --- ## 1. 표절/비표절 샘플 글 (정밀도 97% 평가) - **포맷 (JSONL)**: 표절 페어 단위 ```json {"pair_id": "A1-001", "source_text": "원본 ...", "suspect_text": "검사 대상 ...", "is_plagiarism": true, "case_id": "A1", "note": "시·노래 가사 무단 인용"} ``` - **필수 커버리지**: 자동 탐지 대상 케이스(`detectable_internal=True`, 현재 10종)를 **모두** 포함. 케이스별 최소 30건 이상 권장(정밀도 0.97 신뢰구간 확보). - 현재 요청 대상 케이스 목록은 `python -m scripts.analyze_case_coverage` 로 산출. - **도메인**: 출판 콘텐츠뿐 아니라 **자서전 도메인** 표절/비표절을 별도 분리 제공. (현 평가셋 999쌍은 출판 콘텐츠 기준 → 자서전 도메인 정밀도 미검증) - **균형**: 표절:비표절 ≈ 1:1. 비표절에는 '합법적 인용·정상 2차 창작'을 포함해 과탐(FP)을 줄이는 hard-negative 로 활용. ## 2. article 본문 데이터 (요소 추출·군집화 코퍼스) - **포맷**: `data/reference/` 와 동일한 `.txt` 또는 JSONL `{"doc_id","title","text"}` - **수량**: 계획서 기준 3만건. 우선 1.5천~3천건 표본 선제공 가능하면 군집화·요소 추출 튜닝을 조기 착수. - **저작권**: 학습/평가 사용 가능 범위(CCL 또는 계약)를 메타로 명시 → `license` 필드. ## 3. 도메인별 텍스트 (요약 범용성) - 장르 다양성 확보용(소설/에세이/자서전/실용 등). 요약 모델의 도메인 편향 방지. - 포맷은 #2 와 동일. `genre` 필드 권장. ## 4. 콘텐츠 요소(메타) 정답 라벨 (메타 F1) - **포맷 (JSONL)** — `scripts/eval_metadata_f1.py` 입력과 동일: ```json {"text": "원문 ...", "characters": ["홍길동"], "motifs": ["복수"], "keywords": ["활빈당","탐관오리"], "genre": "역사"} ``` - 컴북스 1단계 '콘텐츠 구성요소 정의' 라벨을 article 단위로 제공. - 공개 보완: KLUE NER(`--klue`)로 인물(PS) 추출 F1 을 즉시 측정 가능. --- ## 5. 요약 정답셋(reference summary) 작성 가이드 — **별도 구축 필요** > 컴북스 데이터에는 '본문'만 있고 '요약 정답'이 없다. ROUGE(No.7) 평가는 정답 > 요약이 전제이므로 아래 가이드에 따라 별도 구축한다. **제작 주체 합의 필요**: > (A) 컴북스가 작성 / (B) 오투오가 GPT 생성 후 컴북스 검수 / (C) 혼합. - **포맷 (JSONL)** — `scripts/eval_rouge.py` 입력과 동일: ```json {"text": "원문 전체 ...", "reference": "사람이 작성한 정답 요약 ..."} ``` - **작성 원칙** 1. 길이: 원문의 약 20~30% (또는 3~5문장). 일관된 비율 유지. 2. 내용: 원문에 **없는 사실 추가 금지**(환각 방지). 핵심 사건·인물·결말 포함. 3. 표현: 단순 문장 복사가 아니라 재구성(추상적 요약 평가 목적). 4. 1건당 1명이 작성하되, 신뢰도 위해 일부는 2명 작성 후 교차검수(IAA 확인). - **수량**: No.7 신뢰 평가 위해 최소 200~300건(도메인 분산). - **검수**: GPT 생성안 사용 시(경로 B), 컴북스 편집자가 사실관계·표현 검수 후 확정. ## 6. Human Feedback 선호 라벨 — **별도 구축 필요** > 표절 검출 HF Preference Optimization(계획서 p.22)용. '표절 글을 비선호'로 학습. > 단순 표절/비표절 데이터가 아니라 **사람의 선호 판단 라벨**이 필요(라벨링 공수). - **파이프라인**: `scripts/build_preference_dataset.py` 1. `template` — 후보쌍(원본+글A+글B) → 라벨링 템플릿 생성 2. (사람) 각 행에 `chosen`/`rejected` 확정, `label_status="labeled"` 3. `convert` — 라벨 완료 파일 → DPO 학습셋(JSONL) + 검증/통계 - **라벨링 형식 (JSONL)**: ```json {"pair_id":"p1","prompt":"...[원문]...","candidate_a":"정상 변형글", "candidate_b":"표절글","label_status":"labeled", "chosen":"정상 변형글","rejected":"표절글"} ``` - **수량**: 선호학습 최소 500쌍 이상 권장. --- ## 7. 공통 — 납기 명시 요청 정밀도 97%·요약 ROUGE 65 는 위 데이터가 전제이므로, **각 항목 제공 시점**을 함께 확정한다(연말 인수시험 역산). 부분 표본 선제공이 가능하면 군집화/요소추출 튜닝을 데이터 도착 전 표본으로 조기 착수한다.