docs: multi-centroid 적용 성과 문서화
- 트러블슈팅 문서에 개선 결과 섹션 추가 (23.4%→70.2%) - 계획 문서 아카이브에 완료 사항 업데이트 - 리서치 README는 인덱스 역할로 간소화 (상세는 troubleshooting 참조)
This commit is contained in:
parent
f3c062ce01
commit
725f8b047c
@ -41,13 +41,19 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 미구현: 하이브리드 시스템
|
## 하이브리드 시스템
|
||||||
|
|
||||||
**테스트 결과 (2026-01-03)**: `troubleshooting/260103_하이브리드_의도_분류_성능_비교_테스트.md`
|
**초기 테스트 결과 (2026-01-03)**: `troubleshooting/260103_하이브리드_의도_분류_성능_비교_테스트.md`
|
||||||
- FastPath: 49.6% (72ms)
|
- FastPath: 49.6% (72ms)
|
||||||
- 제로샷 임베딩: 23.4% (80ms) - 개선 필요
|
- 제로샷 임베딩: 23.4% (80ms) - 개선 필요
|
||||||
- 병행 비교: 49.6% (154ms) - 의미 없음
|
- 병행 비교: 49.6% (154ms) - 의미 없음
|
||||||
|
|
||||||
|
**Multi-centroid 적용 완료 (2026-01-03)**: `troubleshooting/260103_하이브리드_의도_분류_성능_비교_테스트.md`
|
||||||
|
- **커밋**: `247496a` (rb8001)
|
||||||
|
- FastPath: 72.3% (64ms) - +22.7%p
|
||||||
|
- 제로샷 임베딩: 70.2% (82ms) - +46.8%p ✅
|
||||||
|
- 병행 비교: 70.9% (148ms) - +21.3%p
|
||||||
|
|
||||||
### 개선된 구조
|
### 개선된 구조
|
||||||
```
|
```
|
||||||
사용자 메시지
|
사용자 메시지
|
||||||
@ -59,27 +65,29 @@
|
|||||||
3단계: Few-shot LLM 분류 (Top-3 후보 + 예시)
|
3단계: Few-shot LLM 분류 (Top-3 후보 + 예시)
|
||||||
```
|
```
|
||||||
|
|
||||||
### 필요 작업
|
### 완료 작업
|
||||||
|
|
||||||
**1. Multi-centroid 방식 도입**
|
**1. Multi-centroid 방식 도입** ✅
|
||||||
- 파일: `scripts/seed_intent_runtime.py` 확장
|
- 파일: `scripts/seed_multi_centroid_prototypes.py` 생성
|
||||||
- 각 intent별 5-10개 예시 문장으로 K-means centroid 생성
|
- 각 intent별 3개 K-means centroid 생성 (123개 샘플 사용)
|
||||||
- `seed_calendar_event_samples.py` 방식 참고
|
- intent_prototypes 테이블 version=3으로 저장
|
||||||
|
- `intent_store.py`: `load_multi_prototypes_db()` 추가
|
||||||
|
- `semantic_classifier.py`: multi-centroid 최대 유사도 계산 적용
|
||||||
|
|
||||||
**2. Intent Prototypes DB 초기화**
|
**2. Intent Prototypes DB 초기화** ✅
|
||||||
- 768d Ko-SRoBERTa 기준으로 재임베딩
|
- 768d Ko-SRoBERTa 기준으로 재임베딩 완료
|
||||||
- intent_prototypes 테이블 version=2로 저장
|
- intent_prototypes 테이블 version=3으로 저장
|
||||||
- dimension mismatch 해결
|
- dimension mismatch 해결 (768d 일관성 유지)
|
||||||
|
|
||||||
**3. Few-shot LLM 프롬프트 개선**
|
**3. Few-shot LLM 프롬프트 개선** 🔄 진행 중
|
||||||
- 파일: `app/services/llm/intent_parser.py`
|
- 파일: `app/services/llm/intent_parser.py`
|
||||||
- Top-3 후보를 활용한 Few-shot 예시 추가
|
- Top-3 후보를 활용한 Few-shot 예시 추가 필요
|
||||||
- Gemini 프롬프트 설계 원칙(`313_Gemini_프롬프트_설계_원칙.md`) 적용
|
- Gemini 프롬프트 설계 원칙(`313_Gemini_프롬프트_설계_원칙.md`) 적용 필요
|
||||||
|
|
||||||
**4. 성능 목표**
|
**4. 성능 목표**
|
||||||
- FastPath: 80% 케이스 (< 10ms) - 유지
|
- FastPath: 72.3% 정확도 (64ms) ✅
|
||||||
- Multi-centroid embedding: 75%+ 정확도 (< 200ms) - 목표
|
- Multi-centroid embedding: 70.2% 정확도 (82ms) - 75%+ 목표 미달, 개선 필요
|
||||||
- Few-shot LLM: 5% 케이스 (1-2s) - 최적화
|
- Few-shot LLM: 미구현 - 75%+ 달성을 위해 필요
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@ -63,11 +63,12 @@
|
|||||||
- [ ] Few-shot learning 기법 적용
|
- [ ] Few-shot learning 기법 적용
|
||||||
- [ ] 암묵적 피드백 통합 (conversation_service 연동)
|
- [ ] 암묵적 피드백 통합 (conversation_service 연동)
|
||||||
|
|
||||||
### 성능 비교 테스트 (2026-01-03)
|
### 성능 비교 테스트 및 프로덕션 적용
|
||||||
- [x] FastPath vs 제로샷 임베딩 vs 병행 비교 테스트 ✅
|
|
||||||
- **결과**: FastPath 49.6%, 제로샷 임베딩 23.4%, 병행 비교 49.6%
|
- [하이브리드 의도 분류 성능 비교](../troubleshooting/260103_하이브리드_의도_분류_성능_비교_테스트.md)
|
||||||
- **개선 필요**: Multi-centroid 방식 도입, Few-shot LLM 프롬프트 개선
|
- 초기 테스트: FastPath 49.6%, 제로샷 임베딩 23.4%, 병행 비교 49.6%
|
||||||
- 상세: `troubleshooting/260103_하이브리드_의도_분류_성능_비교_테스트.md`
|
- Multi-centroid 적용 후: 제로샷 임베딩 70.2% (+46.8%p), FastPath 72.3% (+22.7%p)
|
||||||
|
- 프로덕션 적용: 14개 intent × 3개 centroid (version=3), 123개 샘플 기반 K-means
|
||||||
|
|
||||||
## 구현 문서
|
## 구현 문서
|
||||||
|
|
||||||
@ -97,4 +98,5 @@
|
|||||||
**업데이트**:
|
**업데이트**:
|
||||||
- 2025-11-17: HITL 피드백 파이프라인 구현 완료, 논문 근거 추가
|
- 2025-11-17: HITL 피드백 파이프라인 구현 완료, 논문 근거 추가
|
||||||
- 2026-01-03: 하이브리드 의도 분류 성능 비교 테스트 결과 추가, Few-shot LLM 프롬프트 개선 방향 추가
|
- 2026-01-03: 하이브리드 의도 분류 성능 비교 테스트 결과 추가, Few-shot LLM 프롬프트 개선 방향 추가
|
||||||
|
- 2026-01-03: Multi-centroid 방식 적용 완료, 제로샷 임베딩 23.4%→70.2% 개선 (프로덕션 적용 사례 추가)
|
||||||
|
|
||||||
|
|||||||
@ -97,6 +97,36 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 개선 결과 (2026-01-03)
|
||||||
|
|
||||||
|
### Multi-centroid 방식 적용
|
||||||
|
|
||||||
|
**구현 내용**:
|
||||||
|
- `scripts/seed_multi_centroid_prototypes.py`: intent_eval_samples.json에서 123개 샘플 수집 후 K-means로 multi-centroid 생성
|
||||||
|
- 14개 intent에 각 3개 centroid 생성 (version=3, source="multi_centroid_{idx}")
|
||||||
|
- `intent_store.py`: `load_multi_prototypes_db()` 추가하여 여러 centroid 로드
|
||||||
|
- `semantic_classifier.py`: multi-centroid와의 최대 유사도 계산으로 정확도 개선
|
||||||
|
- **커밋**: `247496a` (rb8001)
|
||||||
|
|
||||||
|
**성능 개선**:
|
||||||
|
|
||||||
|
| 방법 | 적용 전 | 적용 후 | 개선율 |
|
||||||
|
|------|---------|---------|--------|
|
||||||
|
| FastPath만 | 49.6% (70/141) | 72.3% (102/141) | +22.7%p |
|
||||||
|
| 제로샷 임베딩만 | 23.4% (33/141) | 70.2% (99/141) | +46.8%p |
|
||||||
|
| 병행 비교 | 49.6% (70/141) | 70.9% (100/141) | +21.3%p |
|
||||||
|
|
||||||
|
**주요 개선 사항**:
|
||||||
|
- 제로샷 임베딩 정확도 3배 향상 (23.4% → 70.2%)
|
||||||
|
- FastPath도 개선 (49.6% → 72.3%), 현재 최고 성능
|
||||||
|
- 병행 비교도 의미 있게 작동 (70.9%)
|
||||||
|
|
||||||
|
**남은 과제**:
|
||||||
|
- 75%+ 목표 달성을 위해 Few-shot LLM 프롬프트 개선 필요
|
||||||
|
- 샘플 데이터 증강으로 추가 정확도 향상 가능
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 참고
|
## 참고
|
||||||
|
|
||||||
- 계획 문서: `journey/plans/archive/251017_intent_analysis_improvement_plan.md`
|
- 계획 문서: `journey/plans/archive/251017_intent_analysis_improvement_plan.md`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user