# 오투오 2단계 진행 현황 (데이터 수령 전 선행 작업 완료분) > 데이터 수령 전까지 가능한 작업을 선행 구현하여, 컴북스 데이터가 들어오면 > 즉시 학습·검증에 착수할 수 있도록 준비한 결과 요약. ## 1. 한눈에 보기 | 남은 작업(계획서 2단계) | 선행 구현 상태 | 데이터 도착 후 할 일 | |---|---|---| | 표절 검출 고도화 — 군집화 | ✅ `engine/clustering.py` 구현·테스트 | 실데이터로 임계값 튜닝 | | 표절 검출 고도화 — Human Feedback | ✅ 선호데이터 파이프라인 골격 | 사람 라벨 → DPO 학습 | | 스토리 요약 모듈 | ✅ 추출적 요약+통합 골격+API | 추상적(sLLM) 연결, 정답셋 평가 | | 메타 추출 F1(No.3) | ✅ 평가 하니스(KLUE NER 호환) | 정답 라벨로 정식 측정·향상 | | 표절 정밀도 97%(No.4) | ✅ 케이스 갭 분석으로 요청목록 산출 | 자서전 도메인 샘플로 달성 | | 요약 ROUGE 65(No.7) | ✅ ROUGE 평가 모듈·CLI | 요약 정답셋으로 정식 측정 | | SW 저작권 등록 | ✅ 등록 준비 문서 | 서류 제출 | | 2단계 통합 | ✅ 통합 인터페이스 명세 | 바이칼/컴북스 E2E | ## 2. 구현 산출물 ### 코드 모듈 (테스트 포함) - `app/engine/clustering.py` — 군집화 기반 부분 표절(요소 교체) 판별. detect 응답에 `partial_signal` 필드로 노출. (`tests/test_clustering.py`) - `app/engine/summarizer.py` — 추출적(TextRank)+통합 요약. `/v1/summary` 엔드포인트. 외부 의존 0으로 동작, LLM 키 있으면 추상적 단계 결합. (`tests/test_summarizer.py`) - `app/engine/rouge.py` — ROUGE-1/2/L 자체 구현 (성능지표 No.7). (`tests/test_rouge.py`) - `app/engine/metadata_eval.py` — 요소 추출 F1(성능지표 No.3). (`tests/test_metadata_eval.py`) - `app/engine/case_coverage.py` — 39 케이스 커버리지 갭 분석. (`tests/test_case_coverage.py`) - `app/engine/preference.py` — HF 선호학습 데이터 골격. (`tests/test_preference.py`) ### 평가/유틸 스크립트 (데이터 도착 시 즉시 사용) - `scripts/eval_rouge.py` — 요약 ROUGE 평가 (dry-run 내장) - `scripts/eval_metadata_f1.py` — 메타 추출 F1 (KLUE NER `--klue` 지원) - `scripts/analyze_case_coverage.py` — 케이스 갭 → 데이터 요청 목록 - `scripts/build_preference_dataset.py` — 선호데이터 template/convert ### 문서 - `docs/DATA_REQUEST_SPEC.md` — 컴북스 요청 데이터 스펙 + 요약 정답셋 가이드 - `docs/INTEGRATION_INTERFACE.md` — 2단계 통합 인터페이스 - `docs/SW_COPYRIGHT_REGISTRATION.md` — SW 저작권 등록 준비 ## 3. 데이터에 묶여 남는 것 (수령 후 착수) - 표절 **정밀도 97% 최종 달성** — 자서전 도메인 표절 샘플 필요 - 요약 **ROUGE 65 학습·최종 평가** — 요약 정답셋 필요 - HF **실제 선호학습 수행** — 사람 선호 라벨 필요 - sLLM **학습 실행** — A100급 GPU 인프라 필요 ## 4. 평가환경 (계획서 p.24 기준) - 공인인증 평가환경: A100 GPU / Python 3.9 / transformers 4.39.3 - 본 저장소 평가 스크립트는 위 환경에서 정답셋만 연결하면 동작하도록 작성됨.