DOCS/journey/troubleshooting/251122_happybell80_chromadb_dimension_mismatch.md

28 lines
1.6 KiB
Markdown

# ChromaDB 차원 불일치로 RAG 검색 실패
- **날짜**: 2025-11-22
- **작성자**: happybell80
- **관련 서비스**: skill-rag-file (8508), skill-embedding (8515), rb8001
- **관련 문서**:
- 370_임베딩_서비스_분리_아키텍처.md
- 2025_ko_sroberta_runtime_eval.md
- 251122_rag_search_chunk_text_key_fix.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차원으로 재생성, 731개 청크 재인덱싱 완료.
- **후속 문제 발견**: 재인덱싱 후에도 IR 결과 N/A → API 응답 키 불일치 발견 (`chunk_text` vs `content`)
- **참고**: 251122_rag_search_chunk_text_key_fix.md
## 교훈
- 임베딩 모델 교체 시 기존 벡터 DB 차원과 일관성 확인 필수(배포 전 마이그레이션/dual-write 계획).
- RAG 결과 0건이 지속되면 ChromaDB 차원/메타데이터부터 점검하고, 로그에 dimension mismatch가 없는지 확인.