我开发了一种方法,可以在不同嵌入模型间迁移,而无需重新嵌入整个语料库

Reddit r/LocalLLaMA 工具

摘要

本文介绍了一种通过重新排序文档子集来迁移嵌入模型的方法,无需重新嵌入整个语料库,并达到相似的检索质量,同时介绍了embedflow,这是一个在PyPI和GitHub上可用的工具。

所以我一直在研究嵌入模型时发现,当你从模型A升级到模型B时,会面临很大的回填成本。也就是说,假设你有来自模型A的10亿向量,然后想使用模型B。这意味着你必须用模型B重新嵌入所有文档才能使用它,而在H100上,这大约需要108天(qwen embed 8b,106文档/秒)。但我找到了一个更简单的方法。这种方法非常简单:从用源模型创建的旧索引中,取出K个文档,并用新模型重排它们。我们看到,当K足够大时,检索质量与目标模型相同。(确定K是困难的部分)。我已经在多达100万文档上测试了63次迁移。我得到的最佳结果是从qwen4b升级到8b,在50个文档时,与原生检索效果相同。这种方法避免了昂贵的前期重嵌入成本,因为你可以直接从旧索引中取出文档。embedflow支持qdrant、pgvector、faiss,可以通过pypi pip install embedflow轻松下载,GitHub是公开的:https://github.com/arnsri33/embedflow。我希望你们试一试,看看是否能在自己的工作流中使用它。
查看原文

相似文章

新的嵌入模型和 API 更新

OpenAI Blog

OpenAI 发布了两个新的嵌入模型:text-embedding-3-small(比 ada-002 便宜 5 倍,MIRACL 性能提升 40% 以上)和 text-embedding-3-large(性能最佳,支持最多 3072 维度)。两个模型在标准基准上都展现出显著的性能提升,同时降低了成本。