diff --git a/ideas/250811_claude_rb10408_vs_rb10508_비교분석.md b/ideas/250811_claude_rb10408_vs_rb10508_비교분석.md index 3318058..5458f90 100644 --- a/ideas/250811_claude_rb10408_vs_rb10508_비교분석.md +++ b/ideas/250811_claude_rb10408_vs_rb10508_비교분석.md @@ -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