向量搜索概念
向量搜索是 Cassandra 5.0 中新增的一项功能。它是一种强大的技术,用于在大型数据集中查找相关内容,特别适用于 AI 应用程序。向量搜索还利用了 存储附加索引 (SAI),利用了后者的全新模块化功能。向量搜索是验证 SAI 可扩展性的第一个实例。
存储在数据库中的数据很有用,但数据的上下文对于应用程序至关重要。应用程序中的 机器学习 允许用户获得产品推荐、匹配类似图像以及其他许多功能。机器学习模型是一个程序,可以从以前未见过的 dataset 中找到模式或做出决策。为了在应用程序中为机器学习模型提供动力,向量搜索对存储的数据库数据进行相似性比较,以发现数据中可能未明确定义的连接。
在机器学习模型中进行相似性比较的关键之一是能够存储 嵌入 向量,即表示特定对象或实体的相似性的浮点数数组。向量搜索将该功能带到了高可用性 Apache Cassandra 数据库。
向量搜索的基础在于嵌入,即文本或图像作为高维浮点数向量的紧凑表示。对于文本处理,嵌入是通过将文本馈送到机器学习模型生成的。这些模型通常使用神经网络将输入转换为固定长度的向量。当单词表示为高维向量时,目标是排列向量,以便相似的单词在向量空间中更靠近,而不同的单词则更远。以这种方式创建向量被称为保留语义或结构相似性。嵌入捕获了文本的语义含义,这反过来又允许查询依赖于对文本的更细致的理解,而不是传统的基于术语的方法。
大型语言模型 (LLM) 为数据生成上下文嵌入,并优化查询的嵌入。由 LLM 生成的经过训练的嵌入可用于自然语言处理 (NLP) 任务,例如文本分类、情感分析和机器翻译。您可以嵌入几乎任何类型的数据,并通过向量搜索检索良好的结果。随着模型不断改进,结果的质量也将不断提高。
存储附加索引 (SAI)
SAI 是一项必备功能,为数据库提供无与伦比的 I/O 吞吐量,以使用向量搜索以及其他搜索索引。SAI 是一种高度可扩展且全球分布的索引,它为任何向量数据类型列添加列级索引。
SAI 提供了最广泛的索引功能 - 索引查询和内容(大型输入包括文档、单词和图像等),以捕获语义。
有关 SAI 的更多信息,请参阅 存储附加索引 文档。
您无法在不删除和重建索引的情况下更改索引设置。 |
最好先创建索引,然后再加载数据。这种方法避免了在数据加载时同时构建索引。
新的向量 CQL 数据类型
CQL 中添加了一种新的 向量数据类型 来支持向量搜索。它旨在保存和检索嵌入向量。