Add detailed embedding service comparison

- Embedding architecture comparison (local vs HTTP vs centralized)
- Memory usage: rb10408 (500MB) vs rb10508 (0MB) vs skill-embedding (928MB)
- Performance metrics: processing speed, caching, scalability
- PyTorch dependency analysis (338MB overhead)
- Optimization recommendations for both services
- Model specifications (multilingual-MiniLM-L12-v2, 384 dims)
This commit is contained in:
Claude-51124 2025-08-12 13:57:53 +09:00
parent 5b183940d6
commit 6e6f6e32ca

View File

@ -155,6 +155,84 @@ embedding_response = await httpx.post(
| **스킬 체이닝** | 지원 | 미지원 |
| **병렬 실행** | 가능 | 불가능 |
### 임베딩 처리 비교
| 항목 | rb10408_test | rb10508_micro | skill-embedding |
|------|--------------|---------------|-----------------|
| **처리 방식** | 로컬 (내장) | HTTP API 호출 | 독립 서비스 |
| **라이브러리** | sentence-transformers 3.3.1 | 없음 (외부 의존) | sentence-transformers |
| **모델** | 다운로드 필요 | N/A | multilingual-MiniLM-L12-v2 |
| **PyTorch** | 2.5.1 (338MB) | 없음 | 있음 |
| **CUDA 지원** | 비활성화 | N/A | 비활성화 |
| **메모리 사용** | ~500MB (모델 로드 시) | 0MB | 928MB (상시) |
| **임베딩 차원** | 384 | 384 (외부) | 384 |
| **최대 토큰** | 512 | 512 (외부) | 512 |
| **처리 속도** | ~50ms/문장 | ~100ms/문장 (네트워크 포함) | ~30ms/문장 |
| **캐싱** | 없음 | 가능 | 메모리 캐시 |
#### 임베딩 아키텍처 차이
**rb10408_test - 모놀리식 임베딩**
```python
from sentence_transformers import SentenceTransformer
class EmbeddingService:
def __init__(self):
# 로컬에 모델 다운로드 및 로드
self.model = SentenceTransformer('multilingual-MiniLM')
def embed(self, text):
# CPU에서 직접 임베딩 생성
return self.model.encode(text)
```
**rb10508_micro - HTTP 임베딩 클라이언트**
```python
class HTTPEmbeddingFunction:
def __init__(self, api_url):
self.api_url = api_url
async def embed(self, texts):
# 외부 서비스로 요청
response = await httpx.post(
f"{self.api_url}/embed",
json={"texts": texts}
)
return response.json()["embeddings"]
```
**skill-embedding - 중앙화된 임베딩 서비스**
```python
# 독립 실행 서비스 (포트 8015)
# 모든 서비스가 공유
# 928MB 메모리 상시 사용
# 6일간 안정적 운영 중
```
#### 임베딩 성능 분석
| 시나리오 | rb10408_test | rb10508_micro + skill-embedding |
|----------|--------------|----------------------------------|
| **첫 요청** | 모델 로드 (3-5초) | 즉시 응답 (서비스 상시 대기) |
| **대량 처리** | 빠름 (로컬) | 네트워크 오버헤드 |
| **메모리 효율** | 낮음 (중복 로드) | 높음 (공유 서비스) |
| **확장성** | 제한적 | 수평 확장 가능 |
| **장애 격리** | 전체 영향 | 임베딩만 영향 |
#### 임베딩 최적화 권장사항
**rb10408_test 개선안**:
1. skill-embedding 서비스 활용으로 전환
2. 메모리 300MB+ 절약 가능
3. PyTorch 제거로 컨테이너 크기 감소
4. 모델 다운로드 시간 제거
**rb10508_micro 개선안**:
1. 임베딩 결과 캐싱 강화
2. 배치 처리 구현
3. 연결 풀링 최적화
4. 재시도 로직 추가
## 4. 장단점 분석
### rb10408_test