20230624

Embedding 모델 비교 — ada vs E5

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 필수. 이거 안 붙이면 성능 박살남.
모델dimR@1R@5MRR
ada-00215360.7120.8890.788
e5-large-v210240.6940.8820.774
mpnet-base-v27680.6380.8430.729
KoSimCSE-roberta7680.6010.8120.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로 갈 듯.