docs: 임베딩 전환 문제 정의 명확화 (95%+)

- 한 문장 문제 정의: 0_VALUE 정책과 불일치
- 왜 문제인가: 상태함수=벡터, 멀티모달, 차원 혼재
- 현상 vs 문제 분리, 영향 범위 추가
- 0_VALUE 전수 교체 결정 반영

Made-with: Cursor
This commit is contained in:
happybell80 2026-03-16 13:09:35 +09:00
parent a435171214
commit 504f0d095d

View File

@ -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)