diff --git a/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md index e40b427..eb411a1 100644 --- a/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md +++ b/journey/troubleshooting/260316_임베딩_Gemini_Embedding_2_전환_문제오픈.md @@ -6,54 +6,77 @@ tags: [troubleshooting, embedding, gemini, rag, robeing] ## 상위 원칙 +- [0_VALUE 임베딩 정책](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/embedding-policy.md) - [로빙 문서 작성 원칙](../../book/300_architecture/312_writing-principles.md) - [백엔드 PostgreSQL ChromaDB Vector Memory](../../book/300_architecture/330_백엔드_PostgreSQL_ChromaDB_Vector_Memory.md) ## 문제 정의 -- 로빙의 임베딩은 현재 `skill-embedding`(ko-sroberta 768d)과 서비스별 혼재 경로를 사용합니다. -- 멀티모달(이미지, PDF, 오디오) 데이터는 캡셔닝 파이프라인 없이 직접 임베딩할 수 없습니다. -- 리서치(260315)에서 Gemini Embedding 2 도입이 NAS RAG·Company X에 유리하다고 정리했으나, 실행 계획과 문제 문서가 없어 전환 여부가 미결정 상태입니다. +**로빙의 임베딩 구조가 0_VALUE 임베딩 정책과 불일치한다.** -## 현재 상태 +0_VALUE 정책은 Gemini Embedding 2, 768d, 전수 교체, 멀티모달을 요구한다. 현재 구현은 이를 충족하지 않는다. -| 항목 | 내용 | +### 왜 문제인가 + +- **상태함수=벡터 철학**: 임베딩은 정보의 상태(ψ)를 벡터로 표현한다. 현재 ko-sroberta·텍스트 전용 구조는 이 표현을 제한한다. +- **멀티모달 미지원**: PDF·이미지는 캡셔닝 파이프라인을 거쳐야 하므로 비용·지연·정보 손실이 발생한다. +- **차원 혼재**: 768/384 드리프트는 검색 품질·유지보수 부담을 증가시킨다. + +### 현상(증상) + +| 현상 | 내용 | |------|------| -| skill-embedding | ko-sroberta(multitask) 768d, 텍스트 전용 | -| rb8001 메모리 | ChromaDB 768/384 차원 드리프트 잔존 | -| skill-rag-file | Company X 384d, intent_prototypes pgvector 768d | +| 모델 | ko-sroberta(multitask) 768d, 텍스트 전용 | +| 경로 | skill-embedding + 서비스별 혼재 (skill-rag-file 384d, intent_prototypes 768d) | +| 차원 | rb8001 메모리 ChromaDB 768/384 드리프트 잔존 | | 멀티모달 | 미지원 (이미지·PDF는 텍스트 추출 후 임베딩) | | 청킹 | Micro-chunking(300~500 단어) 위주 | -## 기대 상태 +## 현재 상태 + +- skill-embedding: ko-sroberta 768d +- skill-rag-file: Company X 384d, intent_prototypes pgvector 768d +- rb8001 메모리: ChromaDB 768/384 차원 드리프트 +- 기존 데이터: 적음 → 전수 교체 시 기술 부채 거의 없음 + +## 기대 상태 (0_VALUE 정책 기준) | 항목 | 내용 | |------|------| -| 임베딩 모델 | Gemini Embedding 2 (또는 하이브리드) 도입 | -| 멀티모달 | PDF·이미지 직접 임베딩 가능 (캡셔닝 파이프라인 생략) | -| 차원 | MRL로 768d 유지 또는 1536/3072 선택 | -| 청킹 | Macro-chunking(2,000~4,000 토큰) 전환 검토 | -| 비용 | 무료 티어·품질 비교 후 부분/하이브리드 적용 | +| 모델 | Gemini Embedding 2 | +| 차원 | 768 (MRL). 향후 3,000 이상 확장 검토 | +| 적용 | 전 프로젝트 전수 교체 | +| 멀티모달 | PDF·이미지 직접 임베딩 | +| 청킹 | Macro-chunking(2,000~4,000 토큰) 검토 | -## 관련 문서 +## 영향 범위 -- [Gemini Embedding 2 리서치: 비용·청킹·도입 검토](../research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md) -- [rb8001 메모리 ChromaDB 768/384 차원 드리프트](./260312_rb8001_memory_chromadb_768_384_dimension_drift.md) -- [skill-embedding 서비스 구축](./250805_happybell80_skill-embedding서비스구축.md) +- skill-embedding, skill-rag-file, rb8001 메모리, NAS RAG, Company X RAG +- ChromaDB·pgvector 스키마 및 청킹 전략 +- 0_VALUE 정책을 따르는 모든 프로젝트 ## 재현 조건 -- NAS RAG, Company X RAG, rb8001 메모리에서 임베딩 품질·비용·멀티모달 요구가 생길 때 -- PDF·이미지 기반 검색 품질 개선이 필요할 때 +- NAS RAG, Company X RAG, rb8001 메모리에서 임베딩 요청 시 +- PDF·이미지 기반 검색 수행 시 +- 0_VALUE 임베딩 정책과 현재 구현을 대조할 때 ## 확인된 사실 -- 리서치(260315)에서 Gemini Embedding 2 특징·비용·청킹 전략이 정리됨 -- NAS RAG에 부분 도입, 하이브리드(미디어=Gemini 2, 텍스트=저렴) 권장 -- `rb8001/scripts/test_gemini_embedding_2.py`로 API 테스트 스크립트 존재 +- 0_VALUE 임베딩 정책 확정: Gemini 2, 768d, 전수 교체, 멀티모달 +- 리서치(260315)에서 Gemini Embedding 2 특징·비용·청킹 전략 정리됨 +- `rb8001/scripts/test_gemini_embedding_2.py` API 테스트 스크립트 존재 +- 기존 데이터 적음 → 전수 교체 부담 낮음 ## 미확정 항목 -- skill-embedding 교체 vs Gemini API 직접 호출 병용 -- ChromaDB/pgvector 스키마 차원(768/1536/3072) 확정 -- 비용·품질 A/B 테스트 범위 및 기준 +- skill-embedding 교체 vs Gemini API 직접 호출 경로 설계 +- 청킹 단위 확대 적용 시점 및 검증 기준 + +## 관련 문서 + +- [0_VALUE 임베딩 정책](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/embedding-policy.md) +- [Gemini Embedding 2 리서치: 비용·청킹·도입 검토](../research/rag/260315_Gemini_Embedding_2_리서치_비용_청킹_도입검토.md) +- [임베딩 Gemini Embedding 2 전환 계획](../plans/260316_임베딩_Gemini_Embedding_2_전환_계획.md) +- [rb8001 메모리 ChromaDB 768/384 차원 드리프트](./260312_rb8001_memory_chromadb_768_384_dimension_drift.md) +- [skill-embedding 서비스 구축](./250805_happybell80_skill-embedding서비스구축.md)