


点击上方蓝字关注我们



一、什么是词向量
在学习机器学习和自然语言处理(NLP)的技术时,我们不得不提到一项被广泛使用的技术:词向量,或者说嵌入技术。词向量基本上是把我们常用的文字转换成计算机能够理解和处理的数值型向量。这种转换不仅涵盖了单词的基本意义,还包括了更深层次的语义关系。
举个例子,词向量技术能让单词“国王”和“皇后”在数值空间中非常接近,因为它们的意义相似,都与王室有关。同理,“苹果”和“橙子”也会被放在一起,因为它们都是水果。这种技术让计算机能够理解和处理文本数据时,不仅仅停留在表面文字,更能把握其中的深层意义。


二、词向量优势
那么,使用词向量有什么优势呢?特别是在检索增强生成(RAG)这类应用中,词向量的优势主要体现在以下两个方面:
首先,词向量的检索能力超过传统文字。当我们在数据库中搜索信息时,传统方法往往依赖于关键词匹配,这种方法的准确性很大程度上取决于关键词的选择。而词向量由于包含了文本的语义信息,可以通过计算其与数据库中数据的相似度,如点积、余弦距离或欧几里得距离等,从而实现更精确的语义层面的匹配。
其次,词向量在处理多种媒介的综合信息时表现更佳。在现代数据库中,数据可能是文字、声音、图像或视频等格式。传统的查询方法难以跨媒介进行,而词向量能够将这些不同形式的数据统一转化为向量形式,实现跨模态查询。
现在,如果我们想要构建一个RAG系统或类似的应用,我们通常会选择使用嵌入模型来生成这些词向量。这可以通过多种途径实现,包括使用各大公司提供的Embedding API,或者在本地部署模型来处理数据。
那么,向量数据库是什么呢?向量数据库是一种专门设计来高效管理大量向量数据的数据库系统。它与传统的基于关系模型的数据库不同,主要用于存储和检索向量数据。这种数据库特别适用于那些需要快速检索大量嵌入向量的场景。


三、工作原理
它将数据存储为向量,每个向量代表一个数据项。这些数据项可以是数字、文本、图像等多种类型。向量数据库利用高效的索引和查询算法来加速数据的存储和检索过程,通过计算与目标向量之间的相似度(如余弦距离或点积),快速找到最相关的数据。


四、主流的向量数据库
- Chroma:这是一个轻量级的向量数据库,它提供了丰富的功能和简单的API,非常适合初学者使用。虽然它的功能相对简单,且不支持GPU加速,但它的易用性和轻量级设计使它成为一个不错的选择。
- Weaviate:这是一个开源的向量数据库,支持多种搜索算法,包括相似度搜索和最大边际相关性搜索。它还可以结合基于词法和向量的搜索方法,从而提高搜索结果的相关性和准确性。
- Qdrant:这个数据库是用Rust语言开发的,它在检索效率和处理请求的速度(Requests Per Second, RPS)方面表现出色。Qdrant支持多种部署模式,包括本地运行、部署在本地服务器以及在Qdrant云上部署。这使得它能够在不同的环境中灵活使用。





