docs: rb10508_micro ONNX 통합 작업 트러블슈팅 추가
This commit is contained in:
parent
07ffee2123
commit
4b7fc6fcea
@ -118,4 +118,53 @@ volumes:
|
|||||||
1. 로컬 개발자가 Dockerfile 및 requirements.txt 수정
|
1. 로컬 개발자가 Dockerfile 및 requirements.txt 수정
|
||||||
2. 베이스 이미지를 python:3.11-slim으로 변경
|
2. 베이스 이미지를 python:3.11-slim으로 변경
|
||||||
3. GitHub Actions 워크플로우 업데이트
|
3. GitHub Actions 워크플로우 업데이트
|
||||||
4. 배포 후 실제 메모리 사용량 측정
|
4. 배포 후 실제 메모리 사용량 측정
|
||||||
|
|
||||||
|
## 오후 7시 04분 - rb10508_micro ONNX 통합 작업
|
||||||
|
|
||||||
|
### 문제 1: ModuleNotFoundError - sentence_transformers
|
||||||
|
- **증상**: `ModuleNotFoundError: No module named 'sentence_transformers'`
|
||||||
|
- **원인**: requirements.txt에서 sentence-transformers 제거했지만 코드에서 여전히 import
|
||||||
|
- **해결**: memory.py에서 ONNX 기반 임베딩으로 변경
|
||||||
|
|
||||||
|
### 문제 2: ChromaDB embedding function 충돌
|
||||||
|
- **증상**: `ValueError: An embedding function already exists in the collection configuration`
|
||||||
|
- **원인**: rb10508_test의 기존 ChromaDB가 default embedding으로 생성되어 있음
|
||||||
|
- **해결**: rb10508_micro 전용 ChromaDB 경로 사용 (`./chroma_db_micro`)
|
||||||
|
|
||||||
|
### 최종 수정사항
|
||||||
|
1. **memory.py 수정**:
|
||||||
|
```python
|
||||||
|
# 기존
|
||||||
|
from sentence_transformers import SentenceTransformer
|
||||||
|
self.embedder = SentenceTransformer(settings.EMBEDDING_MODEL)
|
||||||
|
|
||||||
|
# 변경
|
||||||
|
import sys
|
||||||
|
sys.path.append('/models/onnx')
|
||||||
|
from chroma_onnx_function import ONNXEmbeddingFunction
|
||||||
|
self.embedding_function = ONNXEmbeddingFunction("/models/onnx/multilingual-MiniLM-L12-v2")
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **ChromaDB 컬렉션 생성 시 embedding_function 전달**:
|
||||||
|
```python
|
||||||
|
self.episodic = self.client.get_or_create_collection(
|
||||||
|
name=f"{settings.ROBING_ID}_episodic",
|
||||||
|
metadata={"type": "episodic"},
|
||||||
|
embedding_function=self.embedding_function
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **docker-compose.yml 수정**:
|
||||||
|
```yaml
|
||||||
|
volumes:
|
||||||
|
- ./chroma_db_micro:/code/chroma_db # 전용 ChromaDB
|
||||||
|
- ./logs:/code/logs:rw
|
||||||
|
- /home/admin/ivada_project/onnx_models:/models/onnx:ro
|
||||||
|
```
|
||||||
|
|
||||||
|
### 교훈
|
||||||
|
1. **코드와 의존성 동기화**: requirements.txt 수정 시 반드시 코드도 함께 수정
|
||||||
|
2. **ChromaDB 데이터 분리**: 서로 다른 embedding function 사용 시 별도 DB 필요
|
||||||
|
3. **ONNX 모델 경로**: 서브디렉토리까지 정확히 지정 (`/models/onnx/multilingual-MiniLM-L12-v2`)
|
||||||
|
4. **추측하지 말고 확인**: 서버의 ONNX 모듈 구조와 사용법 먼저 확인
|
||||||
Loading…
x
Reference in New Issue
Block a user