docs: rb10508_micro HTTP 임베딩 전환 성공 기록 추가
- 메모리 988MB → 118MB (88% 감소) - HTTP 임베딩 7ms 응답 시간 - 예상보다 훨씬 좋은 결과 달성
This commit is contained in:
parent
aebb94b8ba
commit
31b8c0b719
@ -152,4 +152,65 @@ class HTTPEmbeddingFunction(EmbeddingFunction):
|
|||||||
**다음 작업**:
|
**다음 작업**:
|
||||||
- rb10508_micro의 memory.py 수정
|
- rb10508_micro의 memory.py 수정
|
||||||
- ONNXEmbeddingFunction → HTTPEmbeddingFunction 교체
|
- ONNXEmbeddingFunction → HTTPEmbeddingFunction 교체
|
||||||
- 메모리 절감 효과 측정
|
- 메모리 절감 효과 측정
|
||||||
|
|
||||||
|
## 오후 1시 40분
|
||||||
|
|
||||||
|
### rb10508_micro HTTP 임베딩 전환 대성공
|
||||||
|
|
||||||
|
**목표**: rb10508_micro의 ONNX 임베딩을 HTTP 방식으로 전환
|
||||||
|
|
||||||
|
**구현 방식**:
|
||||||
|
```python
|
||||||
|
# memory.py에 간단한 HTTPEmbeddingFunction 추가
|
||||||
|
class HTTPEmbeddingFunction(EmbeddingFunction):
|
||||||
|
def __init__(self):
|
||||||
|
self.url = f"{os.getenv('SKILL_EMBEDDING_URL', 'http://localhost:8015')}/embed"
|
||||||
|
|
||||||
|
def __call__(self, input: List[str]) -> List[List[float]]:
|
||||||
|
if not input:
|
||||||
|
return []
|
||||||
|
response = requests.post(self.url, json={"texts": input}, timeout=30)
|
||||||
|
response.raise_for_status()
|
||||||
|
return response.json()["embeddings"]
|
||||||
|
```
|
||||||
|
|
||||||
|
**변경사항**:
|
||||||
|
1. memory.py: HTTPEmbeddingFunction 직접 구현 (파일 복사 없이)
|
||||||
|
2. requirements.txt: onnxruntime, transformers 제거
|
||||||
|
3. docker-compose.yml: ONNX 볼륨 제거, SKILL_EMBEDDING_URL 추가
|
||||||
|
|
||||||
|
**배포 결과 - 극적인 메모리 절감**:
|
||||||
|
```
|
||||||
|
배포 전: 988.1 MiB
|
||||||
|
배포 후: 118.4 MiB
|
||||||
|
절약량: 870 MiB (88% 감소!)
|
||||||
|
```
|
||||||
|
|
||||||
|
**성능 검증**:
|
||||||
|
- 헬스체크: 정상 (Up 50초, healthy)
|
||||||
|
- API 응답: 정상 작동
|
||||||
|
- HTTP 임베딩: 7ms 처리 시간
|
||||||
|
- skill-embedding 연동: 완벽
|
||||||
|
|
||||||
|
## 교훈 (추가)
|
||||||
|
|
||||||
|
6. **예상보다 좋은 결과**
|
||||||
|
- 목표 400MB → 실제 118MB (예상의 30%)
|
||||||
|
- ONNX 제거만으로 870MB 절감
|
||||||
|
- PyTorch 의존성이 생각보다 무거웠음
|
||||||
|
|
||||||
|
7. **간단한 구현의 힘**
|
||||||
|
- 파일 복사 대신 직접 구현 (12줄)
|
||||||
|
- 불필요한 추상화 제거
|
||||||
|
- 예외처리는 서비스 레벨에서 충분
|
||||||
|
|
||||||
|
8. **HTTP 임베딩의 장점**
|
||||||
|
- 극적인 메모리 절감 (88%)
|
||||||
|
- 7ms 레이턴시는 무시할 수준
|
||||||
|
- 중앙 관리로 업데이트 용이
|
||||||
|
|
||||||
|
9. **아키텍처 검증**
|
||||||
|
- 임베딩 서비스 분리 전략 성공
|
||||||
|
- 다른 로빙들도 같은 방식 적용 가능
|
||||||
|
- 100개 로빙 = 87GB 메모리 절약 가능
|
||||||
Loading…
x
Reference in New Issue
Block a user