콘텐츠로 이동

BGE-M3 vs Qwen3-Embedding-0.6B 벡터 검색 품질 비교

BGE-M3와 Qwen3-Embedding 모델의 벡터 검색 품질을 비교합니다.

동일한 Azure AI Search Integrated Vectorization 파이프라인에서 BGE-M3와 Qwen3-Embedding-0.6B의 벡터 검색 품질을 비교한 결과


📌 핵심 요약

항목 BGE-M3 Qwen3-Embedding-0.6B
파라미터 수 0.6B 0.6B
최대 임베딩 차원 1024 1024
MTEB Multilingual Score 59.56 64.33 (+4.77)
컨텍스트 길이 8K 32K
라이선스 MIT Apache 2.0
Instruction 지원 ✗ ✅
벡터 검색 1위 정확도 (영어 5건) 5/5 5/5
벡터 검색 1위 정확도 (한글 5건) 2/5 2/5
Score 차별력 (1위-2위 gap, 영어) 평균 0.027 평균 0.056
한글 벡터 Score 높음 낮음
한글 하이브리드 검색 S펜 매칭 실패 S펜 매칭 정확

📌 영어 문서에서는 Qwen3가 Score 차별력에서 우위, 한글 문서에서는 BGE-M3가 전반적 Score에서 우위이나 하이브리드 검색의 고유명사 매칭은 Qwen3가 정확.


모델 소개

BAAI/bge-m3

Beijing Academy of AI(BAAI)에서 개발한 다국어 임베딩 모델. Dense, Sparse, ColBERT 세 가지 리트리벌 방식을 하나의 모델에서 동시에 지원하는 것이 특징이다. 100개 이상 언어를 지원하며, 다국어 벤치마크에서 꾸준히 상위권에 위치한다.

항목 값
파라미터 568M
벡터 차원 1024 (고정)
최대 토큰 8192
다국어 100+ 언어
리트리벌 Dense + Sparse + ColBERT
이미지 크기 ~2.3GB
CPU 인덱싱 속도 5문서 ~2분

Qwen/Qwen3-Embedding-0.6B

Alibaba Qwen 팀에서 개발한 경량 임베딩 모델. Instruction-tuned 방식으로, 쿼리 앞에 task instruction을 붙이면 검색 품질이 향상된다. 32K 컨텍스트와 동적 벡터 차원(256~8192)을 지원하여 긴 문서나 저장 공간 최적화에 유리하다. trust_remote_code=True 설정이 필요하다.

항목 값
파라미터 600M
벡터 차원 동적 (256~8192, 기본 1024)
최대 토큰 32768
다국어 영어, 중국어, 한국어 등 주요 언어
Instruction 지원 (쿼리 앞 task prefix)
이미지 크기 ~2.5GB
CPU 인덱싱 속도 5문서 ~10분

💡 두 모델 모두 sentence-transformers 호환이므로 EMBEDDING_MODEL 환경변수만 변경하면 동일 파이프라인에서 교체 가능하다.


🔍 비교 조건

항목 값
AI Search search-example-koreacentral-01 (Standard, koreacentral)
BGE-M3 인덱스 sample-vector-idx (영어) / samsung-bge-idx (한글)
Qwen3 인덱스 qwen3-vector-idx (영어) / samsung-qwen-idx (한글)
데이터 소스 (영어) sample-docs-ds (5건 Azure 서비스 설명 문서)
데이터 소스 (한글) samsung-docs (7건 삼성 갤럭시 제품 소개)
벡터 차원 1024 (동일)
알고리즘 HNSW cosine (동일 파라미터)
HTTPS 엔드포인트 ca-embedding-example-01 / ca-qwen3-example-01 (Container Apps)
Instruction 사용 두 모델 모두 미사용 (동일 조건)

테스트 문서 목록

파일 내용
azure-kubernetes.txt AKS 설명 (컨테이너 오케스트레이션)
azure-container-apps.txt Container Apps 설명 (서버리스 컨테이너)
azure-functions.txt Functions 설명 (서버리스 이벤트 드리븐)
azure-cosmos-db.txt Cosmos DB 설명 (글로벌 분산 DB)
azure-ai-search.txt AI Search 설명 (검색 서비스)

🧪 벡터 검색 비교

쿼리 1: "How does Azure handle container orchestration?"

순위 BGE-M3 Score Qwen3 Score 문서
1 0.7421 0.7903 azure-kubernetes.txt ✅
2 0.7404 0.7438 azure-container-apps.txt
3 0.7031 0.7202 azure-functions.txt
4 0.7031 0.7038 azure-cosmos-db.txt
5 0.6931 0.6534 azure-ai-search.txt

분석: 두 모델 모두 AKS를 1위로 정확하게 선정. Qwen3가 1위 Score(0.79)가 더 높고, 1-2위 gap이 BGE-M3(0.002) 대비 Qwen3(0.047)로 23배 더 큰 차별력을 보여준다.


쿼리 2: "serverless event-driven compute platform"

순위 BGE-M3 Score Qwen3 Score 문서
1 0.7333 0.8251 azure-functions.txt ✅
2 0.6930 0.7321 azure-container-apps.txt
3 0.6693 0.6998 azure-cosmos-db.txt
4 0.6487 0.6599 azure-kubernetes.txt
5 0.6108 0.6524 azure-ai-search.txt

분석: Functions를 1위로 정확하게 선정. Qwen3의 1위 Score(0.825)가 BGE-M3(0.733)보다 훨씬 높고, 1-2위 gap도 Qwen3(0.093) > BGE-M3(0.040)로 확연한 차이.


쿼리 3: "globally distributed low-latency database"

순위 BGE-M3 Score Qwen3 Score 문서
1 0.7323 0.7679 azure-cosmos-db.txt ✅
2 0.6466 0.6446 azure-kubernetes.txt / azure-ai-search.txt
3 0.6385 0.6387 azure-container-apps.txt / azure-functions.txt
4 0.6250 0.6200 azure-ai-search.txt / azure-container-apps.txt
5 0.6219 0.5845 azure-functions.txt / azure-kubernetes.txt

분석: Cosmos DB를 1위로 정확하게 선정. Qwen3의 1-2위 gap(0.123)이 BGE-M3(0.086)보다 크며, Qwen3는 2위 이하 문서의 순서가 약간 다르다 (AI Search가 2위로 올라옴).


쿼리 4: "컨테이너를 서버리스로 실행하는 Azure 서비스" (한국어)

순위 BGE-M3 Score Qwen3 Score 문서
1 0.7615 0.7497 azure-container-apps.txt / azure-kubernetes.txt
2 0.7604 0.7471 azure-functions.txt / azure-container-apps.txt
3 0.7216 0.7258 azure-kubernetes.txt / azure-functions.txt
4 0.6982 0.6928 azure-cosmos-db.txt
5 0.6690 0.6608 azure-ai-search.txt

분석: 한국어 쿼리 + 영어 문서 크로스링구얼 매칭. BGE-M3는 Container Apps를 1위로, Qwen3는 AKS를 1위로 선정. 쿼리가 "컨테이너를 서버리스로 실행"이므로 Container Apps가 더 적합한 답이라고 볼 수 있어 BGE-M3가 이 쿼리에서 더 정확했다. 다만 Score 차이가 매우 근소하다.

⚠️ 두 모델 모두 영어 문서에 대해 한국어 쿼리로 잘 매칭하지만, 이 테스트에서 BGE-M3가 한국어 크로스링구얼 매칭에서 약간 우위를 보인다.


쿼리 5: "I need to run a machine learning model cheaply" (간접적 쿼리)

순위 BGE-M3 Score Qwen3 Score 문서
1 0.6304 0.6457 azure-cosmos-db.txt / azure-functions.txt
2 0.6267 0.6233 azure-kubernetes.txt / azure-ai-search.txt
3 0.6265 0.6124 azure-functions.txt / azure-container-apps.txt
4 0.6259 0.6058 azure-container-apps.txt / azure-cosmos-db.txt
5 0.6135 0.5804 azure-ai-search.txt / azure-kubernetes.txt

분석: 테스트 문서 중 ML에 직접적으로 관련된 문서가 없어 두 모델 모두 Score가 전반적으로 낮다. BGE-M3는 모든 문서의 Score가 0.61~0.63으로 거의 동일하게 나온 반면, Qwen3는 Functions(0.646)를 상대적으로 높게 랭킹하여 약간 더 차별력 있는 결과를 보여주었다.


📊 하이브리드 검색 비교

키워드 검색 + 벡터 검색을 결합한 하이브리드 검색에서는 RRF(Reciprocal Rank Fusion) 스코어링이 적용되어 모델 간 차이가 줄어든다.

"serverless event-driven" (키워드) + "serverless event-driven compute" (벡터)

순위 BGE-M3 Qwen3 문서
1 0.0333 0.0333 azure-functions.txt
2 0.0328 0.0328 azure-container-apps.txt
3 0.0161 0.0161 azure-cosmos-db.txt

"database global replication" (키워드) + "globally distributed database with replication" (벡터)

순위 BGE-M3 Qwen3 문서
1 0.0333 0.0333 azure-cosmos-db.txt
2 0.0164 0.0164 azure-kubernetes.txt / azure-ai-search.txt
3 0.0161 0.0161 azure-container-apps.txt / azure-functions.txt

📌 하이브리드 검색에서 1위 결과는 동일하다. RRF 스코어링이 벡터 Score 차이를 상쇄하여, 하이브리드 검색에서는 모델 차이가 거의 없다. 2위 이하 순서에서만 약간의 차이가 발생한다.


🇰🇷 한글 문서 벡터 검색 비교

영어 Azure 서비스 문서 외에, 삼성 갤럭시 한글 제품 소개 문서 7건으로 동일한 비교를 수행했다.

비교 조건

항목 값
BGE-M3 인덱스 samsung-bge-idx + bge-m3-vectorizer
Qwen3 인덱스 samsung-qwen-idx + qwen3-vectorizer
데이터 소스 samsung-docs blob container, 한글 7건
벡터 차원 1024 (동일)
CPU 인덱싱 속도 BGE-M3 ~2분 vs Qwen3 ~10분

테스트 문서 목록

파일 내용
Galaxy S25 Ultra 200MP 카메라, S펜 내장, AI 기능 플래그십
Galaxy S25 표준 플래그십 모델
Galaxy Z Fold6 대화면 폴더블, 멀티태스킹
Galaxy Z Flip6 컴팩트 폴더블, 가격 경쟁력
Galaxy S24 FE 팬 에디션, 가성비
Galaxy A56 중저가 AI폰, 5000mAh 배터리, 이틀 사용
Galaxy Ring 건강 모니터링 웨어러블

🧪 벡터 검색 비교 (한글)

쿼리 1: "카메라 성능이 가장 좋은 스마트폰"

순위 BGE-M3 Score Qwen3 Score 문서
1 0.665 0.621 Galaxy A56 ❌

분석: 정답은 S25 Ultra (200MP 카메라)이지만, 두 모델 모두 A56을 1위로 선정. BGE-M3 score spread(0.664~0.646)이 Qwen3(0.620~0.604)보다 넓다. 제품 문서가 모두 카메라를 언급하고 있어 세부 사양 기반 랭킹에 한계.


쿼리 2: "접히는 폴더블 스마트폰 중 가격이 저렴한 모델"

순위 BGE-M3 Score Qwen3 Score 문서
1 0.676 0.607 Galaxy Z Fold6 ❌

분석: 정답은 Z Flip6 (더 저렴)이지만, 두 모델 모두 Z Fold6을 1위로 선정. BGE-M3는 Flip6을 2위에, Qwen3는 Flip6을 4위까지 밀어냄. "폴더블"이라는 키워드에 치중한 임베딩 매칭의 한계.


쿼리 3: "건강 모니터링 수면 추적 웨어러블 디바이스"

순위 BGE-M3 Score Qwen3 Score 문서
1 0.662 0.643 Galaxy Ring ✅
2 0.618 0.566 —

분석: 두 모델 모두 Galaxy Ring을 1위로 정확하게 선정. BGE-M3 1-2위 gap(0.044)과 Qwen3 gap(0.077)으로, Qwen3가 더 큰 차별력을 보여준다. 명확한 도메인 구분이 있는 쿼리에서 양쪽 모두 정확.


쿼리 4: "가성비 좋은 갤럭시 AI 스마트폰 100만원 이하"

순위 BGE-M3 Score Qwen3 Score 문서
1 0.698 0.675 Galaxy A56 ✅

분석: 두 모델 모두 A56을 1위로 정확하게 선정. BGE-M3가 S24 FE를 2위로 배치하여 올바른 순서를 보여주었으나, Qwen3는 Galaxy Ring을 2위에 배치 (이상치).


쿼리 5: "which phone has the best battery life and longest usage time" (영→한 크로스링구얼)

순위 BGE-M3 Score Qwen3 Score 문서
1 0.662 0.600 S25 Ultra / Ring ❌

분석: 정답은 A56 (5000mAh, 이틀 사용 가능)이지만, BGE-M3는 S25 Ultra를, Qwen3는 Ring을 1위로 선정. 영어 쿼리 → 한글 문서 매칭에서 두 모델 모두 "battery life"의 의미를 정확히 매칭하지 못함.


📊 하이브리드 검색 비교 (한글)

"폴더블 큰 화면 멀티태스킹" (키워드) + "폴더블 스마트폰으로 큰 화면에서 멀티태스킹" (벡터)

순위 BGE-M3 Qwen3 문서
1 ✅ ✅ Galaxy Z Fold6
2 — — Galaxy Z Flip6
3 — — Galaxy S25

분석: 두 모델 모두 Z Fold6 → Z Flip6 → S25 순서로 동일하게 정확. 하이브리드 검색에서 "폴더블" 키워드가 보강 역할.


"S펜 지원 플래그십 모델" (키워드) + "S펜을 지원하는 삼성 최상위 플래그십 스마트폰" (벡터)

순위 BGE-M3 Qwen3 문서
1 S24 FE ❌ S25 Ultra ✅
2 S25 S25
3 S25 Ultra S24 FE

분석: S25 Ultra가 S펜 내장 플래그십이므로 정답. Qwen3가 정확하게 S25 Ultra를 1위로 선정한 반면, BGE-M3는 S24 FE를 1위로 잘못 배치. "S펜"이라는 고유명사 키워드가 있음에도 BGE-M3는 키워드 매칭에 실패. 한글 하이브리드 검색에서 Qwen3가 우위.


한글 문서 비교 종합

항목 BGE-M3 Qwen3
벡터 검색 1위 정확도 2/5 2/5
전반적 Score 높이 높음 낮음
건강/가성비 (명확한 쿼리) ✅ 정확 ✅ 정확
카메라/배터리 (세부 비교) ❌ 부정확 ❌ 부정확
하이브리드 폴더블 ✅ 정확 ✅ 정확
하이브리드 S펜 ❌ 실패 ✅ 정확
인덱싱 속도 (7문서) ~2분 ~10분

📌 한글 문서에서는 BGE-M3가 전반적으로 높은 Score를 보이지만, Qwen3가 하이브리드 검색에서 고유명사("S펜") 매칭에 더 정확했다. 영어 문서 결과와 대조적으로, 한글 환경에서는 두 모델의 강약이 바뀌는 양상을 보인다.


결론

관점 우위 모델 설명
영어 1위 정확도 동률 5/5 쿼리에서 양쪽 모두 정확
한글 1위 정확도 동률 2/5 (명확한 쿼리만 정확, 세부 비교 쿼리 실패)
Score 차별력 Qwen3 영어: 1-2위 gap 평균 2배 이상, 한글: 건강 모니터링 gap 더 큼
영어 벡터 검색 Qwen3 전반적으로 Score가 더 높고 랭킹이 선명
한글 벡터 Score BGE-M3 전반적으로 Score가 더 높음 (영어와 반대)
한국어 크로스링구얼 BGE-M3 영어 쿼리→한글 문서, 한글 쿼리→영어 문서 모두 우위
하이브리드 검색 (영어) 동률 RRF로 차이 상쇄됨
하이브리드 검색 (한글) Qwen3 "S펜" 고유명사 매칭에서 정확, BGE-M3 실패
인덱싱 속도 (CPU) BGE-M3 BGE-M3 ~2분 vs Qwen3 ~10분 (한글 7문서 기준)
Instruction 활용 Qwen3 쿼리에 Instruction prefix 추가 시 추가 성능 향상 가능

권장 사항

이 비교는 아래 제약 조건 하에서의 결과이므로 절대적 품질 판단이 아닌 참고용으로 활용해야 한다.

제약 영향
CPU 전용 추론 GPU 대비 인덱싱 속도 느림 (Qwen3는 5문서에 ~10분). 추론 정밀도(FP32 vs FP16)에 따른 품질 차이 미확인
소형 모델 (0.6B) BGE-M3(568M), Qwen3(600M) 모두 경량 모델. 대형 모델(e.g. gte-Qwen2-7B, e5-mistral-7b) 대비 의미 구분 능력에 한계
소량 문서 영어 5건, 한글 7건으로 통계적 유의미성 부족. 대규모 코퍼스에서 결과가 달라질 수 있음
Instruction 미사용 Qwen3는 쿼리/문서에 task instruction prefix를 붙이면 품질이 향상되지만, 현재 Embedding API가 단일 엔드포인트(/api/embed)로 인덱싱과 쿼리를 동시에 처리하므로 instruction 분기를 적용하지 않음
Chunk 미분할 문서 전체를 단일 벡터로 임베딩. 실제 운영에서는 텍스트 분할(chunking) 적용 시 결과가 달라짐

📋 참고

참고 문서