回到主页Meilisearch's logo
返回文章
2025年3月19日

如何选择最适合语义搜索的模型

探索最适合语义搜索的嵌入模型。了解我们的模型性能、成本和相关性比较,以构建语义搜索。

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

语义搜索通过侧重理解用户搜索中词语和短语背后的含义,而不是仅仅依赖逐字匹配,从而改变了我们在线查找信息的方式。

通过使用机器学习 (ML) 和自然语言处理 (NLP),它能够解码词语间的意图、上下文和关系,从而支持更具对话性的查询。这使其成为需要从大型或复杂数据集中获取快速、准确和相关结果的企业的关键工具。

嵌入模型是机器学习 (ML) 技术,可将词语和短语转化为复杂的数值表示形式,然后根据它们的上下文和关系进行分类。然而,并非所有模型都相同。它们的准确性、速度、索引效率和定价可能存在显著差异。

选择合适的语义搜索模型对于为特定任务提供精确、高效和可扩展的搜索体验至关重要。

理解其权衡——无论是多语言支持、搜索延迟还是计算效率——将帮助您的品牌实现高性能的语义搜索系统。

什么是语义搜索?

语义搜索是一种先进的、由人工智能驱动的信息检索方法,它侧重于自然语言处理 (NLP)、机器学习 (ML) 和知识表示,以推断用户查询的意图和上下文含义。

传统的关键词搜索引挚匹配的是精确的词串,但这通常是不够的。语义搜索通过整合**命名实体识别**、**词语间关系**和**上下文消歧**,提供更相关的结果。

语义搜索引擎能够理解同义词、转述查询,甚至推断隐含意义,这完全归功于它们使用了像 Transformer 这样的深度学习模型。

鉴于其增强搜索标准的能力,AI 驱动的搜索对于需要更快、更广泛,甚至是非结构化数据检索的应用至关重要。

为什么语义搜索很重要?

语义搜索很重要,因为它提高了搜索能力和相关性,从而帮助用户更快地找到信息,并减少不相关的结果。它还通过更清晰地解释自然语言查询来减少不确定性。

与相似性搜索一样,它允许用户以对话式和直观的方式提问,而不是使用特定——有时甚至是长尾——关键词。您可以这样理解:如果您可以在公交车上向邻居提问,那么您也可以通过快速语义搜索来提问。

此外,企业通过语义搜索可以**提升客户体验**、**改进产品发现**并**优化知识管理系统**而受益。

例如,像 Bookshop.org 这样的电商网站通过实施 Meilisearch 等语义搜索工具,可以将基于搜索的销售额提升高达 43%

语义搜索的核心组成部分是嵌入模型,通过它们可以实现相似性计算。

什么是嵌入模型?

嵌入模型是一种机器学习模型,它将词语、短语或文档转换为密集数值表示形式,称为嵌入 (embeddings)。

这些向量表示形式编码了词语关系,使搜索引擎能够比较语义含义和上下文,而不是仅仅依赖词语间的精确相似性。

例如,为“**phone**”、“**mobile**”和“**cell**”等词生成的嵌入在向量空间中将比“**cell**”和“**bell**”更紧密地对齐,尽管后两者在字母相似性上更接近。

这使得搜索引擎即使在缺少精确关键词的情况下也能检索到相关结果,为各种自然语言处理 (NLP) 和大型语言模型 (LLM) 应用提供了基础。

语义嵌入和搜索嵌入之间有什么区别?

语义嵌入和搜索嵌入在自然语言处理 (NLP) 应用中,尤其是在语义搜索中,具有不同的用途。

**语义嵌入**捕捉词语间的含义和关系,这对于文档分类、推荐系统、语言翻译和情感分析等任务很有帮助。它们通过反映词语的概念相似性来实现这一点,即使这些词没有在相同的上下文中出现。

另一方面,**搜索嵌入**专门针对检索任务进行优化,从而确保查询和索引文档在向量空间中有效对齐,以最大化搜索相关性。

与通用语义嵌入不同,搜索嵌入通常会整合领域和背景特定的优化,以微调特定检索活动的有效性。

例如,一个语义嵌入模型可能会学习到“mac”与意大利面、化妆品公司以及苹果笔记本电脑相关。然而,一个_搜索嵌入模型_针对计算机和硬件训练后,在处理该领域的搜索查询时,会优先考虑第三种含义。

嵌入模型通过支持与用户意图对齐的基于相似性的检索机制,成为语义搜索的支柱。

嵌入模型在语义搜索中扮演什么角色?

嵌入模型通过将文本转换为可高效索引和检索的结构化格式,为语义搜索提供动力。

这些模型不依赖精确的关键词匹配,而是将**查询**嵌入与**索引**文档嵌入进行比较。这使得最近邻搜索成为可能,并显著提高了相比依赖关键词匹配的传统算法的检索准确性。

这些模型通常使用基于 Transformer 的架构,例如 BERT(来自 Transformers 的双向编码器表示)、GPT(生成式预训练 Transformer)及其衍生神经网络,以捕获上下文感知表示。

这就是它们如何大规模处理细致查询的方式。例如,尽管“cat”和“bat”听起来(和看起来)相似,但其中只有一个可能在上下文中用作常见的家养宠物。

许多经过微调和预训练的模型不断涌现,成为语义搜索的行业标准。每个模型都以自己的方式提高了精度、相关性、效率和/或可扩展性。

语义搜索最常用的模型有哪些?

不同的嵌入模型在向量维度、上下文长度和某些其他性能特征方面存在差异。

在 LLM 的上下文中,维度指的是向量中分量的数量,每个分量对应编码变量的一个属性。此外,上下文长度与模型在任何给定时间可以“记住”和引用的文本量(通常以 token 衡量)有关。

为了评估这些差异,我们使用Meilisearch进行了一系列基准测试,评估了每个模型在您将遇到的实际搜索场景中的有效性。

这些测试测量了**检索准确性**、**索引速度**和**查询延迟**等因素,以此来评估每个模型在特定搜索条件下的性能。

您为语义搜索选择模型将取决于多种因素,包括但不限于其**准确性**、**计算效率**和**成本**。

选择最佳语义搜索模型时应考虑哪些因素?

1. 结果相关性

相关性是有效语义搜索的基石,尤其是在实现最佳用户体验方面。正确的模型应该在准确性、召回率和速度之间取得平衡,以确保用户获得高度相关且无过多干扰的结果。

在比较向量搜索和全文搜索等混合方法时,这种平衡变得尤为重要。选择嵌入模型时,请考虑以下几点:

  • 多语言支持;
  • 处理多模态数据;
  • 领域特定性能。

在这种情况下,越大并不总是越好。虽然大型模型通常提供更好的准确性,但小型模型可以以更低的计算成本提供有竞争力的结果。

此外,有效的数据结构,例如使用 Meilisearch 中优化的文档模板,可以提高搜索质量。

2. 搜索性能

搜索延迟是用户体验的关键因素。“边输入边搜索”已成为面向客户应用的标配,因为快速响应的搜索结果可以提高用户参与度和留存率。

本地嵌入模型是实现闪电般性能的理想选择,因为它们消除了对外部服务的往返需求并减少了延迟。如果您必须依赖远程模型,将搜索服务托管在靠近嵌入服务的地方可以最大程度地减少延迟并改善用户体验。

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

Meilisearch 中进行的基准测试突显了不同模型之间延迟的显著差异,本地模型可以实现低至 10 毫秒的响应时间,而某些基于云的服务则达到 800 毫秒。

3. 索引性能

高效索引是搜索解决方案可扩展性的另一个关键因素。正如所料,处理和存储嵌入所需的时间在不同模型之间差异很大。影响处理时间的显著指标包括 API 请求限制、批量处理能力和模型维度。

没有 GPU 的本地模型由于处理能力有限,可能会遇到较慢的索引速度,而第三方服务的速度则因其基础设施和协议而异。

如前所述,最小化应用程序和模型之间的数据传输时间可以减少延迟并优化索引。评估这些因素可确保您选择的模型和服务能够有效满足您的需求。

以下基准测试比较了 1 万份电子商务文档(具有自动嵌入生成功能)的索引性能。

Meilisearch 基准测试表明,索引时间范围从优化后的云解决方案的不到一分钟,到某些没有 GPU 加速的本地模型的数小时不等。

当您权衡应用程序中数据更新的频率和数量时,这些都是需要仔细考虑的重要因素。因为它们直接影响您的系统处理频繁或大量数据更新的速度,这对于维护搜索解决方案的性能和响应能力至关重要。

4. 定价

嵌入模型的成本因提供商和使用模式而异。虽然本地模型免费运行,但它们需要计算资源,可能需要投资 GPU。

另一方面,基于云的服务按每百万 token(或 Cloudflare 的每千个神经元)收费,成本从每百万 token $0.02 到 $0.18 不等。

提供商价格
CohereEmbed 3 每百万 token $0.10
OpenAItext-embedding-3-small 每百万 token $0.02
text-embedding-ada-002 每百万 token $0.10
text-embedding-3-large 每百万 token $0.13
Cloudflare每 1,000 个神经元 $0.011
Jina每百万 token $0.18
Mistral每百万 token $0.10
VoyageAIvoyage-3-lite 每百万 token $0.02
voyage-3 每百万 token $0.06
voyage-multimodal-3 每百万 token $0.12
voyage-code-3 每百万 token $0.18
voyage-3-large 每百万 token $0.18
本地模型免费

因此,请根据搜索需求和性能要求分析成本效益。通常,最好从一个易于设置且拥有强大社区支持的知名模型开始。必要时,您可以迁移到像 AWS 这样的云提供商以获得更好的性能。

或者,您可以选择一个开源模型进行自托管,这为您提供了更大的灵活性。但请注意,优化本地模型以处理高流量可能需要扩展您的基础设施。

5. 其他优化技术

为了最大限度地提高搜索性能,结合全文搜索和向量搜索的混合搜索方法可以产生最佳结果。为了优化语义搜索性能,请考虑以下优化措施:

  • 尝试模型预设,因为某些模型允许对查询与文档嵌入进行调整,这可以提高相关性。
  • 评估专业模型,特别是那些采用检索增强生成(RAG)的模型,因为特定领域模型可能为特定用例提供更优结果。
  • 探索提供重排序功能的模型,这些功能可以进一步提高搜索精度。
  • 测试更高级别的账户,因为高级层可能提供更快的处理速度和更低的速率限制。
  • 使用量化选项优化数据传输,以减小 API 响应大小并提高效率。

仔细评估这些因素将帮助您选择最适合您需求的语义搜索模型。

总结

现在我们已经一同探索了这些内容,让我们总结一下我们所发现的。

模型/服务维度上下文长度延迟索引时间定价(每百万 token)
Cohere embed-english-v3.01024512±170ms43s$0.10
Cohere embed-english-light-v3.0384512±160ms16s$0.10
OpenAI text-embedding-3-small15368192±460ms95s$0.02
OpenAI text-embedding-3-large30728192±750ms151s$0.13
Mistral10248192±200ms409s$0.10
VoyageAI voyage-210244000±350ms330s$0.10
VoyageAI voyage-large-2153616000±400ms409s$0.12
Jina Colbert v2128, 96, or 648192±400ms375s$0.18
OSS all-MiniLM-L6-v2384512±10ms880s免费
OSS bge-small-en-v1.51024512±20ms3379s免费
OSS bge-large-en-v1.51536512±60ms9132s免费

选择最适合语义搜索的模型取决于您的具体用例、预算和性能要求,以及您希望实现的目标。在大多数情况下,Cohere 或 OpenAI 等提供的基于云的解决方案可能是最佳选择。

随着您组织需求的增长,升级到本地或自托管解决方案可能值得投入成本和精力。了解自身需求对于做出明智决策至关重要。

如果您不确定哪种模型最适合您,或者正在寻找定制解决方案,请联系 Meilisearch 的搜索专家。

常见问题 (FAQs)

语义搜索与关键词搜索有何不同?

语义搜索侧重于理解含义,而关键词搜索则依赖精确的词语匹配。

一个好的语义搜索模型应具备哪些关键特性?

一个好的模型应该具备高准确性、低延迟、高效索引和成本效益。

基于 Transformer 的模型如何改进语义搜索?

Transformer 模型在上下文中处理文本,捕获词语间的上下文关系,以提高搜索相关性并减少停机时间。

向量数据库如何增强语义搜索?

向量数据库用于高效存储嵌入,从而实现快速且可扩展的搜索操作。

有哪些用于语义搜索的开源模型?

流行的开源语义搜索模型包括 all-MiniLM-L6-v2 和 Universal Sentence Encoder。

How to build a search engine in PHP: Step-by-step guide

如何在 PHP 中构建搜索引擎:分步指南

通过这份实用的分步教程,了解如何在 PHP 中轻松构建搜索引擎。

Ilia Markov
Ilia Markov2025年6月5日
Building a JavaScript Search Engine: Tutorial, Examples & More

构建 JavaScript 搜索引擎:教程、示例及更多

通过这份实用的分步教程,了解如何在 JavaScript 中轻松构建搜索引擎。

Ilia Markov
Ilia Markov2025年6月3日
How to Make a Search Engine in Python: Step-by-Step Tutorial

如何在 Python 中制作搜索引擎:分步教程

通过这份详细的分步教程,了解如何在 Python 中轻松制作搜索引擎。

Ilia Markov
Ilia Markov2025年5月29日