treeru.com
AI

BGE-M3 vs mE5-Large - Comparing Korean RAG Search Quality Head to Head

2026-05-21
Treeru
AI

When you build a RAG system, the embedding model quietly decides overall quality. However smart your LLM is, a wrong retrieval means a wrong answer. Flip it around and even a small model answers fairly reliably when retrieval is accurate. So we compared BGE-M3 and mE5-Large, the two names that keep coming up for Korean document search, under identical conditions.

10

Korean Questions

9

Retrieved Chunks

100%

BGE-M3 Top-3 Recall

86.7%

mE5-Large Top-3 Recall

The short version: in this small experiment, BGE-M3 was the more reliable of the two. Across 10 Korean-language questions, Top-3 Recall came in at 100.0% for BGE-M3 and 86.7% for mE5-Large. mE5-Large was faster, but in a production service a single missed retrieval turns directly into a wrong answer.

Why Benchmark This Separately

In our earlier write-up on building a RAG pipeline, picking an embedding model was just one step among many. In practice, though, it deserves its own investigation. Most RAG failures originate upstream in retrieval, not in the generation model. Even when the necessary document was never found, the LLM will still produce an answer — and users don’t read that as a retrieval failure. They read it as the AI confidently getting it wrong.

Korean is especially prone to this because question phrasing varies so much. The document says “주차 가능” (parking available), but users ask “차 댈 수 있어요?”, “주차할 수 있나요?”, or “근처에 세울 데 있나요?” — three colloquial ways of asking “can I park here?” If the embedding model can’t map that colloquial register onto the same meaning, retrieval collapses easily.

The goal here isn’t to declare that one model is always better. It’s to build a small test that resembles real service documents and real user questions, and to share a way of choosing a model with numbers instead of intuition.

Test Setup

We deliberately kept the test small. Before adopting a model in production, what matters more than a giant public benchmark is whether it passes the 10–50 questions your own documents actually get. Here we split 4 sample cafe documents into 9 chunks and threw 10 natural-language Korean questions at them.

ItemValue
Documents4 markdown documents covering menu, store info, FAQ, and events
Chunks9
Questions10 colloquial Korean questions
Evaluation3 expected keywords defined per question; check whether they appear in the Top-3 results
EnvironmentCPU inference, built on sentence-transformers

The scoring rule is simple. For a question like “주차할 수 있나요?” (is there parking?), the retrieved chunks need to contain key facts such as whether parking is available, how many spaces there are, and any alternative parking guidance. If those keywords aren’t in the Top-3, the LLM has no grounding left to answer from.

Results: 100% vs 86.7%

ItemBGE-M3mE5-Large
ModelBAAI/bge-m3intfloat/multilingual-e5-large
Vector dimensions1,0241,024
Model load time4.2s3.3s
Embedding time for 9 chunks0.18s0.05s
Average Top-3 Recall100.0%86.7%

Both produce 1,024-dimensional vectors, so storage cost is identical. The differences showed up in retrieval quality and embedding speed. mE5-Large embedded the 9 chunks in 0.05s versus 0.18s for BGE-M3. But average Recall was 100.0% for BGE-M3 and 86.7% for mE5-Large.

BGE-M3

  • • Expected keywords landed in the Top-3 for all 10 questions
  • • Stable on facility questions like parking and Wi-Fi
  • • Extensible to Dense, Sparse, and ColBERT-style retrieval

mE5-Large

  • • Faster at embedding
  • • Accurate on ordinary menu, price, and opening-hours questions
  • • Missed key chunks on some colloquial facility questions
Question (Korean)BGE-M3mE5-LargeNotes
아메리카노 가격이 얼마예요?How much is an americano?100%100%Both correct
카페 영업시간 알려주세요What are the cafe's hours?100%100%Both correct
주차할 수 있나요?Is there parking?100%0%mE5 missed the parking chunk entirely
디카페인 메뉴 있어요?Do you have decaf options?100%100%Both correct
케이크 종류 뭐가 있어요?What kinds of cake do you have?100%100%Both correct
와이파이 비밀번호가 뭐예요?What's the Wi-Fi password?100%66.7%mE5 missed some expected keywords
텀블러 할인 되나요?Is there a tumbler discount?100%100%Both correct
반려동물 데려갈 수 있나요?Can I bring my pet?100%100%Both correct
딸기 음료 있어요?Any strawberry drinks?100%100%Both correct
노트북 사용 가능한가요?Can I use a laptop here?100%100%Both correct

Questions were asked in Korean; English glosses are provided for readability and were not used in the test.

The Questions Where Search Broke Down

Look only at the 86.7% average and mE5-Large seems good enough. But in RAG you have to look past the average at the character of the failures. The biggest gap in this test was “주차할 수 있나요?” (is there parking?). BGE-M3 pulled the relevant chunk; mE5-Large never got the expected keywords into the Top-3.

Why That’s a Big Deal

A parking question isn’t simple information retrieval. It’s the question that decides whether a customer visits at all. If RAG fails to fetch the parking document, the LLM can happily invent something plausible like “주차 가능합니다” (parking is available) or “근처 공영주차장을 이용하세요” (please use the nearby public lot). If that contradicts your actual policy, it becomes a complaint immediately.

The Wi-Fi question showed a difference too. mE5-Large found some of the grounding but couldn’t reliably recover the full set of expected keywords. In cases like that, the answer might be right — or might be half missing.

This is the crux of model selection. Rather than a model that is “right most of the time,” you want a model that doesn’t miss the questions that are dangerous for your service. Pricing, opening hours, refunds, reservations, shipping, parking, legal notices — collect the questions that hurt when they’re wrong and test those separately.

How to Read the Speed Gap

mE5-Large is fast. In this test it embedded 9 chunks in 0.05s, versus 0.18s for BGE-M3 — more than a 3x gap on paper. But in production you shouldn’t translate that difference directly into user-facing latency.

Document embedding is normally done ahead of time. At query time you embed a single question, retrieve Top-K from the vector DB, and hand it to the LLM. Service bottlenecks usually live in LLM generation time, the network, permission checks, and post-processing. So when picking an embedding model, the cost of a missed retrieval matters far more than a 0.1s difference.

A fast model isn’t a bad thing. But if the point of RAG is recovering accurate grounding, it’s safer to set a quality floor first and optimize for speed within it.

Choosing in Practice

Start with BGE-M3 when

  • • You search a lot of Korean customer-support, FAQ, and policy documents
  • • Users ask in colloquial language
  • • There is information (facilities, conditions, exceptions, regulations) that is risky to miss
  • • You plan to add hybrid search or reranking later

Consider mE5-Large when

  • • Your documents are short and question types are relatively formulaic
  • • Bulk batch embedding speed matters more
  • • It passed the risky questions in your own evaluation set convincingly
  • • You compensate for misses with a separate keyword search or a reranker

By our criteria, BGE-M3 was closer to the default choice. Vector dimensions are the same, retrieval quality was more consistent, and at this scale the speed difference wasn’t enough to flip the decision. That said, every service has different documents and different questions, so the final call has to be verified against your own data.

Embedding Model Evaluation Checklist

Before reaching for public benchmarks, build a small internal evaluation set. It doesn’t need to be elaborate at the start. Pick 10 good questions and the differences between models already show up.

  • • Write down questions the way real users would ask them. Don’t polish them into search queries.
  • • Always include the questions that hurt when wrong: pricing, opening hours, refunds, reservations, shipping, parking.
  • • Decide up front which keywords or document IDs must appear for each question.
  • • Don’t look at Top-1 only — check whether grounding shows up in Top-3 or Top-5.
  • • Alongside the average score, read the failed questions individually. The failure mode matters more.
  • • Break speed down into document embedding, query embedding, retrieval, and LLM generation time.

Conclusion

In this test, BGE-M3 recovered the expected keywords in the Top-3 for all 10 colloquial Korean questions. mE5-Large was faster, but it had misses on the parking and Wi-Fi questions. If you’re attaching RAG to customer support or workflow automation, that difference is not small.

So our current rule is simple. If you’re building Korean RAG for the first time, make BGE-M3 the default candidate and run your own Recall test with 20–50 questions drawn from your service documents. If the result holds up, move on to the vector DB, reranker, and hybrid search. What matters more than the model name is whether it actually stops missing the grounding for your service’s questions.

The full RAG pipeline build is covered in Building a Local RAG Pipeline.

T

Treeru

Sharing practical insights on web development, IT infrastructure, and AI solutions. Treeru — your partner in digital transformation.

Share

Related Posts

© 2026 TreeRU. All rights reserved.

All content is copyrighted by TreeRU. Unauthorized reproduction without attribution is prohibited.