ada-002만 쓰다가 비용이 점점 부담되어서 오픈소스로 갈아탈 수 있는지 한번 재봤다. 후보는 intfloat/e5-large-v2, sentence-transformers/all-mpnet-base-v2, 그리고 한글 케이스까지 봐야 해서 BM-K/KoSimCSE-roberta.
세팅
- 데이터: 한영 혼재 사내 FAQ/문서 1.1만 쌍 (query-passage)
- 지표: Recall@1, Recall@5, MRR
- E5는 "query: ..." / "passage: ..." prefix 필수. 이거 안 붙이면 성능 박살남.
| 모델 | dim | R@1 | R@5 | MRR |
|---|---|---|---|---|
| ada-002 | 1536 | 0.712 | 0.889 | 0.788 |
| e5-large-v2 | 1024 | 0.694 | 0.882 | 0.774 |
| mpnet-base-v2 | 768 | 0.638 | 0.843 | 0.729 |
| KoSimCSE-roberta | 768 | 0.601 | 0.812 | 0.693 |
ada가 여전히 제일 좋다. 근데 차이가 엄청 크진 않다. 특히 e5-large-v2는 prefix만 제대로 붙이면 2%p 안쪽 차이.
비용 계산: 1.1만 쌍 색인은 ada가 일회성 $0.8 정도인데, 매일 증분 100K 문단 × 30일이면 월 $12. 적은데 문제는 retrieval 시에도 쿼리 embedding이 API 호출이라는 점. 분당 수백 쿼리 들어오면 이게 쌓인다.
E5는 A10G 한 대에 올려놓으면 batch 32 기준 ~250 pairs/s. 셀프 호스팅 비용이 월 $250 언저리. 쿼리가 많으면 금방 break-even.
한글 단일 태스크엔 KoSimCSE도 괜찮지만 영어 섞이면 바로 무너져서 결국 E5로 갈 듯.
댓글 없음:
댓글 쓰기