docs: rb10508_micro ONNX 통합 작업 트러블슈팅 추가
This commit is contained in:
parent
07ffee2123
commit
4b7fc6fcea
@ -118,4 +118,53 @@ volumes:
|
||||
1. 로컬 개발자가 Dockerfile 및 requirements.txt 수정
|
||||
2. 베이스 이미지를 python:3.11-slim으로 변경
|
||||
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