Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions fowoco-knowledge/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Changelog

## Unreleased

- MVP Intent 모델 책임을 `Intent + evidence`로 제한한 Knowledge→AI 계약 추가
- A/B consensus 변경에 재생성 가능한 provisional Train/Validation ID 분할 추가
- 모델 출력 Schema, 구조적 Gate, 오류 유형과 Gold Test 240건 구성 계획 추가

## 0.2.0 - 2026-07-16

- 필요서류 187건과 EPS 세부업종 847건의 원본 해시·버전을 고정
Expand Down
11 changes: 10 additions & 1 deletion fowoco-knowledge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ python3.11 -m venv .venv
# 공식 원본 검증 후 제조업 Knowledge 스냅샷 재생성
.venv/bin/python -m fowoco_knowledge sync-official-data

# 현재 Intent 원본에서 provisional Train/Validation ID 재생성
.venv/bin/python -m fowoco_knowledge build-intent-splits

# 신청서별 필요서류와 제조업 세부업종 조회
.venv/bin/python -m fowoco_knowledge \
list-required-documents "외국인 고용변동 등 신고"
Expand All @@ -83,14 +86,20 @@ python3.11 -m venv .venv
## 데이터 상태

- `gold_seed.csv`: 프롬프트·분기 개발용 초기 Seed이며 모델 학습 완료 데이터가 아님
- `golden_cases.jsonl`: 코드와 모델 평가에만 사용하는 독립 사례
- `golden_cases.jsonl`: 구조·분기 확인용 Smoke Evaluation이며 최종 Gold Test가 아님
- `hr_intent_dataset.jsonl`: Intent Train/Validation 후보 1,340건이며 재검수 전 Gold Test가 아님
- `data/intent/splits/provisional-v1/`: A/B 합의 전 재현성 검증용 80:20 ID 분할
- 공개데이터: 절차·용어·분포 보조자료이며 FOWOCO Intent의 정답 라벨로 간주하지 않음
- 실제 운영 로그: 개인정보를 제거하고 별도 승인된 경우에만 Active Learning 후보로 사용

일반 데이터 기준은 [`docs/DATA_GUIDE.md`](docs/DATA_GUIDE.md), Intent 라벨과
evidence 기준은 [`docs/INTENT_DATA.md`](docs/INTENT_DATA.md)를 확인합니다.

Intent 모델 출력·분할·평가 인계 기준은
[`docs/INTENT_MODELING_HANDOFF.md`](docs/INTENT_MODELING_HANDOFF.md), 독립 Gold Test
구성 기준은 [`docs/INTENT_GOLD_TEST_PLAN.md`](docs/INTENT_GOLD_TEST_PLAN.md)를
확인합니다.

공식 데이터 변환은 [`docs/OFFICIAL_DATA_PIPELINE.md`](docs/OFFICIAL_DATA_PIPELINE.md),
신고·연장 기능의 범위는 [`docs/E9_REPORTING_WORKFLOWS.md`](docs/E9_REPORTING_WORKFLOWS.md)를
확인합니다.
5 changes: 5 additions & 0 deletions fowoco-knowledge/data/intent/manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ status: recheck_required
path: data/intent/hr_intent_dataset.jsonl
schema: schemas/intent-training-case.schema.json
label_guide: docs/INTENT_DATA.md
model_contract: knowledge/intent_model_contract.yaml
model_output_schema: schemas/intent-model-output.schema.json
evaluation_policy: knowledge/intent_evaluation_policy.yaml
split_manifest: data/intent/splits/provisional-v1/manifest.yaml
record_count: 1340
sha256: 4f4ebfdd4170a78def33e31edbed8315921c0b67934f5ff8612595dcd479bed2
contains_real_personal_data: false
Expand All @@ -14,3 +18,4 @@ limitations:
- 독립 Gold Test가 아님
- 최종 모델 성능 주장에 사용할 수 없음
- 의미 라벨은 규칙 v1.1에 따른 A/B 합의 검수가 필요함
- provisional split은 source 또는 consensus 변경 시 재생성해야 함
94 changes: 94 additions & 0 deletions fowoco-knowledge/data/intent/splits/provisional-v1/manifest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
split_id: FOWOCO-HR-INTENT-PROVISIONAL-SPLIT
version: 0.1.0
status: provisional_pending_consensus
schema: schemas/intent-split-manifest.schema.json
source:
dataset_id: FOWOCO-HR-INTENT-CANDIDATES
version: 1.1.0
status: recheck_required
path: data/intent/hr_intent_dataset.jsonl
record_count: 1340
sha256: 4f4ebfdd4170a78def33e31edbed8315921c0b67934f5ff8612595dcd479bed2
consensus:
status: pending
assumed_for_provisional_split: true
dependency_issue: 30
dependency_pr: 31
regenerate_when_source_changes: true
policy:
method: grouped_multilabel_greedy
seed: 20260727
train_ratio: 0.8
validation_ratio: 0.2
target_train_count: 1072
target_validation_count: 268
template_normalization:
worker_id_pattern: (?i)\bwrk[-_ ]?\d+\b
worker_id_replacement: <WORKER>
collapse_whitespace: true
casefold: true
preserve_dates_amounts_and_task_terms: true
stratification_features:
- intent_code
- intent_cardinality
- ordered_intent_combination
outputs:
train:
path: data/intent/splits/provisional-v1/train_ids.txt
record_count: 1072
sha256: 264011422e233e28ab7ab4b93579f634a6e53c00730d254b7ca2749d71575cb6
validation:
path: data/intent/splits/provisional-v1/validation_ids.txt
record_count: 268
sha256: 96da74e15519f9610ef316bc3e7499d06832c36564180607a3565b851bc8ba85
statistics:
template_group_count: 1335
duplicate_template_group_count: 5
max_template_group_size: 2
label_counts:
source:
DOCUMENT_REQUEST: 345
EMPLOYMENT_CHANGE: 273
EXPIRY_RENEWAL: 234
OUT_OF_SCOPE: 128
PAYROLL_EXPLANATION: 275
WORKER_ONBOARDING: 193
WORK_INSTRUCTION: 339
train:
DOCUMENT_REQUEST: 275
EMPLOYMENT_CHANGE: 217
EXPIRY_RENEWAL: 186
OUT_OF_SCOPE: 102
PAYROLL_EXPLANATION: 219
WORKER_ONBOARDING: 154
WORK_INSTRUCTION: 269
validation:
DOCUMENT_REQUEST: 70
EMPLOYMENT_CHANGE: 56
EXPIRY_RENEWAL: 48
OUT_OF_SCOPE: 26
PAYROLL_EXPLANATION: 56
WORKER_ONBOARDING: 39
WORK_INSTRUCTION: 70
intent_cardinality_counts:
source:
'1': 970
'2': 297
'3': 69
'4': 4
train:
'1': 778
'2': 240
'3': 52
'4': 2
validation:
'1': 192
'2': 57
'3': 17
'4': 2
limitations:
- Reviewer B와 A/B consensus 완료 전에는 최종 학습 분할이 아님
- Reviewer A의 proposed_intents_json은 현재 원본에 적용하지 않은 상태임
- 독립 Gold Test를 포함하지 않음
- source SHA-256이 바뀌면 생성기를 다시 실행해야 함
- 분할 비율과 내부 목표치는 baseline 비교용이며 성능 보장을 뜻하지 않음
Loading