Ollama Embedding 模型推荐:按中文、硬件与 RAG 场景选择
简答:如果你要搭中文或中英混合 RAG,建议先把 qwen3-embedding:0.6b 与 bge-m3 放入同一批真实问题测试;设备资源更紧张时,可先测试 embeddinggemma-2:270m 或 all-minilm。这里的“推荐”是基于 Ollama 官方模型说明和资源规模做的候选筛选,不是统一中文榜单,也没有替你实测速度或召回率。本文只解决一个问题:如何选择并调用 Ollama Embedding 模型。
定义:Embedding 模型是把文档和查询转换为向量的模型,主要用于语义搜索、RAG、相似度匹配和聚类,不负责生成最终聊天答案。
先看这张速查表:按语言、设备和文档长度缩小候选范围
先说明范围:Ollama 官方文档把 Embedding 用于语义搜索、检索和 RAG,并建议索引与查询使用同一个 Embedding 模型。下面的硬件区间是编辑整理的启动测试建议,不是官方最低配置,也不是实测性能排名;真正部署前仍要观察本机内存、显存、加载时间和请求日志。
| 场景 | 先测试的候选 | 官方页面可核对的信息 | 硬件起步建议 |
|---|---|---|---|
| 中文或中英混合 RAG | qwen3-embedding:0.6b、bge-m3 | Qwen3 Embedding 页面列出 0.6B、4B、8B 规格并说明支持 100 多种语言;BGE-M3 页面列出 567M、8K 上下文和 100 多种工作语言。查看 Qwen3 页面 查看 BGE-M3 页面 | 无独显、8GB 内存可先从 0.6B 或小尺寸模型开始;BGE-M3 建议至少预留 8GB 内存并自行观察加载情况。 |
| 内存或磁盘较紧张 | all-minilm、embeddinggemma-2:270m | Ollama 页面列出 all-minilm 约 46MB 的标签;EmbeddingGemma 2 页面列出 270M 文本规格及约 304MB–378MB 的标签范围。查看 all-minilm 页面 查看 EmbeddingGemma 2 页面 | 8GB 系统内存可作为启动测试区间;不要把模型文件大小直接当作运行时总内存。 |
| 有 16GB 以上内存或消费级显卡 | bge-m3、qwen3-embedding:4b | Ollama 页面列出 BGE-M3 约 1.2GB,Qwen3 4B 标签约 2.5GB;这些是模型标签页面信息,不代表实际显存占用。核对 Qwen3 标签 核对 BGE-M3 标签 | 16GB 内存是更稳妥的起步区间;显存是否足够要结合量化标签和本机分配情况核实。 |
| 长文档切片或较长输入 | qwen3-embedding、bge-m3 | Qwen3 页面按标签列出 32K 或 40K 上下文;BGE-M3 页面列出 8K 上下文。不要据此把整篇文档直接一次发送。 | 16GB 内存起步更便于测试;无论硬件如何,都应先切片并检查超长输入。 |
| 英文短文本或已有英文流程 | nomic-embed-text、mxbai-embed-large | Ollama 页面列出 nomic-embed-text 274MB、2K 上下文,mxbai-embed-large 335M、512 上下文。查看 nomic 页面 查看 mxbai 页面 | 8GB 内存可作为轻量流程的启动测试区间;中文效果仍需使用自己的查询集验证。 |
最短决策路径是:中文先测 Qwen3 0.6B 与 BGE-M3;低配先测 EmbeddingGemma 2 270M 或 all-minilm;英文短文本优先保留现有 nomic 或 mxbai 流程。以上都是候选起点,不代表中文召回质量已经被本站验证。
六个常见模型怎么选:哪些事实已核实,哪些不能直接推断
qwen3-embedding:中文和多语言的首轮候选
Ollama 当前模型页列出 qwen3-embedding:0.6b、4b 和 8b,并展示不同标签的模型大小与上下文信息。页面说明该系列面向文本检索、代码检索、分类、聚类和跨语言任务,并支持 100 多种语言。对中文 RAG,合理说法是“优先纳入测试”,不能直接写成中文质量第一。模型页面还提到可使用自定义指令,但没有在 Ollama 页面给出统一的中文查询与文档前缀格式;首次测试应保持输入格式简单一致,不要自行套用其他模型的前缀。
bge-m3:多语言和较长文本的候选
Ollama 页面将 BGE-M3 描述为多功能、多语言、多粒度 Embedding 模型,列出 567M 参数、8K 上下文和 100 多种工作语言。页面没有给出必须手写的查询前缀示例,因此不要把 mxbai 的英文前缀复制给 BGE-M3。中文、英文和混合语料应使用同一套切片规则与查询集比较。
embeddinggemma-2:小规格与多模态能力需要分开看
Ollama 页面明确列出 EmbeddingGemma 2 的 270M、440M、570M 和 740M 规格,并说明该模型支持文本、图像、视频和音频输入,使用统一的 768 维向量空间;页面还说明支持 128、256、512 和 768 维表示,以及轻量文本任务指令前缀。需要注意,页面顶部的具体标签信息与正文中的上下文描述存在展示差异,因此不要把一个统一上下文数字写进配置;应以具体标签页面和本地模型信息为准。对于纯文本中文 RAG,先测试 embeddinggemma-2:270m,并记录实际向量长度。
all-minilm:最轻量的流程基线
Ollama 页面列出 all-minilm 的 22M 与 33M 规格、约 46MB 或 67MB 标签和 512 上下文。它适合先确认切片、向量库和相似度查询流程是否连通,但页面没有提供中文业务质量保证,因此不能把它直接当作中文 RAG 的默认答案。
nomic-embed-text:英文短文本流程的轻量候选
Ollama 页面列出 nomic-embed-text 约 274MB、2K 上下文,并说明它只能生成 Embedding。若已有英文短文本流程,可以把它作为保留候选;如果切片或输入超过页面所列范围,应先调整切片,而不是依赖默认截断。
mxbai-embed-large:必须注意页面示例中的查询前缀
Ollama 页面列出该模型约 335M 参数、512 上下文,并在示例中使用 Represent this sentence for searching relevant passages: 前缀。若选择它,文档与查询的格式应按模型页面或其参考资料保持一致。这个前缀只属于该模型示例,不能推广到 Qwen3、BGE-M3 或 EmbeddingGemma。
按内存、显存和 CPU 做可执行选择:先按资源分层,再做质量测试
官方模型页通常提供标签大小、上下文和输入类型,但不会替你保证某个模型在特定 CPU、显卡或内存上达到固定速度。下面的区间只用于安排第一轮测试,不是最低要求,也没有提供测速结论。
| 设备条件 | 建议先下载 | 建议做什么 | 不要据此推断什么 |
|---|---|---|---|
| 8GB 内存、无独显、CPU 为主 | all-minilm、embeddinggemma-2:270m、qwen3-embedding:0.6b | 先用几十条中文文档测试单条和批量请求,记录实际内存峰值与耗时。 | 不能据模型文件大小推断一定能稳定运行,也不能推断中文质量。 |
| 16GB 内存或中等消费级显卡 | bge-m3、qwen3-embedding:4b、EmbeddingGemma 2 中等规格 | 分别测试 CPU、GPU 或 Ollama 实际使用的后端,固定批量大小后比较。 | 不能把参数量或标签大小直接等同于召回率。 |
| 32GB 以上内存或更大显存 | qwen3-embedding:8b、较大 EmbeddingGemma 2 标签 | 先查看具体标签、量化方式和向量维度,再决定是否扩大索引规模。 | 不能直接套用公开榜单,也不能把官方基准当成本地中文结果。 |
建议记录四项本地数据:模型标签、实际向量维度、批量请求耗时、人工标注查询的 Top-k 命中情况。若没有固定查询集,就只能比较工程开销,不能得出“哪个更准”的结论。
最小可运行流程:pull、批量 /api/embed 与四项成功判定
- 先在当前 Ollama 模型页确认标签,例如
qwen3-embedding:0.6b;示例标签不是永久不变的配置值,执行前要核实。 - 下载模型:
ollama pull qwen3-embedding:0.6b。 - 启动本地 Ollama 服务,并向
POST /api/embed发送单条或数组形式的input。 - 记录响应中的
model、embeddings数量和每个向量的长度,再写入向量数据库。
最小批量请求示例,模型名属于示例值,发送前请核实:
curl http://localhost:11434/api/embed -H "Content-Type: application/json" -d '{"model":"qwen3-embedding:0.6b","input":["这是一个中文知识库片段。","如何检查 API 调用是否成功?"]}'
Ollama API 文档规定 model 与 input 为必需字段,input 可以是文本或文本数组,响应包含 model 和 embeddings。成功判定建议固定为四项:HTTP 请求成功;响应模型与请求标签一致或符合本地返回;向量数量与输入条数一致;向量数据库能够用相同维度完成相似度查询。查看 Ollama /api/embed 文档
如果出现模型不存在、请求超时或响应为空,先保存状态码、响应体、最终 URL 和实际模型标签,再按“模型是否已 pull—服务是否运行—标签是否完全一致—输入是否过长—客户端是否调用了正确路径”排查。不要只凭 401、404 或超时就断定某一种原因。
前缀、truncate 和 dimensions:不要把不同模型的规则混用
查询和文档前缀如何确认
mxbai-embed-large 的官方 Ollama 页面给出了明确的搜索前缀示例:Represent this sentence for searching relevant passages:。EmbeddingGemma 2 页面只说明可以使用任务指令前缀,但没有在该页面给出一组固定的中文查询与文档字符串。Qwen3 和 BGE-M3 的 Ollama 页面也没有给出统一的前缀模板。因此,除了 mxbai 的页面示例外,其余模型不要自行编造或复制前缀;应查看模型参考资料,并在测试中保持文档与查询格式一致。查看 mxbai 官方示例 查看 EmbeddingGemma 2 说明
truncate 是超长处理开关,不是切片策略
Ollama API 文档说明,truncate 默认值为 true,超出上下文时会截断输入;设为 false 时,超长输入返回错误。生产流程仍应在请求前主动切片,调试阶段可以设置 truncate: false 来暴露切片问题。具体行为还应结合本地 Ollama 版本和模型标签验证。
dimensions 不能随便填写
当前 API 文档列出 dimensions 参数,用于指定输出向量维度,但并非所有模型都必然接受任意维度。首次接入建议省略该字段,先读取实际向量长度;只有模型页面、API 行为和向量数据库配置都确认后,才测试自定义维度。核对 truncate 与 dimensions 参数
更换模型后为什么要重建索引:用一组小基准避免盲选
向量库中的文档向量是由特定模型、维度、切片规则和输入格式共同生成的。更换模型、标签、输出维度或前缀规则后,不能只替换查询端模型;更稳妥的做法是建立新集合并重新生成文档向量。Ollama 官方能力文档也明确建议索引和查询使用同一个 Embedding 模型,并使用余弦相似度处理常见语义搜索场景。查看 Embeddings 能力文档
- 准备 20—50 条真实中文或中英混合文档,并为每个问题标注目标文档。
- 固定切片长度、重叠长度、批量大小和查询文本格式。
- 分别用候选模型生成文档向量和查询向量。
- 记录实际向量维度、单批耗时、内存峰值和 Top-k 是否命中目标文档。
- 为新模型建立独立向量集合,不要把不同模型的向量混在一起。
- 只有在命中情况和工程开销都可接受时,再替换正式索引。
这个小基准只能回答“哪个更适合你的数据和设备”,不能代表公开排行榜,也不能替代更大规模评测。
结论:把“推荐”理解为测试顺序,而不是固定冠军
如果没有任何历史数据,中文或中英混合 RAG 可以先测试 qwen3-embedding:0.6b 与 bge-m3;资源非常紧张时,可以把 embeddinggemma-2:270m 和 all-minilm 放入轻量候选;已有英文短文本流程,则保留 nomic-embed-text 或 mxbai-embed-large 做对照。选择依据是 Ollama 官方页面公开的语言、标签大小、上下文和输入能力,不代表本站完成了统一硬件测试或中文质量排名。
最终只需执行三步:确认当前模型标签,跑通 /api/embed 批量请求,用自己的查询集比较命中率和资源开销。确认模型后,再把向量检索接入具体应用。
常见问题 FAQ
Ollama Embedding 中文模型推荐哪个?
建议先把 qwen3-embedding:0.6b 和 bge-m3 纳入测试。前者官方页面列出 100 多种语言和多种规格,后者页面列出多语言与 8K 上下文;这只是候选依据,不等于你的中文知识库一定由某个模型胜出。
8GB 内存能不能运行 Ollama Embedding?
可以先从 all-minilm、EmbeddingGemma 2 270M 或 Qwen3 Embedding 0.6B 等较小标签开始测试,但 8GB 不是这些模型的统一官方最低配置。运行时还受操作系统、并发、量化方式、向量库和其他进程影响,应观察本机内存峰值。
没有显卡应该选哪个模型?
可以先选择较小标签做 CPU 流程验证,例如 all-minilm、EmbeddingGemma 2 270M 或 Qwen3 Embedding 0.6B。不要据此推断速度或中文质量;应使用固定批量和真实查询集记录结果。
Ollama Embedding API 使用哪个路径?
当前官方 API 文档使用 POST /api/embed,input 可以是单条文本或文本数组。部分旧模型页面仍展示旧的 /api/embeddings 示例,接入新流程时应优先核对当前 API 文档和本地版本。
Qwen3、BGE-M3 和 EmbeddingGemma 要不要添加前缀?
不能统一回答“都要”。mxbai 页面明确给出搜索前缀示例;EmbeddingGemma 2 页面说明支持任务指令前缀,但未在该页面给出固定模板;Qwen3 和 BGE-M3 的 Ollama 页面也没有提供统一前缀格式。首次测试不要复制 mxbai 前缀,先按各模型参考资料确认并保持文档、查询格式一致。
dimensions 参数可以随便设置吗?
不可以。Ollama API 文档列出了该参数,但具体模型是否接受某个维度仍需核实。首次调用建议省略 dimensions,读取默认向量长度,并让向量数据库使用相同维度。
更换 Embedding 模型后需要重建索引吗?
通常需要。更换模型、标签、输出维度或前缀规则后,应重新生成文档向量并建立新集合,再用固定查询集比较;不要把不同模型的向量混放在同一个索引中。
常见问题
Ollama Embedding 中文模型推荐哪个?
先测试 qwen3-embedding:0.6b 与 bge-m3,但这只是候选起点,不是统一中文质量排名。
8GB 内存能不能运行 Ollama Embedding?
可以先测试 all-minilm、embeddinggemma-2:270m 或 qwen3-embedding:0.6b,但 8GB 不是统一官方最低配置,应观察本机内存峰值。
没有显卡应该选哪个模型?
先用较小标签验证 CPU 流程,例如 all-minilm、embeddinggemma-2:270m 或 qwen3-embedding:0.6b,再用真实查询集评估。
Ollama Embedding API 使用哪个路径?
当前官方 API 文档使用 POST /api/embed,input 支持单条文本或文本数组。
Qwen3、BGE-M3 和 EmbeddingGemma 要不要添加前缀?
不能统一处理。mxbai 页面有明确搜索前缀示例,其他模型应按各自参考资料核实,不要直接复制。
dimensions 参数可以随便设置吗?
不可以。首次调用建议省略该参数,先读取默认向量长度,再确认模型和向量数据库是否支持自定义维度。
更换 Embedding 模型后需要重建索引吗?
通常需要。更换模型、维度或前缀规则后,应重新生成文档向量并建立新索引。
相关阅读
参考资料
- Ollama qwen3-embedding 模型页(ollama.com)
- Ollama bge-m3 模型页(ollama.com)
- Ollama embeddinggemma-2 模型页(ollama.com)
- Ollama all-minilm 模型页(ollama.com)
- Ollama nomic-embed-text 模型页(ollama.com)
- Ollama mxbai-embed-large 模型页(ollama.com)
