nomic-embed-text-v1.5-GGUF项目介绍
项目概述
nomic-embed-text-v1.5-GGUF是一个由Nomic开发的文本嵌入模型。这个模型基于BERT技术,主要用于句子相似度分析。在如今的自然语言处理(NLP)领域,评估句子之间的相似度对于很多应用都是至关重要的,如信息检索和问答系统等。
模型信息
- 基础模型: nomic-ai/nomic-embed-text-v1.5
- 许可协议: Apache-2.0
- 模型类型: BERT
- 功能标签: 句子相似度和特征提取
使用说明
要使用nomic-embed-text模型进行文本嵌入,需要在字符串的开始添加任务指令前缀。例如,要在RAG应用程序中嵌入用户问题,可以使用search_query
前缀。更多关于任务指令的用法与设计,请访问模型卡中的信息。
技术细节
这个项目包含以GGUF格式兼容llama.cpp的文件。默认情况下,llama.cpp使用2048个token的上下文长度。为了使用Nomic Embed基准测试的完整8192个token,用户需要选择一个上下文扩展方法。尽管原始模型使用Dynamic NTK-Aware RoPE缩放,但在llama.cpp中尚未实现。目前可以使用YaRN和线性缩放的组合来代替。
转换和量化工作由llama.cpp的PR 5500(见GitHub)完成。
示例命令
单个嵌入计算示例:
./embedding -ngl 99 -m nomic-embed-text-v1.5.f16.gguf -c 8192 -b 8192 --rope-scaling yarn --rope-freq-scale .75 -p 'search_query: What is TSNE?'
可以提交一批文本进行嵌入,只要token总数不超过上下文长度即可。以下仅显示了前三个嵌入的例子:
texts.txt文件:
search_query: What is TSNE?
search_query: Who is Laurens Van der Maaten?
多嵌入计算示例:
./embedding -ngl 99 -m nomic-embed-text-v1.5.f16.gguf -c 8192 -b 8192 --rope-scaling yarn --rope-freq-scale .75 -f texts.txt
兼容性
这些文件与截至2024年2月15日的llama.cpp的具体提交版本兼容。
提供的文件
下表展示了这些Nomic Embed量化的均方误差相较于Sentence Transformers实现的结果:
名称 | 量化方式 | 大小 | MSE |
---|---|---|---|
nomic-embed-text-v1.5.Q2_K.gguf | Q2_K | 48 MiB | 2.33e-03 |
nomic-embed-text-v1.5.Q3_K_S.gguf | Q3_K_S | 57 MiB | 1.19e-03 |
...(略去部分重复内容以简洁,查看完整列表请访问相关网站)... | |||
nomic-embed-text-v1.5.f32.gguf | F32 | 262 MiB | 6.08e-11 |
通过提供多种量化级别及不同大小的文件,用户可以根据需要选择适合自己应用的模型版本,以权衡精度与性能。