한국어 임베딩 모델 추천을 한 줄로 답하면 이렇다. 2026년 6월 기준 한국어 RAG·검색 시스템의 기본값은 BAAI/bge-m3 또는 한국어 특화 파인튜닝인 nlpai-lab/KURE-v1이고, 짧은 문장 유사도만 다루는 가벼운 워크로드라면 BM-K/KoSimCSE-roberta를 그대로 써도 된다. 그 외에는 multilingual-e5-large가 다국어 혼합 환경의 안전한 베이스라인이다.
임베딩 모델은 LLM처럼 자주 바뀌지 않지만, 한국어는 모델 선택이 검색 품질을 좌우한다. 영어 위주의 OpenAI text-embedding-3-small을 한국어에 그대로 쓰면 조사·존댓말 차이가 동일 문장을 다른 벡터로 흩뜨린다. 반대로 KoSimCSE처럼 짧은 STS로 학습한 모델은 5천 토큰짜리 문서 검색에 무리가 있다. 한국어 임베딩 모델 추천의 핵심은 “어떤 워크로드를 어떤 모델에 매핑할 것인가”다. 이 글은 BGE-M3, multilingual-e5-large, KURE-v1, KoSimCSE-roberta, jhgan/ko-sroberta-multitask 다섯을 ko-mteb 기준으로 비교한다.
목차
- 한 눈에 보는 비교표 (2026-06-12 기준)
- 한국어 임베딩 모델 선택 기준 4가지
- BGE-M3 — 긴 문서 RAG의 새 기본값
- nlpai-lab/KURE-v1 — 한국어 특화 파인튜닝
- multilingual-e5-large — 다국어 혼합 베이스라인
- KoSimCSE / ko-sroberta — 가볍고 빠른 한국어 SBERT
- ko-mteb 벤치마크 수치
- FAQ
- 결론 — 시나리오별 한 줄 추천
한 눈에 보는 비교표
기준일: 2026-06-12. 모델 카드 및 공개 ko-mteb 리더보드 참조.
| 모델 | 차원 | 최대 토큰 | 베이스 | 한국어 특화 | 추천 용도 |
|---|---|---|---|---|---|
| BAAI/bge-m3 | 1024 | 8192 | XLM-RoBERTa | 다국어 (KR 포함) | 긴 문서 RAG·하이브리드 |
| nlpai-lab/KURE-v1 | 1024 | 8192 | bge-m3 파인튜닝 | O (한국어 도메인) | 한국어 RAG 최상위 |
| intfloat/multilingual-e5-large | 1024 | 512 | XLM-RoBERTa-large | 다국어 | 다국어·짧은 청크 |
| BM-K/KoSimCSE-roberta | 768 | 512 | klue/roberta-base | O (KorNLI+KorSTS) | 짧은 문장 유사도·STS |
| jhgan/ko-sroberta-multitask | 768 | 512 | klue/roberta-base | O (멀티태스크) | 가벼운 한국어 SBERT |
한국어 임베딩 모델 선택 기준 4가지
한국어 임베딩 모델 추천을 결정짓는 변수는 네 가지다. 첫째, 입력 길이. PDF·매뉴얼·블로그 글을 그대로 색인하면 청크가 1천 토큰을 쉽게 넘는다. max_tokens=512인 모델은 청크를 잘게 쪼개야 하므로 컨텍스트가 손실된다. 8192 토큰을 받는 BGE-M3 계열이 이때 압도적으로 유리하다.
둘째, 도메인 분포. 학술·뉴스·법률처럼 정형 한국어가 많다면 KURE-v1이나 BGE-M3가 잘 맞고, 구어·SNS·리뷰처럼 비정형 한국어가 많으면 KoSimCSE 계열이 의외로 강하다. 셋째, 차원과 저장 비용. 1024차원 모델은 768차원 대비 인덱스·메모리·디스크가 약 33% 더 든다. 1억 청크라면 수십 GB가 갈리지만 10만 청크 수준의 개인 RAG라면 무시해도 된다. 넷째, 추론 비용. GPU 없는 환경에서 KoSimCSE는 CPU 한 코어로 초당 수십 문장을 처리하지만 BGE-M3는 같은 조건에서 절반 이하로 느려진다.
BGE-M3 — 긴 문서 RAG의 새 기본값
BAAI/bge-m3는 BAAI가 공개한 다국어 임베딩이다. XLM-RoBERTa 기반 100개 이상 언어를 학습했고 한국어도 충분히 포함된다. 강점은 최대 8192 토큰 입력과 dense·sparse·multi-vector 동시 지원이다.
실무에서 BGE-M3의 매력은 한 모델로 dense 임베딩과 BM25 유사 sparse 임베딩을 모두 뽑을 수 있다는 점이다. Qdrant·Weaviate·Vespa의 하이브리드 검색을 단일 추론으로 구성할 수 있고, 한국어 BM25의 약점인 형태소 분석 의존을 우회한다. 출력 차원은 dense 기준 1024, RTX 4090에서 배치 32로 초당 약 80~120 문장 처리 가능하다.
nlpai-lab/KURE-v1 — 한국어 특화 파인튜닝
KURE-v1은 서울대 NLPAI Lab이 BGE-M3를 한국어 도메인으로 파인튜닝해 공개한 모델이다. 베이스의 강점(긴 컨텍스트, 1024차원)은 그대로 가져가면서 한국어 검색 정확도를 끌어올렸다. ko-mteb 리더보드 한국어 검색·STS 모두 상위권을 점유하며, 동일 인프라에서 BGE-M3 대비 한국어 NDCG@10이 평균 2~4%p 높다.
도입 비용도 낮다. tokenizer·차원·입력 형식이 BGE-M3와 동일해 코드를 그대로 두고 모델 경로만 교체하면 된다. 기존 BGE-M3 인덱스도 KURE-v1으로 재임베딩만 하면 호환된다. 다만 학습 도메인 특성상 일상 대화·SNS보다는 문서·뉴스·논문에 최적화되어 있다.
multilingual-e5-large — 다국어 혼합 베이스라인
intfloat/multilingual-e5-large는 Microsoft가 공개한 다국어 임베딩의 표준이다. XLM-RoBERTa-large 기반 24레이어, 1024차원, 최대 512 토큰. 한국어 단일 성능에서는 BGE-M3·KURE-v1에 살짝 뒤지지만, 한국어·영어를 함께 색인해야 하는 글로벌 서비스나 코드 주석과 한국어 설명이 섞인 사내 위키에서는 가장 안정적이다.
주의할 점은 입력 형식이다. e5 계열은 쿼리에 query: , 패시지에 passage: 프리픽스를 붙여야 학습 분포와 일치한다. 프리픽스를 생략하면 한국어에서 5~10%p 성능이 떨어진다. multilingual-e5-large-instruct 변형은 instruction-tuned 형식을 지원해 zero-shot 검색에 강하다.
KoSimCSE / ko-sroberta — 가볍고 빠른 한국어 SBERT
RAG가 아니라 짧은 문장 유사도가 본질이라면 1024차원 모델이 필요 없다. BM-K/KoSimCSE-roberta는 klue/roberta-base를 KorNLI+KorSTS로 SimCSE 학습한 768차원 모델이다. 문장 단위 STS에 집중되어 있어 FAQ 매칭, 중복 질문 탐지, 의도 분류 보조 같은 작업에서 매우 안정적이다. jhgan/ko-sroberta-multitask는 같은 베이스를 멀티태스크로 학습한 변형이며, 모델 크기 약 440MB로 BGE-M3(약 2.3GB)의 5분의 1 수준이라 CPU 추론도 충분히 빠르다.
ko-mteb 벤치마크 수치
공개 ko-mteb 리더보드(2026-06 시점) 한국어 검색·STS·재랭킹 평균은 대체로 KURE-v1 ≥ BGE-M3 > multilingual-e5-large > ko-sroberta-multitask > KoSimCSE-roberta 순이다. STS만 떼어 보면 KoSimCSE-roberta가 1024차원 모델들과 거의 동률이거나 일부 태스크에서 앞선다.
한국어 retrieval에서 KURE-v1과 BGE-M3의 NDCG@10 격차는 보통 2~4%p, multilingual-e5-large와는 4~7%p 차이가 흔하다. 768차원 SBERT 계열은 retrieval에서 10%p 이상 벌어지므로, 검색 품질이 비즈니스 지표라면 1024차원 모델로 가야 한다. 반대로 STS 평균은 다섯 모델 모두 0.82~0.87 범위로 좁다.
FAQ
OpenAI text-embedding-3-small을 한국어에 써도 되나요?
가능하지만 비용·성능 모두 손해다. 한국어 retrieval 기준 BGE-M3·KURE-v1 대비 NDCG@10이 평균 5%p가량 낮고, API 호출 비용은 셀프호스팅 BGE-M3 대비 수배 비싸다. 빠른 프로토타입이 아닌 운영에서는 한국어 특화 모델을 권한다.
GPU가 없을 때는 어떤 모델이 좋나요?
CPU 전용이라면 jhgan/ko-sroberta-multitask 또는 KoSimCSE-roberta가 현실적이다. 모델 크기 440MB, 768차원이라 인덱스도 가볍다. 정확도가 더 필요하면 ONNX 변환 후 BGE-M3를 돌릴 수 있지만 처리량은 5~10배 차이 난다.
BGE-M3와 KURE-v1 중 어느 쪽을 먼저 시도해야 하나요?
한국어 문서가 코퍼스의 80% 이상이면 KURE-v1을 먼저 시도하고, 다국어 비율이 높으면 BGE-M3로 시작한다. 두 모델은 차원·tokenizer가 같아 인덱스 호환되므로 A/B 비교 비용이 거의 0이다.
임베딩 모델을 바꾸면 기존 벡터 인덱스를 다시 만들어야 하나요?
네. 모델이 바뀌면 벡터 공간이 달라지므로 같은 인덱스에서 혼용하면 안 된다. 다만 차원이 같다면(BGE-M3 ↔ KURE-v1) Qdrant·Weaviate에서 컬렉션 설정을 그대로 두고 재임베딩만 하면 되어 마이그레이션 비용이 낮다.
결론 — 시나리오별 한 줄 추천
한국어 임베딩 모델 추천 최종 정리. 한국어 RAG면 nlpai-lab/KURE-v1, 다국어 혼합이면 BGE-M3. 다국어·짧은 청크면 multilingual-e5-large. FAQ 매칭·문장 유사도면 BM-K/KoSimCSE-roberta. CPU·저비용 운영이면 jhgan/ko-sroberta-multitask. 운영비를 낮추려면 BGE-M3·KURE-v1 셀프호스팅이 OpenAI text-embedding-3-small보다 장기적으로 더 싸고 한국어 품질도 높다. 어떤 모델을 고르든 자기 도메인 데이터 100~300건으로 정답 셋을 만들어 NDCG@10을 직접 측정하라. 공개 벤치마크 순위와 자기 도메인 성능은 5~10%p 어긋날 수 있다.