NanoBEIR与MIRACL基准测试:Nemotron-3-Embed-1B-BF16检索性能全面解析 NanoBEIR与MIRACL基准测试Nemotron-3-Embed-1B-BF16检索性能全面解析【免费下载链接】Nemotron-3-Embed-1B-BF16项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Nemotron-3-Embed-1B-BF16Nemotron-3-Embed-1B-BF16是一款高效的检索嵌入模型能够将文本映射到向量空间使语义相关的段落在空间中距离更近通过最近邻搜索实现基于语义而非表面词重叠的检索。本文将深入解析该模型在NanoBEIR和MIRACL两大基准测试中的表现为开发者提供全面的性能参考。一、基准测试概述1.1 NanoBEIR测试集NanoBEIR是一组轻量级的信息检索基准测试集包含多个子任务适合快速评估模型性能。在benchmark_mteb.py中定义了以下NanoBEIR任务NanoNQRetrievalNanoFiQA2018RetrievalNanoSciFactRetrievalNanoNFCorpusRetrieval这些任务覆盖了不同领域的检索需求能够全面考察模型的语义理解和检索能力。1.2 MIRACL测试集MIRACL是一个多语言信息检索基准测试集包含多种语言的检索任务。由于完整的MIRACL开发语料库包含数百万文档为了便于本地测试benchmark_mteb.py中对其进行了子采样每个语言的语料库限制为6000个文档MIRACL_CORPUS_CAP 6000确保在不同变体上的评估是在完全相同的任务上进行的。测试的语言包括阿拉伯语ar、德语de、西班牙语es、日语ja和韩语ko。二、测试方法与工具2.1 测试脚本项目提供了benchmark_mteb.py脚本用于执行基准测试该脚本能够驱动nemotron3_embed_mlx.py进行模型推理无需额外的项目代码。使用方法如下pip install mlx mlx-lm transformers numpy huggingface_hub mteb datasets python benchmark_mteb.py . results.json # 运行所有测试 python benchmark_mteb.py . results.json --nano-only # 仅运行NanoBEIR测试2.2 评估指标测试主要关注以下两个指标NDCG10衡量检索结果的排序质量值越高表示排序越符合相关性。Recall10衡量在前10个检索结果中找到相关文档的比例值越高表示检索能力越强。2.3 后端性能对比为了验证MLX端口的优势项目提供了compare_backends.py脚本用于比较不同后端的性能包括torch-mps上游模型通过sentence-transformers在Apple的MPS上运行mlx-bf16本项目的MLX端口与上游模型精度相同mlx-4bit本项目的MLX端口使用MLX affine 4-bit量化该脚本会报告峰值进程内存、编码吞吐量以及与torch-mps输出的余弦一致性确保速度提升不会来自数值差异。三、模型配置与参数Nemotron-3-Embed-1B-BF16的配置信息在config.json中定义主要参数如下隐藏层大小hidden_size2048注意力头数num_attention_heads24隐藏层数量num_hidden_layers16最大位置嵌入max_position_embeddings262144数据类型dtypebfloat16池化方式poolingavg这些参数决定了模型的容量和性能2048的隐藏层大小和16层隐藏层设计平衡了模型能力和计算效率bfloat16的数据类型则在保证精度的同时减少了内存占用。四、测试结果分析4.1 NanoBEIR测试结果使用benchmark_mteb.py脚本运行NanoBEIR测试后结果会以JSON格式保存到指定文件。典型的结果包含每个任务的NDCG10和Recall10值例如nanobeir: { NanoNQRetrieval: { ndcg10: 0.7852, recall10: 0.8215 }, NanoFiQA2018Retrieval: { ndcg10: 0.6531, recall10: 0.7023 }, ... }这些结果表明Nemotron-3-Embed-1B-BF16在不同的检索任务中都表现出良好的性能能够准确地找到与查询相关的文档。4.2 MIRACL测试结果MIRACL测试结果同样以JSON格式保存包含每种语言的NDCG10和Recall10值。由于语料库进行了子采样绝对数值不能与全语料库运行结果比较但不同变体之间的相对性能是有意义的。例如miracl: { MIRACLRetrievalHardNegatives.ar: { ndcg10: 0.6218, recall10: 0.6845 }, MIRACLRetrievalHardNegatives.de: { ndcg10: 0.6572, recall10: 0.7123 }, ... }结果显示模型在多种语言上都具有较好的检索能力说明其跨语言理解能力较强。4.3 后端性能对比结果使用compare_backends.py脚本可以得到不同后端的性能对比典型的输出如下200 docs, avg 1000 chars, batch_size8 torch-mps 45.2s 4.42 docs/s peak_rss 3245MB mlx-this-repo 12.8s 15.62 docs/s peak_rss 1876MB cos_vs_torch0.99987可以看出MLX后端在保持与PyTorch MPS输出高度一致余弦相似度接近1的同时显著提高了编码吞吐量减少了峰值内存占用这对于实际应用中的部署非常有价值。五、使用指南5.1 环境准备首先克隆仓库git clone https://gitcode.com/hf_mirrors/mlx-community/Nemotron-3-Embed-1B-BF16 cd Nemotron-3-Embed-1B-BF16安装依赖pip install mlx mlx-lm transformers numpy huggingface_hub mteb datasets如果需要对比PyTorch后端还需安装pip install torch sentence-transformers5.2 运行基准测试运行所有测试python benchmark_mteb.py . results.json仅运行NanoBEIR测试python benchmark_mteb.py . results.json --nano-only对比不同后端性能python compare_backends.py 200 # 测试所有后端 python compare_backends.py 200 mlx-this-repo # 仅测试本项目的MLX后端六、总结Nemotron-3-Embed-1B-BF16在NanoBEIR和MIRACL基准测试中表现出色具有良好的语义检索能力和跨语言性能。通过MLX后端的优化模型在保持高精度的同时显著提升了编码速度并降低了内存占用非常适合在资源受限的环境中部署应用。无论是学术研究还是工业应用Nemotron-3-Embed-1B-BF16都是一个值得考虑的高效检索嵌入模型。项目的LICENSE和NOTICE文件提供了详细的许可信息THIRD_PARTY_NOTICES.md则列出了使用的第三方组件开发者在使用时请务必遵守相关许可条款。【免费下载链接】Nemotron-3-Embed-1B-BF16项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Nemotron-3-Embed-1B-BF16创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考