Ollama 应用实践:如何选择合适的 Embedding 模型 ?
选择合适的 Embedding 模型对于文本分析、语义搜索、问答系统等应用至关重要。Ollama 提供了一系列专业的 Embedding 模型,每种模型都有其特定的优势和应用场景。以下是选择合适 Embedding 模型的一些关键因素:
1. 应用场景
- 确定您的应用是否需要特定领域的优化或多语言支持。例如,
shaw/dmeta-embedding-zh
适合中文场景。
2. 模型性能
- 考虑模型在相关基准测试(如 MTEB)上的表现,选择性能最优的模型。
3. 参数大小与推理成本
- 根据可用的计算资源,选择合适大小的模型。较小的模型(如
shaw/dmeta-embedding-zh-small
)可能具有更快的推理速度。
4. 上下文窗口长度
- 对于需要处理长文本的应用,选择支持较长上下文窗口的模型。
5. 社区反馈与支持
- 选择有良好社区支持和详细文档的模型,以便快速解决问题并获取帮助。
推荐的 Embedding 模型
以下我们选择了几个专业的 Embedding 的模型,用于进行 文本嵌入(Embeddings)的学习。
模型概览
- shaw/dmeta-embedding-zh:小型中文 Embedding 模型,适合多种场景,特别是在语义检索和 RAG 应用中表现出色。参数大小仅 400MB,支持上下文窗口长度达到 1024,推理成本较低。
- mxbai-embed-large:截至 2024 年 3 月,在 MTEB 上创下了 Bert-large 尺寸模型的 SOTA 性能记录,具有很好的泛化能力。
- nomic-embed-text:大上下文长度文本编码器,超越了 OpenAI
text-embedding-ada-002
,在短上下文和长上下文任务上表现优异。 - snowflake-arctic-embed:专注于性能优化的高质量检索模型,提供不同参数大小的版本以适应不同的性能和资源需求。
- bge-m3:BGE-M3 是 BAAI 推出的一款新机型,以多功能性、多语言性和多粒度的多功能性而著称。
- bge-large:专注于性能优化的高质量检索模型,提供不同参数大小的版本以适应不同的性能和资源需求。
注意事项
- Windows 用户启动 Ollama 后,系统托盘会出现图标,表明服务已启动。
- 访问 Embedding 服务时无需运行
ollama run
,仅在需要 chat 功能时才需启动大模型。
shaw/dmeta-embedding-zh
Dmeta-embedding 是一款跨领域、跨任务、开箱即用的中文 Embedding 模型,适用于搜索、问答、智能客服、LLM+RAG 等各种业务场景,支持使用 Transformers/Sentence-Transformers/Langchain 等工具加载推理。
- Huggingface:https://huggingface.co/DMetaSoul/Dmeta-embedding-zh
- 文档地址:https://ollama.com/shaw/dmeta-embedding-zh
优势特点如下:
- 多任务、场景泛化性能优异,目前已取得 MTEB 中文榜单第二成绩(2024.01.25)
- 模型参数大小仅 400MB,对比参数量超过 GB 级模型,可以极大降低推理成本
- 支持上下文窗口长度达到 1024,对于长文本检索、RAG 等场景更适配
该模型有 4 个不通的版本:
- dmeta-embedding-zh:
shaw/dmeta-embedding-zh
是一个参数量只有400M、适用于多种场景的中文Embedding模型,在MTEB基准上取得了优异成绩,尤其适合语义检索、RAG等LLM应用。 - dmeta-embedding-zh-q4:
shaw/dmeta-embedding-zh
的 Q4_K_M 量化版本 - dmeta-embedding-zh-small:
shaw/dmeta-embedding-zh-small
是比shaw/dmeta-embedding-zh
更轻量化的模型,参数不足300M,推理速度提升30%。 - dmeta-embedding-zh-small-q4:
shaw/dmeta-embedding-zh-small
的 Q4_K_M 量化版本
ollama pull shaw/dmeta-embedding-zh
bge-m3
BGE-M3 基于 XLM-RoBERTa 架构,具有多功能性、多语言性和多粒度的多功能性:
- 多功能性:可以同时执行嵌入模型的三种常见检索功能:密集检索、多向量检索和稀疏检索。
- 多语言性:可支持100多种工作语言。
- 多粒度:它能够处理不同粒度的输入,从短句子到最多 8192 个标记的长文档。
来自开源社区的基准
文档地址:https://ollama.com/library/bge-m3
ollama pull bge-m3
mxbai-embed-large
截至 2024 年 3 月,该模型在 MTEB 上创下了 Bert-large 尺寸模型的 SOTA 性能记录。它的表现优于 OpenAIs
text-embedding-3-large
模型等商业模型,并且与其尺寸 20 倍的模型的性能相当。mxbai-embed-large
在没有 MTEB 数据重叠的情况下进行训练,这表明该模型在多个领域、任务和文本长度方面具有很好的泛化能力。
文档地址:https://ollama.com/library/mxbai-embed-large
ollama pull mxbai-embed-large
nomic-embed-text
nomic-embed-text 是一个大上下文长度文本编码器,超越了 OpenAI
text-embedding-ada-002
,并且text-embedding-3-small
在短上下文和长上下文任务上表现优异。
文档地址:https://ollama.com/library/nomic-embed-text
ollama pull nomic-embed-text
snowflake-arctic-embed
snowflake-arctic-embed 是一套文本嵌入模型,专注于创建针对性能优化的高质量检索模型。
这些模型利用现有的开源文本表示模型(例如 bert-base-uncased)进行训练,并在多阶段管道中进行训练以优化其检索性能。
该模型有 5 种参数大小:
- snowflake-arctic-embed:335m(默认)
- snowflake-arctic-embed:137m
- snowflake-arctic-embed:110m
- snowflake-arctic-embed:33m
- snowflake-arctic-embed:22m
文档地址:https://ollama.com/library/snowflake-arctic-embed
ollama pull snowflake-arctic-embed
all-minilm
all-minilm 是一款在非常大的句子级数据集上训练的嵌入模型。
文档地址:https://ollama.com/library/all-minilm
ollama pull all-minilm
最后编辑:Jeebiz 更新时间:2024-11-21 01:00