Nomic Embed Text V2:开源、多语言、专家混合的嵌入模型
Nomic 不断发布最有趣、最强大的嵌入模型。他们的最新产品是 Embed Text V2,这是一个 Apache 2.0 许可的多语言 1.9GB 模型(这里是在 Hugging Face 上),在“16 亿高质量数据对”上进行训练,这是我见过的第一个使用 Mixture of Experts 架构的嵌入模型:
在我们的实验中,我们发现具有 8 个专家和 top-2 路由的交替 MoE 层可提供性能和效率之间的最佳平衡。这导致模型中的总参数为 475M,但在训练和推理期间只有 305M 处于活动状态。
我首先使用uv run
进行了尝试,如下所示:
紫外运行\ --与 einops \ --with 句子转换器 \ --python 3.13 python
然后:
从句子转换器导入句子转换器 模型= SentenceTransformer ( “nomic-ai/nomic-embed-text-v2-moe” , trust_remote_code = True ) 句子= [ “你好!” , “嗨!” ] 嵌入=模型。编码(句子, prompt_name = “段落” ) 打印(嵌入)
然后我使用llm-sentence-transformers插件在我的笔记本电脑上运行它,如下所示:
llm install llm-sentence-transformers llm install einops # additional necessary package llm sentence-transformers register nomic-ai/nomic-embed-text-v2-moe --trust-remote-code llm embed -m sentence-transformers/nomic-ai/nomic-embed-text-v2-moe -c 'string to embed'
这会将 768 项 JSON 浮点数数组输出到终端。这些是Matryoshka 嵌入,这意味着您可以将其截断为仅前 256 个项目,并获得仍然有效的相似性计算,尽管效果稍差。
要将其用于 RAG,您需要符合 Nomic 的自定义提示格式。对于要检索的文档:
search_document: text of document goes here
对于搜索查询:
search_query: term to search for
我为llm embed-multi命令添加了一个新的 –prepend 选项来帮助解决此问题,但它尚未在完整版本中发布。
我还发布了llm-sentence-transformers 0.3,其中进行了一些小的改进,以使该模型的运行更加流畅。
标签: embeddings 、 llm 、 nomic 、 ai 、 rag 、 uv 、 python
原文: https://simonwillison.net/2025/Feb/12/nomic-embed-text-v2/#atom-everything