docs: note 768d embedding update and chroma dimension mismatch

This commit is contained in:
Claude-51124 2025-11-22 14:31:36 +09:00
parent ee617c2c01
commit 087bd1a650
5 changed files with 32 additions and 5 deletions

View File

@ -5,6 +5,8 @@
상태: 아이디어 → 실험 예정
관련: 감정 시스템, 윤리 시스템, 임베딩 서비스
> 2025-11-22 업데이트: 현재 운영 임베딩 서비스는 ko-sroberta 768차원으로 전환되었으며, 본 문서의 384차원 가정은 역사 기록으로만 참고. 차원 불일치 대응은 [251122_happybell80_chromadb_dimension_mismatch.md] 참고.
## 개요
현재 분리된 3개 모델(임베딩, 감정, 윤리)을 단일 임베딩 모델로 통합하여 메모리 67% 절감, 속도 3배 향상을 달성하는 아키텍처입니다. 하나의 벡터로 기억 저장, 감정 분류, 윤리 판단을 동시에 수행합니다.

View File

@ -45,6 +45,7 @@
## 2. 임베딩 차원 호환성
### 현재 시스템
- **2025-11-22 업데이트**: skill-embedding은 ko-sroberta 768차원으로 운영 중이며, 기존 384차원 컬렉션과 혼용하면 차원 불일치가 발생한다. 실제 운영 상태와 불일치한 아래 384차원 가정은 참조용이며, 대응 방안은 [251122_happybell80_chromadb_dimension_mismatch.md] 참고.
- skill-embedding: multilingual-MiniLM-L12-v2 (384차원)
- ChromaDB 컬렉션: skill_rag_file_{team_id}_documents
@ -214,4 +215,3 @@
**작성**: Claude Code, 2025-11-10
**상태**: 계획 단계 (구현 전)
**참고**: research/rag/251110_gemini_file_search_api_테스트_및_콜드메일_개선방안_평가.md

View File

@ -11,7 +11,7 @@ refs:
# Ko-SRoBERTa 임베딩 전환 사전 검증
## 1. 배경
- 현재 8515 `skill-embedding`은 multilingual MiniLM-L12-v2 ONNX(384d) 기반으로, [370번 문서]에서 정의한 중앙 임베딩 서비스 구조를 따른다.
- **2025-11-22 업데이트**: 8515 `skill-embedding`이 ko-sroberta(multitask) 768d로 배포됨. 기존 384d 가정은 더 이상 유효하지 않으며, 384d 컬렉션과 혼용 시 차원 불일치가 발생하므로 [251122_happybell80_chromadb_dimension_mismatch.md] 참고.
- Intent/runtime 고도화 계획(251017 문서)과 Vector Memory 아키텍처(330번 문서)에서는 한국어 특화 SentenceTransformer 채택을 고려하고 있어, Ko-SRoBERTa(multitask, 768d)를 후보 모델로 선정했다.
- 실제 전환 전, 의도 분류·콜드메일 IR·SemanticIntentClassifier 흐름에서 정량 비교가 필요해 본 리포트를 작성했다.
@ -67,4 +67,3 @@ refs:
- 신규 `tests/data/intent_eval_calendar.json` 10문장 기준 accuracy **100%**, avg 25.0ms.
- `PYTHONPATH=. pytest tests/test_intent_entity_skill_comprehensive.py -k intent_classification_coverage` → 22 testcases all pass, 일정 문장 2건도 `calendar_event` 판정.
- 남은 TODO: coldmail/vector 데이터 재임베딩 자동화, SemanticIntentClassifier threshold를 운영 모니터링에 노출.

View File

@ -4,6 +4,8 @@
**작업자**: happybell80 & Claude
**관련 서버**: 51124 (skill-embedding 서비스)
> 2025-11-22 업데이트: 현재 skill-embedding은 ko-sroberta(multitask) 768차원으로 전환됨. 이하 384차원 설정은 초기 구축 기록이며, 차원 불일치 대응은 [251122_happybell80_chromadb_dimension_mismatch.md] 참고.
## 오전 10시 30분
### 임베딩 서비스 분리 결정

View File

@ -0,0 +1,24 @@
# ChromaDB 차원 불일치로 RAG 검색 실패
- **날짜**: 2025-11-22
- **작성자**: happybell80
- **관련 서비스**: skill-rag-file (8508), skill-embedding (8515), rb8001
- **관련 문서**: 370_임베딩_서비스_분리_아키텍처.md, 2025_ko_sroberta_runtime_eval.md
## 상황
- skill-embedding이 ko-sroberta(multitask) 768차원으로 교체된 상태에서 기존 ChromaDB 컬렉션이 384차원 설정으로 남아 있음.
- 실제 파일 테스트(`scripts/test_ir_extraction_real_file.py dc1da3f6-... 7944...`) 결과 IR 지표가 모두 `N/A`.
- skill-rag-file 로그에 `Collection expecting embedding with dimension of 384, got 768`가 반복 기록.
## 원인
1. 이전 MiniLM(384d)로 생성된 컬렉션에 새 임베딩(768d)을 조회/삽입하면서 차원 불일치 발생.
2. 업로드 직후 호출 타이밍 이슈가 보조적으로 있을 수 있으나, 차원 불일치 때문에 검색 결과가 0건으로 고정.
## 조치/계획
- **재인덱싱 필요**: `skill_rag_file_79441171-3951-4870-beb8-916d07fe8be5_documents` 등 기존 컬렉션을 768차원으로 재생성 후 해당 document_id를 재인덱싱.
- 재인덱싱 전 임시 우회 없음. 기존 384d 컬렉션 유지 시 검색 0건 → IR `N/A`.
- 재인덱싱 후 `scripts/test_ir_extraction_real_file.py <document_id> <team_id>`로 검증 예정.
## 교훈
- 임베딩 모델 교체 시 기존 벡터 DB 차원과 일관성 확인 필수(배포 전 마이그레이션/dual-write 계획).
- RAG 결과 0건이 지속되면 ChromaDB 차원/메타데이터부터 점검하고, 로그에 dimension mismatch가 없는지 확인.