WZ-IT Logo

Best Embedding Models for German in 2026: BGE-M3, Qwen3-Embedding and E5 Compared

Timo Wevelsiep
Timo Wevelsiep
•
#RAG #Embeddings #BGEM3 #Qwen3 #LocalAI

Editorial note: The information in this article was compiled to the best of our knowledge at the time of publication. Technical details, prices, versions, licensing terms, and external content may change. Please verify the information provided independently, particularly before making business-critical or security-related decisions. This article does not replace individual professional, legal, or tax advice.

Best Embedding Models for German in 2026: BGE-M3, Qwen3-Embedding and E5 Compared

Building a RAG system on German documents? WZ-IT measures embedding models with reference questions on your collection and runs retrieval, reranker and language model on your own hardware, see RAG Proof of Value and internal AI assistant in the AI hub. Schedule a meeting

In a RAG system, the embedding model decides which passages reach the language model at all. If search does not find the right paragraph, even the largest language model cannot give a sourced answer. Even so, the embedding model is often picked from the first tutorial and never questioned again.

For German documents the choice in 2026 is wider than two years ago: BGE-M3, the Qwen3-Embedding family, multilingual-e5, EmbeddingGemma, Granite Embedding R2 and several Jina generations are available as open weights, Mistral Embed as a European API. The differences lie less in a single benchmark number than in license, context length, vector dimension, memory footprint and which inference servers fully support the model. This post compares the models along these criteria. As of September 2026.

Table of contents

  1. What the embedding model decides in a RAG system
  2. The models at a glance
  3. Licenses: not every open model is cleared for commercial use
  4. What benchmarks say about German text
  5. Context length, dimensions and storage
  6. VRAM and hardware
  7. Serving with TEI, vLLM and Ollama
  8. Which model for which use case
  9. Changing the model means re-indexing
  10. Our approach at WZ-IT
  11. Further guides

What the embedding model decides in a RAG system

An embedding model turns text into a vector, a list of numbers. Texts with similar meaning end up close to each other in vector space. During indexing, every section (chunk) of a document is embedded and stored in a vector database such as Qdrant or PostgreSQL with pgvector. When a question comes in, it is embedded with the same model, and the database returns the nearest chunks. The basics are covered in the knowledge article What is RAG?.

This flow defines the requirements for the model:

Property Why it matters
Language coverage German technical language, compound words and mixed German-English collections have to be represented well
Maximum input length Text beyond the limit is cut off and invisible to search
Vector dimension Determines index storage and the limits of the vector database
License Determines whether the model may be used in a business
Model size Determines VRAM, indexing throughput and latency per query
Support in the inference server Decides whether features such as sparse vectors are available in production

The embedding model is only one component. How documents are split (chunking) and whether keyword search and a reranker are combined with it (hybrid search and reranking) affect result quality just as much.

The models at a glance

The table lists the models that regularly come into question for German-language RAG systems in 2026. Figures from the respective model cards on Hugging Face, parameter counts from the model files.

Model Provider Parameters Dimension Max tokens License Released
BGE-M3 BAAI 568M 1,024 8,192 MIT January 2024
Qwen3-Embedding-0.6B Alibaba Qwen 0.6B 1,024 (32 to 1,024) 32,768 Apache 2.0 June 2025
Qwen3-Embedding-4B Alibaba Qwen 4.0B 2,560 (32 to 2,560) 32,768 Apache 2.0 June 2025
Qwen3-Embedding-8B Alibaba Qwen 7.6B 4,096 (32 to 4,096) 32,768 Apache 2.0 June 2025
multilingual-e5-large Microsoft (intfloat) 560M 1,024 512 MIT June 2023
multilingual-e5-large-instruct Microsoft (intfloat) 560M 1,024 512 MIT February 2024
EmbeddingGemma-300m Google 308M 768 (128 to 768) 2,048 Gemma Terms of Use September 2025
Granite Embedding 311M Multilingual R2 IBM 311M 768 (128 to 768) 32,768 Apache 2.0 April 2026
jina-embeddings-v2-base-de Jina AI 161M 768 8,192 Apache 2.0 January 2024
jina-embeddings-v3 Jina AI 572M 1,024 (32 to 1,024) 8,192 CC BY-NC 4.0 September 2024
jina-embeddings-v5-text-small Jina AI 677M 1,024 (32 to 1,024) 32,768 CC BY-NC 4.0 February 2026
Mistral Embed Mistral AI not published 1,024 8k API only December 2023

Values in brackets: these models support Matryoshka Representation Learning (MRL). Vectors can be truncated to a smaller dimension with little loss in quality and a much smaller index.

Some specifics that matter in production:

  • BGE-M3 produces three representations from one model: a dense vector, sparse per-token weights (similar to BM25) and ColBERT-style multi-vectors (model card). This enables hybrid search without a second model.
  • Qwen3-Embedding expects an instruction on the query side (Instruct: ... Query: ...), documents are embedded without one. Without the instruction, retrieval performance drops by about 1 to 5 percent according to Qwen. The instruction should be written in English even for German text, because the training instructions were mostly English (model card).
  • multilingual-e5 requires the prefixes query: and passage:, the instruct variant an instruction on the query side. Input is truncated to 512 tokens (model card).
  • jina-embeddings-v2-base-de is trained bilingually for German and English, explicitly including mixed input (model card).
  • Jina AI has been part of Elastic since October 2025 (Elastic announcement). The models remain available on Hugging Face and are also offered through the Elastic Inference Service.

Licenses: not every open model is cleared for commercial use

Open weights do not automatically mean free use in a business. This mainly affects the Jina models, which rank high in many comparisons.

Model License Commercial use
BGE-M3 MIT permitted
Qwen3-Embedding 0.6B, 4B, 8B Apache 2.0 permitted
multilingual-e5-large, -instruct MIT permitted
Granite Embedding R2 Apache 2.0 permitted
jina-embeddings-v2-base-de Apache 2.0 permitted
EmbeddingGemma-300m Gemma Terms of Use permitted, subject to terms of use and a prohibited use policy; download on Hugging Face only after accepting them
jina-embeddings-v3 CC BY-NC 4.0 only with a commercial license from Jina AI
jina-embeddings-v4 Qwen Research License only with a separate license
jina-embeddings-v5-text-small and -nano CC BY-NC 4.0 only with a commercial license from Jina AI

The jina-embeddings-v3 model card states it explicitly: using the model beyond AWS and Azure or on-premises within a company falls under CC BY-NC 4.0, and commercial use requires contacting sales (model card, License section). jina-embeddings-v4 was initially listed as CC BY-NC 4.0; according to the model card the correct license is the Qwen Research License, because the model is derived from Qwen2.5-VL-3B (model card).

For a production RAG system in a business, without an additional contract, this leaves BGE-M3, Qwen3-Embedding, multilingual-e5, Granite Embedding R2, jina-embeddings-v2-base-de and, under the Gemma terms, EmbeddingGemma.

What benchmarks say about German text

The Massive Text Embedding Benchmark (MTEB) is the usual reference. For choosing a German model it is of limited use, because the well-known leaderboards average across many languages and tasks.

Multilingual overall score. The Qwen3-Embedding model card publishes the multilingual MTEB (MMTEB) averages across all tasks, with comparison values as of 24 May 2025 (model card). For jina-embeddings-v5-text-small, Jina reports 67.7 (model card).

Model MMTEB, mean across tasks
Qwen3-Embedding-8B 70.58
Qwen3-Embedding-4B 69.45
jina-embeddings-v5-text-small 67.7
Qwen3-Embedding-0.6B 64.33
multilingual-e5-large-instruct 63.22
BGE-M3 59.56

This average includes classification, clustering, bitext mining and other tasks that play no role in RAG.

German retrieval. Retrieval on German text is more meaningful for RAG. MTEB includes the benchmark MTEB(deu, v1) with the retrieval tasks GermanQuAD, GermanDPR, XMarket and GerDaLIR (MTEB benchmark definition). Results for the current models are not consistently available there. One task with values for almost all candidates is the German part of MIRACL (retrieval on German Wikipedia, hard-negatives variant). The following values come from the public MTEB results repository, as of September 2026.

Model MIRACL German, nDCG@10
Qwen3-Embedding-4B 62.98
Qwen3-Embedding-8B 61.92
jina-embeddings-v5-text-small 57.99
BGE-M3 57.59
EmbeddingGemma-300m 56.60
Qwen3-Embedding-0.6B 54.21
Granite Embedding 311M Multilingual R2 50.97
multilingual-e5-large-instruct 43.37

Three observations from both tables:

  1. Bigger is not automatically better. In German retrieval the 4B model beats the 8B model, even though the 8B model leads the overall score.
  2. Overall scores can mislead. multilingual-e5-large-instruct ranks ahead of BGE-M3 in the MMTEB average, but clearly behind it in German retrieval.
  3. Wikipedia is not your collection. Regulations, contracts, manuals, maintenance logs and scanned PDFs behave differently from encyclopedia articles. MTEB now includes RTEB(deu, beta), a German retrieval benchmark with legal, healthcare and business data that partly relies on non-public datasets (benchmark definition).

Benchmarks are useful for narrowing the list to three or four candidates. The decision is made by a test set of real questions with their matching passages from your own collection. How to build and evaluate such a test set is described in the knowledge article RAG evaluation.

Context length, dimensions and storage

Context length. The maximum input length caps the chunk size. multilingual-e5 cuts off after 512 tokens, and the rest of a longer section does not flow into the vector. BGE-M3 and jina-embeddings-v2-base-de handle 8,192 tokens, Qwen3-Embedding, Granite Embedding R2 and jina-embeddings-v5 up to 32,768 tokens. A long input length does not mean that long chunks search better: one vector for ten pages represents their content only roughly. It does, however, allow sections to be cut along the document structure instead of a fixed token count.

Dimension and index size. In pgvector a vector takes 4 × dimensions + 8 bytes, the vector type can be indexed up to 2,000 dimensions, halfvec up to 4,000 (pgvector README). For one million chunks, excluding index structures, this gives:

Dimension Example model Storage per vector 1M chunks Index in pgvector
768 EmbeddingGemma, Granite R2 3,080 bytes approx. 3.1 GB vector
1,024 BGE-M3, Qwen3-0.6B, E5 4,104 bytes approx. 4.1 GB vector
2,560 Qwen3-Embedding-4B 10,248 bytes approx. 10.2 GB halfvec or truncated
4,096 Qwen3-Embedding-8B 16,392 bytes approx. 16.4 GB only truncated or with binary quantization

The Qwen3 models with 2,560 and 4,096 dimensions can be truncated to 1,024 dimensions via MRL. Whether the quality loss is acceptable belongs in the test set. Qdrant does not have this index limit; there, large dimensions affect memory and search latency. The differences between the two databases are covered in Qdrant vs. pgvector.

VRAM and hardware

Embedding models are small compared to language models. In FP16 or BF16 the weights take about two bytes per parameter:

Model Parameters Weights in FP16/BF16
jina-embeddings-v2-base-de 161M approx. 0.3 GB
EmbeddingGemma-300m 308M approx. 0.6 GB
Granite Embedding 311M R2 311M approx. 0.6 GB
multilingual-e5-large 560M approx. 1.1 GB
BGE-M3 568M approx. 1.1 GB
Qwen3-Embedding-0.6B 0.6B approx. 1.2 GB
Qwen3-Embedding-4B 4.0B approx. 8 GB
Qwen3-Embedding-8B 7.6B approx. 15 GB

On top of that comes memory for processing, which grows with batch size and input length. With 8,192 or 32,768 tokens per input, this share is not negligible.

For hardware planning this means:

  • Models up to about 600M parameters also run on a CPU. For search queries in production that is often enough. Initial indexing of a large collection, however, takes many times longer on a CPU than on a GPU.
  • Embedding model, reranker and language model share GPU memory when they run on the same machine. On a 24 GB GPU such as the NVIDIA RTX PRO 4000 Blackwell, a Qwen3-Embedding-8B (approx. 15 GB) leaves little room for a language model. With BGE-M3 or Qwen3-Embedding-0.6B most of the memory remains free.
  • Initial indexing is the peak load. After that, only new and changed documents are embedded, plus user queries of a few dozen tokens each.

How VRAM for the whole system of language model, KV cache, embedding and reranker adds up is explained in Sizing GPU and VRAM.

Serving with TEI, vLLM and Ollama

Three inference servers are typically considered for embedding models. All three provide an HTTP API, vLLM and TEI additionally in OpenAI-compatible format.

Text Embeddings Inference (TEI) vLLM Ollama
Focus dedicated embedding and reranker server from Hugging Face inference server for language models, with a pooling mode for embeddings model management and inference for workstations and small servers
Qwen3-Embedding supported supported 0.6B, 4B, 8B in the library
BGE-M3 dense vectors dense, sparse and ColBERT via BgeM3EmbeddingModel dense vectors
multilingual-e5, EmbeddingGemma supported supported EmbeddingGemma in the library
Reranker yes, XLM-RoBERTa and GTE based models yes, via the score API no

Sources: TEI, supported models, vLLM, embedding models, vLLM, BGE-M3, Ollama library, Ollama embed API. As of September 2026.

What matters in production:

  • Sparse vectors from BGE-M3. vLLM provides them when the model is started with an overridden architecture, because the config.json otherwise loads it as plain XLM-RoBERTa:
vllm serve BAAI/bge-m3 \
  --runner pooling \
  --hf-overrides '{"architectures": ["BgeM3EmbeddingModel"]}' \
  --pooler-config.task token_classify

With --pooler-config.task embed the same instance returns dense vectors. In TEI, sparse support for BGE-M3 has been submitted as a pull request but not merged yet.

  • Blackwell GPUs in TEI. For Blackwell-generation GPUs with compute capability 12.0, which includes the RTX PRO 4000 and 6000 Blackwell, TEI ships a separate image marked as experimental (TEI documentation).
  • Prefixes and instructions have to be set in the application, not in the server. A pipeline step that forgets query: for E5 or omits the instruction for Qwen3 degrades search without any error message.
  • Custom code. jina-embeddings-v2 and v3 load their own model code (trust_remote_code). In production this is an additional code dependency that has to be reviewed with every update.

Ollama suits prototypes and single workstations. For production systems with many concurrent queries and initial indexing of large collections, TEI or vLLM are the more robust options. The comparison of inference servers for language models is in vLLM vs. Ollama vs. llama.cpp; we set them up as vLLM operations or with Ollama.

Which model for which use case

The table is a starting point for the candidate list, not a ranking. Only the test set confirms or refutes the choice.

Use case Candidates Reasoning
German document collection with hybrid search BGE-M3 dense and sparse vectors from one model, MIT license, 1,024 dimensions
Highest retrieval quality, GPU available Qwen3-Embedding-4B best German retrieval score in this selection, Apache 2.0, dimension can be reduced via MRL
Little VRAM or CPU-only Qwen3-Embedding-0.6B, EmbeddingGemma-300m, Granite Embedding 311M R2 small models, 768 to 1,024 dimensions
Long documents without fine splitting Qwen3-Embedding, Granite Embedding R2 up to 32,768 input tokens
Existing E5 installation keep multilingual-e5-large-instruct, measure a switch switch only if the test set shows an improvement
No own GPU, data may go to an EU cloud Mistral Embed or embedding models from European providers billed per token, documents leave your own network

For the API option: during indexing the entire document collection is transferred to the provider, and in operation every search query. Which European providers offer which embedding models is compared in European LLM APIs compared. Embedding and reranker need little compute and can run locally even when the language model is accessed through an API.

Changing the model means re-indexing

Vectors from different models cannot be compared. Changing the embedding model means re-embedding the whole collection. The same applies to changing the dimension via MRL, the prefixes or the instruction.

Practical consequences:

  1. Document model, revision, dimension and instruction. Existing models on Hugging Face change too; for jina-embeddings-v3, for example, a bug in Matryoshka truncation was fixed after release (model card). A pinned revision in the deployment prevents vectors from changing unnoticed.
  2. Build the new index in parallel. The old index stays active until the new one is complete and performs at least as well on the test set.
  3. Run the test set again. Compare recall and ranking metrics before and after the switch, not just samples.
  4. Carry permissions over. The new index must hold the same access information per chunk as the old one, see RAG with permissions.

Our approach at WZ-IT

We do not choose the embedding model from a leaderboard, but by measuring on your collection.

  1. Capture collection and questions. Document types, languages, length, scanned share and typical questions from the business units.
  2. Narrow down candidates. After license, context length, dimension and hardware, usually three to four models remain.
  3. Measure with reference questions. In the RAG Proof of Value we work with 40 to 60 reference questions including source and no-answer tests, with a baseline measurement and two optimization cycles.
  4. Set up operations. Embedding model and reranker run with TEI or vLLM on the AI Cube in your network or on a managed GPU server from WZ-IT with NVIDIA RTX PRO 4000 Blackwell (24 GB) or RTX PRO 6000 Blackwell (96 GB).
  5. Document and hand over. Model revision, dimension, instructions and test set are recorded so that a later model change remains measurable.

Support, consulting and implementation by WZ-IT. Building it into a production assistant with permissions and source references is described on the internal AI assistant page.

Further guides

Which embedding model fits your documents? We measure the candidates with reference questions from your collection and run the chosen model on your hardware or on a managed GPU server from WZ-IT. Schedule a meeting

Sources

Enquiry

Choose the embedding model for your documents

We test embedding models with reference questions on your own document collection and run the chosen model on your hardware or on a managed GPU server from WZ-IT.

What is your situation?

How should we get back to you?

Frequently Asked Questions

Answers to important questions about this topic

No single model wins on every collection. Good starting points for German RAG systems are BGE-M3 (MIT license, 8,192 tokens, dense and sparse output from one model) and Qwen3-Embedding in the 0.6B or 4B size (Apache 2.0, up to 32,768 tokens). On the German part of the MIRACL retrieval benchmark, Qwen3-Embedding-4B leads with an nDCG@10 of 62.98, BGE-M3 reaches 57.59 (MTEB results data, as of September 2026). The decision is made with a test set built from your own documents.

Not without a separate agreement. jina-embeddings-v3 and the fifth generation jina-embeddings-v5-text are licensed under CC BY-NC 4.0, which covers non-commercial use only. Business use requires a commercial license. jina-embeddings-v4 is under the Qwen Research License. The older jina-embeddings-v2-base-de, by contrast, is licensed under Apache 2.0.

No. On German MIRACL retrieval, Qwen3-Embedding-4B scores 62.98 and beats the 8B variant at 61.92. The 8B model needs about 15 GB of VRAM in FP16 for the weights alone and produces 4,096-dimensional vectors, which make the vector index roughly four times larger than 1,024 dimensions. Only a measurement on your own collection shows whether the extra cost pays off.

Usually not. Current multilingual models such as BGE-M3, Qwen3-Embedding, EmbeddingGemma or Granite Embedding R2 are trained on German and also cover mixed collections with English documents. The bilingual jina-embeddings-v2-base-de (German and English, Apache 2.0) is a small alternative with 161 million parameters, but it dates from January 2024.

Because multilingual-e5-large and multilingual-e5-large-instruct truncate input to at most 512 tokens. Anything beyond that is not part of the vector. Chunks therefore have to stay below this limit. BGE-M3 handles 8,192 tokens, Qwen3-Embedding and Granite Embedding R2 up to 32,768 tokens.

Yes. Vectors from different models live in different vector spaces and cannot be compared, and they often differ in dimension as well. Queries and documents must be embedded with the same model and the same prefixes or instructions. Changing the model means re-embedding the whole collection and measuring search quality again.

In FP16 or BF16 the weights take about two bytes per parameter: BGE-M3 and multilingual-e5-large about 1.1 GB, Qwen3-Embedding-0.6B about 1.2 GB, Qwen3-Embedding-4B about 8 GB and Qwen3-Embedding-8B about 15 GB. On top of that comes memory for processing the input, which grows with batch size and text length. The small models also run on a CPU, but a GPU has a clear advantage for the initial indexing of large collections.

No. The Ollama embedding endpoint returns dense vectors. The sparse weights of BGE-M3 for hybrid search are provided by the FlagEmbedding library and by vLLM when the model is started with the BgeM3EmbeddingModel architecture and the token_classify pooling task. In Text Embeddings Inference, support for this has not been merged yet (as of September 2026).

Yes, Mistral Embed is available through the API of the French provider Mistral AI, produces 1,024-dimensional vectors and, according to the model card, handles a context of 8k tokens. The price is USD 0.10 per million tokens according to the model card (as of September 2026). The entire document collection is sent to the API for indexing, and every search query as well. The model is not available as open weights.

Timo Wevelsiep

Written by

Timo Wevelsiep

Co-Founder & CEO

Co-Founder of WZ-IT. Specialized in cloud infrastructure, open-source platforms and managed services for SMEs and enterprise clients worldwide.

LinkedIn

Let's Talk About Your Idea

Whether a specific IT challenge or just an idea - we look forward to the exchange. In a brief conversation, we'll evaluate together if and how your project fits with WZ-IT.

Arrange a callback

Callback

Arrange a callback

Leave your number and we will call back — at the latest on the next business day.

For a longer conversation you can book an appointment instead.

Companies worldwide trust WZ-IT

  • ml&s
  • Rekorder
  • Keymate
  • Führerscheinmacher
  • SolidProof
  • ARGE
  • Boese VA
  • nextGYM
  • SweetConnect GmbH
  • Golem.de
  • Millenium
  • Paritel
  • Yonju
  • EVADXB
  • Mr. Clipart
  • Aphy AG
  • Negosh
  • ABCO Water Systems
1/3 - Topic Selection33%

What is your inquiry about?

First select the service area that best matches your project.