AI 驱动的混合搜索正在进行封闭测试。 加入等待列表,获取早期访问权限!

返回主页Meilisearch 的标志
返回文章列表
2024 年 9 月 3 日

选择语义搜索的最佳模型

关于构建语义搜索的模型性能、成本和相关性的比较。

Quentin de Quelen
Quentin de QuelenMeilisearch 联合创始人兼首席执行官@Quentin_dQ
Choosing the best model for semantic search

语义搜索 通过提供更准确和相关的结果正在改变搜索技术。 然而,由于有许多可用的嵌入模型,选择合适的模型可能具有挑战性。本指南将帮助您了解在选择用于构建语义搜索的模型时要考虑的关键因素。

概述

在本指南中,我们将使用开源搜索引擎 Meilisearch 来执行语义搜索。 为了测试,我们使用了 Meilisearch Cloud 的入门级套餐(即 构建计划。)

本指南将涵盖以下模型

需要考虑的因素

1. 结果相关性

相关性 对于有效的搜索至关重要,因为它确保用户能够快速找到最相关的结果。 在语义搜索领域,在相关性和速度之间取得平衡对于提供无缝的用户体验至关重要。 重要的是要考虑 向量搜索与全文搜索 的权衡。

在选择模型时,请考虑您的特定用例,例如对多语言支持、处理多模态数据或满足特定领域要求的需求。 如果您有高度专业的用例或需要支持特定语言,那么探索可以根据您的数据进行训练的模型或选择多语言模型可能会有所帮助。

非常小的模型和大型模型之间的性能差异并不总是很大。 较小的模型通常成本较低且速度更快,使其在许多情况下成为实用的选择。 因此,通常值得考虑较小的模型,因为它们具有成本效益和速度。

此外,您应该始终考虑您提供给模型的上下文。 在 Meilisearch 中,这以 文档模板 的形式出现。 模板越准确地描述数据,搜索结果就越好,从而带来更令人满意的用户体验。

2. 搜索性能

您现在到处都能看到。 时间就是金钱。 Web 也一样。 如今,即时搜索 是面向客户的应用程序的基准。 节省用户的时间可以大大提高他们的满意度并让他们参与到您的平台中。

为了实现闪电般的搜索性能,请考虑使用本地模型,以最大限度地减少延迟,从而无需往返于嵌入服务。 如果您需要使用远程模型,那么将您的搜索服务(例如,您的 Meilisearch 数据库)托管在嵌入服务附近可以显着减少延迟。

下表展示了各种本地嵌入模型和嵌入 API 的延迟基准。 所有请求都来自托管在 AWS(伦敦数据中心)上的 Meilisearch 实例。

在这里,您可以看到在延迟方面有一些明显的赢家。 不幸的是,延迟与吞吐量不同,因此我们也需要仔细查看索引时间。

3. 索引性能

索引性能是 比较搜索解决方案 时的另一个关键方面。 嵌入模型的性能将直接影响搜索解决方案的索引速度。 以及索引数据的速度将直接影响搜索解决方案的整体效率和可扩展性。

由于处理能力有限,没有 GPU 的本地模型可能索引速度较慢。 相比之下,第三方服务根据其基础设施和服务协议提供不同的速度和限制。 评估这些因素对于确保您选择的模型和服务能够有效满足您的需求至关重要。

在优化索引时,有几个因素会起作用。 同样,延迟起着重要作用:减少数据在您的应用程序和模型之间传输的时间始终会改善您的体验。 此外,API 接受的 API 调用的最大大小、提供商的 速率限制 以及模型支持的 维度数量 都会影响索引过程的效率和可扩展性。

下面的基准测试比较了 10k 电子商务文档的索引(使用 自动嵌入生成

4. 定价

虽然本地嵌入器是免费的,但大多数服务按每百万个 token 收费。 以下是每个平台的定价细分

提供商价格
Cohere每百万个 token 0.10 美元
OpenAItext-embedding-3-large 每百万个 token 0.13 美元
text-embedding-3-small 每百万个 token 0.02 美元
Cloudflare每 1,000 个神经元 0.011 美元
Jina每百万个 token 0.18 美元
Mistral每百万个 token 0.10 美元
VoyageAIvoyage-2 每百万个 token 0.10 美元
voyage-large-2 每百万个 token 0.12 美元
voyage-multilingual-2 每百万个 token 0.12 美元
本地模型免费

随着您的搜索需求增长和扩展,投资您自己的 GPU 机器可能会更具成本效益。 通过拥有自己的硬件,您可以更好地控制搜索解决方案的性能和可扩展性,并有可能从长远来看降低成本。

最好从提供的列表中选择一个知名的模型开始。 它们通常易于设置,您将很容易找到社区资源来帮助您。 随着需求的出现,您可以考虑将模型迁移到 AWS 等云提供商。 许多服务都提供此选项,允许您利用其基础设施来提高性能和可扩展性。

或者,您可以选择一个等效的开源模型进行自托管,从而在长期内为您提供更大的灵活性和对搜索解决方案的控制。请注意,优化本地模型以获得性能或高容量可能需要相应地扩展您的基础设施。


准备好提升您的搜索体验了吗?

与搜索专家交流


深入了解

虽然本文提供了全面的概述,但我们没有深入探讨优化技术。 还有一些额外的优化可以探索,以进一步增强语义搜索的性能。

以下是为您的搜索体验选择模型时需要研究的其他领域列表

  • 尝试为提供此选项的模型使用不同的预设(查询 vs. 文档),以潜在地提高相关性
  • 评估针对特定应用的专业模型,以评估其性能和是否适合您的用例
  • 探索提供重排功能的模型,以进一步优化搜索结果
  • 在每个平台上测试更高级别的帐户,以检查性能是否提高并减少速率限制
  • 研究用于直接从 API 接收量化数据的参数,以优化数据传输和处理

结论

模型/服务维度上下文长度延迟索引时间定价(每百万个 token)
Cohere embed-english-v3.01024512±170 毫秒43 秒$0.10
Cohere embed-english-light-v3.0384512±160 毫秒16 秒$0.10
OpenAI text-embedding-3-small15368192±460 毫秒95 秒$0.02
OpenAI text-embedding-3-large30728192±750 毫秒151 秒$0.13
Mistral10248192±200 毫秒409 秒$0.10
VoyageAI voyage-210244000±350 毫秒330秒$0.10
VoyageAI voyage-large-2153616000±400 毫秒409 秒$0.12
Jina Colbert v2128、96 或 648192±400 毫秒375 秒$0.18
OSS all-MiniLM-L6-v2384512±10 毫秒880 秒免费
OSS bge-small-en-v1.51024512±20 毫秒3379 秒免费
OSS bge-large-en-v1.51536512±60 毫秒9132 秒免费

为语义搜索选择正确的模型和服务需要仔细权衡几个关键因素:相关性、搜索性能、索引性能和成本。

每个选项都有其自身的权衡取舍

  • 诸如 Cohere 和 OpenAI 之类的云服务提供出色的相关性和合理的延迟,其中 Cohere 的 embed-english-light-v3.0 因其速度和性能的平衡而脱颖而出。
  • 本地模型提供最快的搜索延迟,但在有限的硬件上可能会在索引速度方面遇到困难。
  • Mistral 和 VoyageAI 等新兴服务在具有竞争力的价格和性能方面展现出潜力。
  • 对于那些愿意管理自己基础设施的人来说,开源模型提供了经济高效的解决方案。

最终,最佳选择取决于您的具体用例、预算和性能要求。 对于许多应用程序而言,从 Cohere 或 OpenAI 等云服务开始,可以很好地平衡易用性、性能和成本。 随着您的需求增长,请考虑探索本地或专业模型,或联系 Meilisearch 的销售团队以获取量身定制的解决方案。


Meilisearch 是一个开源搜索引擎,使开发人员能够构建最先进的体验,同时享受简单直观的 DX。

有关 Meilisearch 的更多信息,您可以在 Discord 上加入社区,或订阅 新闻通讯。 您可以通过查看其 路线图 并参与 产品讨论 来了解有关该产品的更多信息。

Fuzzy Search: A Comprehensive Guide to Implementation

模糊搜索:实施全面指南

了解如何在应用程序中实施模糊搜索以处理错别字和拼写错误。 获取实用的代码示例和最佳实践,以获得更好的用户体验。

Ilia Markov
Ilia Markov2024 年 12 月 18 日
Software Engineering Predictive Search: A Complete Guide

软件工程预测搜索:完整指南

了解如何在您的软件应用程序中实现预测搜索。 发现关键概念、优化技术和真实示例,以增强用户体验。

Ilia Markov
Ilia Markov2024 年 12 月 11 日
Beyond the Hype: Practical AI Search Strategies That Deliver ROI

超越炒作:交付 ROI 的实用 AI 搜索策略

了解如何实施能够推动实际投资回报率的 AI 驱动的搜索。 通过实用的预算、功能选择和衡量成功策略,打破炒作。

Ilia Markov
Ilia Markov2024 年 12 月 2 日