Skip to content

data(intent): 모델링 분할과 평가 계약 추가 - #33

Draft
hywznn wants to merge 2 commits into
mainfrom
data/intent-modeling-prep
Draft

data(intent): 모델링 분할과 평가 계약 추가#33
hywznn wants to merge 2 commits into
mainfrom
data/intent-modeling-prep

Conversation

@hywznn

@hywznn hywznn commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

목적

Intent 규칙 v1.1과 현재 1,340건 후보 데이터를 AI 저장소가 안전하게 소비할 수 있도록 모델 출력·분할·평가 계약을 정의합니다.

Reviewer B가 Reviewer A 결과에 동의한다고 가정해 모델링 준비를 진행하되, 실제 A/B consensus 또는 source SHA-256이 바뀌면 동일한 생성기로 다시 만들 수 있게 구성했습니다.

Refs #32
Depends on #31

변경 내용

  • MVP Intent 모델 책임을 Intent + evidence로 제한
  • 모델 출력 JSON Schema와 exact substring·순서·OUT_OF_SCOPE 검증기 추가
  • Knowledge → AI 인계 계약과 A.X baseline 순서 문서화
  • Gold Test 240건 구성·이중검수·잠금 계획 추가
  • 평가 구조적 Gate, 내부 목표 지표와 오류 taxonomy 추가
  • 고정 seed 20260727의 grouped multi-label 80:20 분할 생성기 추가
    • Train 1,072건
    • Validation 268건
    • 정규화 template group 1,335개
    • 중복 template group 5개는 split 간 분리하지 않음
  • ID 파일, source/output SHA-256, Intent 분포를 provisional manifest에 기록
  • source·consensus 변경 시 checksum 실패와 재생성으로 대응
  • CLI build-intent-splits와 재현성·누수·분포·Schema 테스트 추가

중요한 상태

  • split status: provisional_pending_consensus
  • 현재 source status: recheck_required
  • Reviewer A의 125건 변경 제안은 원본 JSONL에 적용하지 않음
  • Reviewer B와 consensus 완료 후 원본 version·SHA-256 갱신 및 split 재생성 필요
  • 독립 Gold Test는 아직 작성하지 않았으며 성능 주장에 사용할 수 없음

저장소 경계

이 PR에는 A.X API 호출, prompt 실험, BERT 학습, 서버 envelope 구현을 넣지 않습니다. 실제 모델 코드는 fowoco/ai에서 이 계약을 소비합니다.

검증

  • make check
    • Ruff format/check 통과
    • Knowledge validation 통과
    • 21 tests 통과
  • Train/Validation ID 교집합 0
  • 전체 1,340 ID 완전 포함
  • normalized template split 누수 0
  • Intent별 Validation 비율 목표 20% 대비 오차 1%p 이내
  • 개인정보 패턴 검사 통과
  • git diff --check 통과

## 요약

A/B consensus 전 수정 전 라벨 1,340건으로 모델링 파이프라인을 확인하는
provisional baseline과 A.X zero-shot 테스트 도구를 추가합니다.

## Provisional baseline

- PR #33의 고정 split 사용
  - Train 1,072건
  - Validation 268건
- 외부 API·ML 라이브러리 없이 재현 가능한 문자 n-gram 다중라벨 Naive Bayes
- Validation은 학습 및 threshold 결정에 사용하지 않음
- Intent 지표와 evidence·구조 오류를 분리 보고

| 지표 | 값 |
| --- | ---: |
| Intent Exact Match | 0.854478 |
| Macro F1 | 0.938066 |
| Micro F1 | 0.940361 |
| Evidence Gold Exact Match | 0.286136 |
| JSON Schema / Exact Substring / Order / OOS Gate | 1.0 |

이 수치는 템플릿성이 강한 `recheck_required` 데이터의 Validation 결과이며 최종
모델 또는 Gold Test 성능이 아닙니다.

## A.X 테스트

- Intent 규칙 v1.1 기반 versioned zero-shot prompt
- OpenAI 호환 A.X API 한 문장 테스트
- ID 또는 limit을 지정한 provisional Validation 평가
- 공식 `skt/A.X-4.0-Light` 로컬 Transformers 테스트 명령
- JSON 파싱 후 Schema, evidence substring, 순서, 중복, OUT_OF_SCOPE 검증
- API key 비저장, 더미 입력 확인 옵션, 개인정보 패턴 차단
- 모델 응답은 자동 보정하지 않고 오류 유형으로 기록

공식 API 문서의 guest endpoint를 2026-07-27 직접 확인했으나 현재는
`Guest 용 API Endpoint 서비스는 종료되었습니다.`라는 서비스 안내를 반환합니다.
따라서 실제 추론 결과는 팀 A.X endpoint/key 또는 명시적인 로컬 7B 모델 다운로드가
준비된 뒤 생성해야 합니다. 연결 성공을 모델 추론 성공으로 표현하지 않습니다.

실행 방법은

[`docs/INTENT_AX_TESTING.md`](fowoco-knowledge/docs/INTENT_AX_TESTING.md)에
정리했습니다.

## 검증

- Knowledge schema validation 통과
- Ruff format/lint 통과
- 테스트 35개 통과
- 종료된 guest API 응답을 명시적 오류로 처리
- API key가 코드·결과·Git diff에 포함되지 않음
- 로컬 모델은 `--confirm-model-download` 없이는 다운로드하지 않음

## 저장소 경계

AI 저장소 작업 충돌을 피하기 위한 `model` 임시 브랜치입니다. 모델 학습·추론
코드는 knowledge `main` 병합 대상이 아니며 구조 확인 후 `fowoco/ai`로 이전합니다.
knowledge에는 데이터 계약·평가 정책·검증 리포트만 남기는 방향입니다.

## 의존 관계

- Base/선행 PR: #33
- Consensus 작업: #35
- A.X 후속: #38
- 합의 라벨 반영 후 동일 seed로 split과 평가를 다시 실행해야 함

Closes #36
Related to #28, #32, #34, #38.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant