docs: 재학습 파이프라인 설계 문서 추가 및 진행 상황 업데이트
This commit is contained in:
parent
c594646113
commit
0878a9d571
@ -47,17 +47,19 @@
|
|||||||
|
|
||||||
## 로빙 프로젝트 적용 현황
|
## 로빙 프로젝트 적용 현황
|
||||||
|
|
||||||
### 구현 완료
|
### 구현 완료 (2025-11-17)
|
||||||
- ✅ 사용자 피드백 수집 (좋아요/싫어요)
|
- ✅ 사용자 피드백 수집 (좋아요/싫어요)
|
||||||
- ✅ 리뷰 큐 진입 로직 (low confidence, error, negative feedback)
|
- ✅ 리뷰 큐 진입 로직 (low confidence, error, negative feedback)
|
||||||
- ✅ 관리자 라벨링 API
|
- ✅ 관리자 라벨링 API (조회/라벨링/통계)
|
||||||
- ✅ 데이터 수집 파이프라인 (100% 수집률 달성)
|
- ✅ 데이터 수집 파이프라인 (100% 수집률 달성)
|
||||||
|
- ✅ 코드 작성 원칙 준수 (router → services → state)
|
||||||
|
|
||||||
### 다음 단계
|
### 진행 중 (2025-11-17)
|
||||||
- [ ] 재학습 배치 구현
|
- [ ] 재학습 배치 스크립트 구현 (TDD)
|
||||||
- [ ] 재학습 전후 정확도 비교 측정
|
- [ ] 재학습 전후 정확도 비교 측정
|
||||||
|
- [ ] Active Learning 쿼리 전략 구현 (uncertainty sampling, margin sampling)
|
||||||
|
- [ ] 암묵적 피드백 수집 (재질문, 세션 종료 등)
|
||||||
- [ ] Few-shot learning 기법 적용
|
- [ ] Few-shot learning 기법 적용
|
||||||
- [ ] 암묵적 피드백 통합
|
|
||||||
|
|
||||||
## 관련 연구 분야
|
## 관련 연구 분야
|
||||||
|
|
||||||
|
|||||||
81
research/intent_classification/retraining_pipeline_plan.md
Normal file
81
research/intent_classification/retraining_pipeline_plan.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# 의도 분류 재학습 파이프라인 설계
|
||||||
|
|
||||||
|
**작성일**: 2025-11-17
|
||||||
|
**목적**: 라벨링된 데이터로 의도 분류기 재학습 및 개선 검증
|
||||||
|
|
||||||
|
## 1. 재학습 배치 스크립트 설계
|
||||||
|
|
||||||
|
### 1.1 입력 데이터
|
||||||
|
- `IntentReviewQueue`에서 `status='confirmed'` 또는 `status='corrected'`인 항목
|
||||||
|
- `true_intent`가 설정된 항목만 사용
|
||||||
|
- 최소 라벨링 개수: intent별 5개 이상 (통계적 유의성)
|
||||||
|
|
||||||
|
### 1.2 재학습 대상 모델
|
||||||
|
1. **Naive Bayes 분류기** (`app/services/intent_bayes.py`)
|
||||||
|
- 라벨링된 메시지로 vocabulary 및 intent별 통계 업데이트
|
||||||
|
- 기존 seed 데이터와 병합
|
||||||
|
|
||||||
|
2. **Ko-SRoBERTa Prototype** (`intent_prototypes` 테이블)
|
||||||
|
- `true_intent`로 재라벨링된 메시지 임베딩으로 centroid 재계산
|
||||||
|
- 기존 prototype과 가중 평균 또는 교체
|
||||||
|
|
||||||
|
### 1.3 재학습 스크립트 구조
|
||||||
|
```
|
||||||
|
scripts/retrain_intent_classifier.py
|
||||||
|
- 라벨링된 데이터 추출
|
||||||
|
- Naive Bayes 재학습
|
||||||
|
- Prototype 재계산
|
||||||
|
- 검증 (기존 테스트 세트)
|
||||||
|
- 롤백 가능한 백업 생성
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. 재학습 전후 측정
|
||||||
|
|
||||||
|
### 2.1 측정 지표
|
||||||
|
- **정확도**: 동일 테스트 샘플에서 `predicted_intent == true_intent` 비율
|
||||||
|
- **리뷰 큐 진입률**: low confidence 케이스 감소율
|
||||||
|
- **Intent별 F1-score**: intent별 성능 변화
|
||||||
|
|
||||||
|
### 2.2 측정 스크립트
|
||||||
|
```
|
||||||
|
scripts/measure_intent_improvement.py
|
||||||
|
- 재학습 전 baseline 측정
|
||||||
|
- 재학습 실행
|
||||||
|
- 재학습 후 측정
|
||||||
|
- 비교 리포트 생성
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Active Learning 쿼리 전략
|
||||||
|
|
||||||
|
### 3.1 Uncertainty Sampling
|
||||||
|
- **Margin Sampling**: `confidence(predicted) - confidence(2nd)`가 작은 순서
|
||||||
|
- **Entropy Sampling**: 예측 분포의 엔트로피가 높은 순서
|
||||||
|
|
||||||
|
### 3.2 구현 위치
|
||||||
|
- `app/brain/intent_review.py`: `should_enqueue_for_review` 확장
|
||||||
|
- `app/state/intent_review_repository.py`: 우선순위 정렬 함수 추가
|
||||||
|
|
||||||
|
## 4. 암묵적 피드백 수집
|
||||||
|
|
||||||
|
### 4.1 암묵적 신호
|
||||||
|
- **재질문**: 같은 사용자가 짧은 시간 내에 유사한 질문 반복
|
||||||
|
- **세션 종료**: 응답 후 즉시 세션 종료 (불만족 가능성)
|
||||||
|
- **무응답**: 사용자가 응답 없이 다음 메시지 전송
|
||||||
|
|
||||||
|
### 4.2 구현 위치
|
||||||
|
- `app/services/conversation_service.py`: 세션 종료 감지
|
||||||
|
- `app/router/message_router.py`: 재질문 패턴 감지
|
||||||
|
- `app/brain/intent_review.py`: 암묵적 피드백 조건 추가
|
||||||
|
|
||||||
|
## 5. 구현 순서
|
||||||
|
|
||||||
|
1. **재학습 배치 스크립트** (TDD)
|
||||||
|
2. **재학습 전후 측정 스크립트** (TDD)
|
||||||
|
3. **쿼리 전략 구현** (TDD)
|
||||||
|
4. **암묵적 피드백 수집** (TDD)
|
||||||
|
5. **문서 업데이트**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**참고**: 각 단계는 TDD 원칙에 따라 테스트 먼저 작성 후 구현
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user