
지난 글에서 '요리 재료 손질'에 비유했던 Chunking을 통해 데이터를 잘 썰어두었다면, 이제 이 재료들을 어떤 기준으로 분류하고 창고(Vector DB)에 저장할지 결정할 차례다.
RAG의 두 번째 핵심 요소, 바로 Embedding이다.
좋은 임베딩은 문서와 질문을 의미 공간에서 정교하게 매칭하여 관련 컨텍스트를 정확히 찾아냅니다.
이번 글에서는 여러 상용/오픈소스 임베딩 모델을 비교한 MRR / Precision@K 테스트 결과를 기반으로 모델별 특성과 활용 방향을 분석합니다.
테스트는 이전과 동일한 문서/질문 셋에 대해 vector 검색 + LLM-as-a-judge 평가로 진행됨.
테스트 결과 요약
이번에도 역시 Gemini 2.5 Flash를 Judge로 활용하여, 검색된 결과가 질문에 대해 얼마나 적합한 문맥을 포함하고 있는지 정량적으로 측정했다.
| 모델명 |
Mean Reciprocal Rank (MRR) |
Mean Precision@K (K=5) |
비고 |
|---|---|---|---|
| Qwen / Qwen3-Embedding-0.6B | 0.7833 (1st) | 0.2680 | 오픈소스 |
| gemini-embedding-001 (dim 3072) | 0.7683 | 0.2960 (1st) | |
| gemini-embedding-001 (dim 1536) | 0.7200 | 0.2520 | |
| gemini-embedding-001 (dim 768) | 0.7390 | 0.2840 | |
| dragonkue / BGE-m3-ko | 0.7423 | 0.2360 | 오픈소스 |
| BAAI / bge-m3 | 0.6907 | 0.2520 | 오픈소스 |
| intfloat / multilingual-e5-large-instruct | 0.6830 | 0.2400 | 오픈소스 |
| text-embedding-3-large (OpenAI) | 0.6350 | 0.2400 | |
| text-embedding-3-small (OpenAI) | 0.5907 | 0.2120 |
모델별 세부 분석
1. Qwen / Qwen3-Embedding-0.6B (MRR 1위)
지난 Chunking 실험에서 Semantic Chunking용으로 썼을 때는 다소 실망스러운 결과를 보여주었던 Qwen이, 순수하게 검색(Retrieval) 성능으로만 평가하니 MRR 0.7833으로 당당히 1위를 차지했다.
- 2025년 중순에 공개된 최신 모델로, 0.6B라는 가벼운 파라미터 사이즈임에도 불구하고 매우 강력하다.
- 1024차원을 기본으로 하며, Instruction-aware 기능을 탑재하고 있어 질문의 의도를 파악하는 능력이 탁월하다.
- 한국어를 포함한 100개 이상의 언어를 지원하는데, 이번 테스트를 통해 한국어 문맥 파악 능력이 상당 수준임을 입증했다.
2. dragonkue / BGE-m3-ko
오리지널 bge-m3 모델보다 확실히 개선된 성능을 보여주었다.
- BAAI의 BGE-M3 모델을 기반으로 한국어 데이터셋을 추가 학습시킨 모델이다.
- 임베딩 차원은 1024차원이며, 최대 8192 토큰이라는 긴 컨텍스트를 지원한다.
3. BAAI / bge-m3 & multilingual-e5-large-instruct
다른 오픈소스 모델들도 준수한 성적을 냈지만, 최신 모델들에 비해서는 다소 아쉬운 MRR을 기록했다.
- bge-m3: 2024년 초 공개된 모델로, Dense/Sparse/Multi-vector 검색을 모두 지원하는 모델이다. 이번 테스트에서는 기본 Dense 검색만 사용했는데, 한국어 전용 튜닝 버전(BGE-m3-ko)에 비해 순위가 밀렸다.
- multilingual-e5-large-instruct: 마이크로소프트에서 개발한 임베딩 모델이다. 'query: '라는 접두사를 붙여 질문의 맥락을 강조하는 방식을 사용하는데, 범용성은 좋으나 특정 도메인이 섞인 한국어 문서에서 최신 모델에 비해 검색 정밀도가 낮게 측정되었다.
유료 모델 비교 : Gemini vs OpenAI
이번 실험에서 가장 흥미로운 지점 중 하나는 Gemini와 OpenAI의 차이가 매우컸다는 점이다.
- Gemini-embedding-001 (dim 3072)
차원이 높을수록 성능이 올라가는 정직한 모습을 보여주었다. 특히 Precision@K에서 전체 1위를 기록했는데, 이는 검색된 5개의 청크 중 정답과 관련된 정보가 가장 풍부하게 들어있다는 뜻이다. LLM에게 풍부한 정보를 제공해야 하는 RAG 아키텍처에서 매우 훌륭한 선택지가 될 수 있다.
- OpenAI (text-embedding-3 series)
의외로 이번 한국어 데이터셋 테스트에서는 가장 낮은 점수대를 기록했다. 글로벌 벤치마크 점수는 높을지 몰라도, 한국어 기술 문서나 특정 보고서 형태의 데이터에서는 오픈소스 모델한테도 밀리는 경향을 보였다.
결론: 무엇을 선택해야 할까?
실험 결과를 통해 얻은 결론은 다음과 같다.
1. 가성비와 정확도를 모두 잡고 싶다면?
망설임 없이 Qwen3-Embedding-0.6B를 사용하면 된다. 오픈소스임에도 불구하고 MRR이 가장 높았다.
2. LLM에게 최대한 많은 정보를 정확히 전달하고 싶다면?
Gemini embedding (3072 dim, 기본값)을 사용하는 것을 추천한다. 하지만 유료 모델이기도하고, Qwen3-embedding과 차이가 크지 않으니, 굳이 사용할 필요가 없기 한 거 같다.
Reference
- https://aws.amazon.com/what-is/embeddings-in-machine-learning/
- https://huggingface.co/intfloat/multilingual-e5-large-instruct
- https://huggingface.co/Qwen/Qwen3-Embedding-0.6B
- https://huggingface.co/BAAI/bge-m3
- https://huggingface.co/dragonkue/BGE-m3-ko
- https://platform.openai.com/docs/guides/embeddings
- https://ai.google.dev/gemini-api/docs/embeddings?hl=ko
'AI' 카테고리의 다른 글
| Anthropic: Demystifying evals for AI agents (1) | 2026.01.16 |
|---|---|
| [RAG] #4 - Reranking, Query Expand, etc .. (0) | 2026.01.03 |
| RAG #2 - Chunking (0) | 2025.12.28 |
| RAG #1 (0) | 2025.12.28 |
| Google file search (0) | 2025.11.18 |