rara/agent-roadmap/sdd/selective-adaptation/training-dataset-curation/SDD.md
toki d4546ecbfd
Some checks are pending
ci / validate (push) Waiting to run
add agent-roadmap
2026-07-18 19:31:48 +09:00

96 lines
4.7 KiB
Markdown

# SDD: 훈련 Dataset 정제
## 위치
- Milestone: [Milestone 문서](../../../phase/selective-adaptation/milestones/training-dataset-curation.md)
- Phase: [PHASE.md](../../../phase/selective-adaptation/PHASE.md)
## 상태
[승인됨]
## SDD 잠금
- 상태: 해제
- 사용자 리뷰: 없음
- 잠금 항목:
- 없음
## 문제 / 비목표
- 문제: feedback과 evaluation 사례를 provenance·privacy·contamination gate 없이 학습에 사용하지 않도록 candidate review와 불변 split release 계약이 필요하다.
- 비목표:
- 운영 trace 전량 자동 사용
- evaluation·holdout 혼용
- 모델 학습 실행
## Source of Truth
| 영역 | 기준 | 메모 |
|------|------|------|
| Roadmap | [Milestone 문서](../../../phase/selective-adaptation/milestones/training-dataset-curation.md) | training candidate와 release 범위 |
| Feedback | [Drift와 선별 Feedback SDD](../../quality-governance/drift-and-selective-feedback/SDD.md) | 선별 capture와 provenance |
| Dataset | [수집과 Dataset 수명주기 SDD](../../knowledge-lifecycle/ingestion-and-dataset-lifecycle/SDD.md) | 불변 version과 lineage 원칙 |
| User Decision | 없음 | provenance-first와 holdout 분리를 표준선으로 사용한다 |
## State Machine
| 상태 | 진입 조건 | 다음 상태 | 근거 |
|------|-----------|-----------|------|
| candidate | provenance와 policy verdict가 있는 사례가 들어옴 | accepted, rejected, quarantined | candidate row |
| quarantined | consent·license·label 확인이 필요함 | accepted, rejected | review record |
| accepted | privacy·license·quality precheck를 통과함 | released | acceptance event |
| rejected | 기준을 통과하지 못함 | 없음 | reason code |
| released | split·contamination gate와 content hash가 확정됨 | superseded | dataset release |
| superseded | 더 최신 release가 게시됨 | 없음 | lineage |
## Interface Contract
- 입력: evaluation·feedback identity, source·teacher provenance, license·consent·retention과 label
- 출력: review verdict, redacted candidate, deterministic split, quality report와 immutable training dataset release
- 금지:
- provenance·consent가 불명확한 candidate를 accepted로 만들지 않는다.
- 같은 entity·source를 무작위로 나눠 split leakage를 만들지 않는다.
- evaluation holdout과 중복된 사례를 release에 포함하지 않는다.
## Acceptance Scenarios
| ID | Milestone Task | Given | When | Then |
|----|----------------|-------|------|------|
| S01 | `candidate-intake` | evaluation·feedback 사례 | intake | provenance와 policy verdict가 candidate에 고정된다 |
| S02 | `candidate-review` | 유효·불명확·금지 사례 | review | accepted·quarantined·rejected와 이유가 남는다 |
| S03 | `redaction-dedup` | accepted 후보 | 정제 | 민감 정보·중복·license 위반이 제거된다 |
| S04 | `dataset-split` | 정제된 후보와 seed | split | entity·source leakage 없는 재현 가능한 split이 생성된다 |
| S05 | `contamination-check` | split과 evaluation·holdout | 검사 | contamination과 label conflict가 release를 차단한다 |
| S06 | `training-release` | 모든 gate 통과 split | 게시 | hash·recipe·statistics·provenance가 있는 불변 release가 생긴다 |
## Evidence Map
| Scenario | Required Evidence | `agent-task` 연결 | 완료 Evidence 기대 |
|----------|-------------------|------------------|---------------------------|
| S01 | intake provenance contract test | `agent-task/m-training-dataset-curation/...` | `candidate-intake` evidence |
| S02 | review state matrix | `agent-task/m-training-dataset-curation/...` | `candidate-review` verdict evidence |
| S03 | redaction·dedup·license test | `agent-task/m-training-dataset-curation/...` | `redaction-dedup` evidence |
| S04 | deterministic leakage-safe split test | `agent-task/m-training-dataset-curation/...` | `dataset-split` reproducibility |
| S05 | contamination·conflict negative test | `agent-task/m-training-dataset-curation/...` | `contamination-check` block evidence |
| S06 | immutable release reconstruction | `agent-task/m-training-dataset-curation/...` | `training-release` manifest |
## Cross-repo Dependencies
- 없음
## Drift Check
- [x] Milestone 기능 Task와 Acceptance Scenario가 일치한다.
- [x] Evidence Map이 code-review/complete.log에서 검증 가능하다.
- [x] evaluation과 training holdout 경계를 분리했다.
- [x] 사용자 리뷰가 필요한 항목이 없다.
## 사용자 리뷰 이력
- 없음
## 작업 컨텍스트
- 표준선: provenance-first, explicit review, deterministic split, contamination gate
- Milestone은 `[스케치]`이므로 승격 조건이 모두 해소될 때까지 구현 잠금 상태를 유지한다.