来聊聊向量查询

news2025/1/11 8:54:16

本文将从基本概念开始,讨论与向量查询相关的技术与使用。向量查询是一种复杂的数据检索技术,它侧重于查询与数据条目相关的上下文含义,而并非简单的文本匹配。

在软件项目中,开发人员往往会尽力搜寻各种数据库优化技术,尤其是那些能够提高大型数据库查询效率的技术。在传统的SQL数据库中,我们通常只能使用“B树索引”或简单的“索引”等关键词,来查找各种博客或文章信息。不过,这种基于关键字的方法可能会忽略掉那些使用了诸如:“SQL调整”或“索引策略”等不同、但属于相关短语的重要内容。

另一种情况是,应用可能知道上下文,但不知道特定技术的确切名称。因此,对于依赖精确的关键词匹配的传统数据库而言,应用是无法仅根据上下文来进行查询的。

对此,我们需要一种超越简单关键词匹配查询的技术,能够根据语义相似性,以提供查询结果。这便是向量查询(Vector Search)能够发挥作用的地方。与传统的关键字匹配技术不同,向量查询会将待查询的语义与数据库条目进行比较,从而返回更为相关、更加准确的结果。下面,我们将从基本概念开始,讨论与向量查询相关的技术与使用案例。

向量查询概述

向量查询是一种复杂的数据检索技术,它侧重于查询与数据条目相关的上下文含义,而并非简单的文本匹配。要实现这种技术,我们必须首先将查询和数据集的特定列转换为数字的表示,即向量嵌入(Vector Embeddings)。据此,我们可以计算查询向量与数据库中的向量嵌入之间的距离(即:余弦相似度或欧氏距离)。接下来,我们根据计算出的距离,找出最接近或最相似的条目。最终,我们能够返回与查询向量距离最小的前k个结果。下图展示了整个流程:

向量查询的典型场景

  • 似性查询:被用于在特征空间中查找与给定向量相似的其他向量,常被广泛地应用于图像、音频和文本的分析等领域。
  • 推荐系统:通过分析用户和项目的向量表示,来实现针对电影、产品或音乐等领域的个性化的推荐。
  • 自然语言处理:通过查询文本数据中的语义相似性,来支持语义查询和相关性分析。
  • 问答(Question-Answering,QA)系统:查询各种向量表示与输入问题最相似的相关段落。其最终答案可以根据问题和检索到的段落,通过大语言模型(LLM)来生成。

当数据集较小且查询简单时,暴力向量(Brute-force Vector)式查询在语义查询方面的效果非常好。不过,随着数据集的扩大、以及查询变得越来越复杂,其性能可能会下降,进而产生各种偏差。

实施向量查询的挑战

让我们来讨论一下与使用简单向量查询相关的一些问题,特别是当数据集规模持续增大时:

  • 性能:如前所述,暴力向量查询会计算查询向量与数据库中所有向量之间的距离。对于较小的数据集来说,这种方法效果很好,但是当向量的数量增加到上百万个条目时,查询的时间和查找数百万个条目之间距离的计算成本,就会增加。
  • 可扩展性:目前,数据正在呈指数级增长,因此在查询海量数据集时,暴力向量查询很难达到同样的速度和准确性。这就需要通过创新的方法来管理海量数据,同时保持同样的速度和准确性。
  • 与结构化数据相结合:在简单的应用中,我们要么使用SQL来查询结构化数据,要么使用向量查询来查找非结构化数据。而在处理不同的系统时,我们需要整合这两种技术。也就是说,当我们既使用向量查询,又应用SQL的Where子句进行过滤时,处理查询的时间会因数据种类和大小的增多而增加。

常见的向量索引技术

为了应对大规模向量数据的挑战,我们可以采用如下索引技术,来组织和促进高效的近似向量查询。

HNSW(Hierarchical Navigable Small World)

HNSW算法利用多层次的图形结构,来实现高效的向量查询和存储。在每一层上,向量不仅与同层的其他向量相连,还与下面各层的向量相连。这种结构既能够有效地探索到附近的向量,又可以保持查询空间的可管理性。通常,顶层包含了少量节点,随着层级的下降,节点数量呈指数增长。而在最底层处包含了数据库中的所有数据点。如下图所示,这种分层设计定义了HNSW算法的独特架构。

具体的查询过程会从一个选定的向量开始,并由此计算与当前层和之前层的连接向量的距离。这种方法属于贪婪型(Greedy),即:不断向距离当前位置最近的向量前进,直到在所有连接向量中找到最接近的向量为止。虽然HNSW索引通常在直接向量查询中表现出色,但它需要相当多的资源和大量时间来进行构建。此外,在大多数条件下,由于图形的连通性降低,其过滤查询的准确性和效率也会大幅下降。

反向向量文件(Inverted Vector File,IVF)索引

IVF索引会使用簇中心点作为其反转索引,从而有效地管理各种高维数据的查询。通常,它会根据几何邻近性,将向量划分为若干簇(Cluster),并将每个簇的中心点作为简化表示。在查询那些与查询向量最相似的项目时,该算法首先会识别与查询最接近的中心点。然后,它只在相关的向量列表中查询这些中心点,而不是整个数据集。与HSNW相比,IVF的构建时间更短,但查询过程中的准确率和速度则更低。

MyScale解决方案及其实际应用

作为一种SQL向量数据库,MyScale旨在处理复杂的查询,实现快速的数据检索,并有效地存储大量数据。不同于其他专业向量数据库,它能够将快速的SQL执行引擎(基于ClickHouse)与专有的多尺度树图(Multi-scale Tree Graph,MSTG)算法相结合。由于MSTG结合了基于树和图的算法优势,因此MyScale能够快速构建和查询,并在不同的过滤查询比例下,既能保持速度和准确性,又能保持资源和成本效率。

下面,让我们来看看MyScale可以在哪些实际应用中发挥巨大的作用:

  • 基于知识的QA应用:在开发问答(QA)系统时,作为一个理想的向量数据库,MyScale具有自查询功能和灵活的过滤功能,可以从文件中获取高度相关的结果。此外,MyScale还具有出色的可扩展性,可以同时管理多个用户。若您想了解更多信息,可以从其相关文档中获得帮助。此外,您还可以利用其带有高级算法的自查询,来提高查询结果的准确性和速度。
  • 大型AI聊天机器人:开发大型聊天机器人是一项极具挑战性的任务,尤其是当您必须同时管理众多用户,并需要对他们区别对待时。鉴于聊天机器人需要提供准确的答案,MyScale可以通过与SQL兼容的、基于角色的访问控制,来简化聊天机器人的构建,并通过数据分区和过滤查询,来实现对大规模租户的管理。
  • 图像查询:如果您正在创建一个可执行语义查询或类似图像查询的系统,MyScale可以在保持高性能和资源效率的同时,轻松满足不断增长的图像数据需求。此外,您也可以编写更为复杂的SQL和向量连接查询,来根据元数据或视觉内容去匹配图像。更多详细信息,请参阅与图像查询相关的项目文档。

除了上述实际应用之外,通过结合MyScale的SQL和向量功能,您还可以开发出高级的推荐系统、以及对象检测应用等。

小结

综上所述,向量查询可以通过解释嵌入中向量中的语义,超越传统的术语匹配。这种方法不仅对文本有效,也可以扩展到图像、音频、以及各种多模态的非结构化数据中。其中,最典型的莫过于ImageBind (https://ai.meta.com/blog/imagebind-six-modalities-binding-ai/)等模型。当然,这项技术也面临着计算、存储需求、以及高维向量语义模糊性等挑战。

而MyScale可以通过将SQL和向量查询创新式地融合到一个统一、高性能、高性价比的系统中,从而满足了从问答系统到AI聊天机器人、以及图像查询等广泛应用的多功能性和高效性。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1464768.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mapbox面图层标注

mapbox并没有一个属性类似于’text-field’的symbol图层的直接可以标注的办法,这里笔者提供两种其他的面图层标注的办法用来大家参考 效果图 方案一 把面图层当做点图层直接展示 在mapbox里面,面图层是可以直接渲染成线图层和点图层的,这里…

Aigtek高压放大器是什么东西做的

在许多电子应用中,需要将低电压信号放大到较高电压以满足特定的需求。为了实现这个目标,高压放大器被广泛采用。高压放大器是一种专用电子设备,使用特定的电路和器件来增益输入信号的电压。它通常由以下几个主要组成部分构成。 电源供应 高压…

WRF WPS : namelist 学习笔记

WPS & share 采用ARW方式进行模拟,除了ARW还有NMM,不过科研上常用ARW: wrf_core ‘ARW’最大的嵌套层数为3层,初学者一般是从一层开始逐步加多: max_dom 3 # max_dom 2设置模式开始和结束 的时间,从左到右依次是第一层第二层和第三…

轻松掌握opencv的8种图像变换

文章目录 opencv的8种图像变换1. 图像放大、缩小2. 图像平移3. 图像旋转4. 图像仿射变换5. 图像裁剪6. 图像的位运算(AND, OR, XOR)7. 图像的分离和融合8. 图像的颜色空间 opencv的8种图像变换 1. 图像放大、缩小 我们先看下原图 import cv2 import ma…

文献速递:GAN医学影像合成--基于生成对抗网络的肺部图像分类的多域医学图像翻译生成

文献速递:GAN医学影像合成–基于生成对抗网络的肺部图像分类的多域医学图像翻译生成 01 文献速递介绍 在2019年底,一种称为2019冠状病毒病(COVID-19)的新型冠状病毒肺炎出现,迅速成为全球性大流行。感染COVID-19可以…

本机防攻击简介

定义 在网络中,存在着大量针对CPU(Central Processing Unit)的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的中断甚至系统的中断;大量正常…

IOS和Android系统架构

IOS的系统架构 iOS的为Objective-C和Swift,Objective-C的优势是效率高但比较“唯一”。 响应顺序:Touch--Media--Service--Core架构 分为四个层次:核心操作系统层(core OS layer)、核心服务层(Core Serv…

STM32Cubemx TB6612直流电机驱动

一、TB6612FNG TB6612是一个支持双电机的驱动模块,支持PWM调速。PWMA、AIN1、AIN2 为一组控制引脚,PWMA 为 PWM 速度控制引脚,AIN1、AIN2 为方向控制引脚;PWMB、BIN1、BIN2 为一组控制引脚,PWMB 为 PWM 速度控制引脚&…

一种基于动态水位值的Flink调度优化算法(flink1.5以前),等同于实现flink的Credit-based反压原理

优化flink反压 说明1 flink反压介绍1.1 介绍1.2 大数据系统反压现状1.4 flink task与task之间的反压1.5 netty水位机制作用分析 2 反压优化算法3 重点! 但是 可但是 flink1.5以后的反压过程。4 flink反压问题的查找瓶颈办法 说明 首先说明,偶然看了个论…

短剧小程序系统,重塑视频观看体验的科技革命

随着科技的飞速发展,人们对于数字化内容的消费需求也在不断增长。在这个大背景下,短剧小程序作为一种新型的视频观看方式,正逐渐受到大众的青睐。本文将探讨短剧小程序的发展背景、特点以及市场前景,分析其在重塑视频观看体验方面…

哪个牌子的护眼台灯比较好用?纯干货护眼台灯品牌推荐

有些家长陪孩子写作业的时候发现他们总是在揉眼睛,学习时间久了还会用力眨眼睛。其实无论是白天还是晚上,孩子在家学习,看书,搭积木等,如果灯光不给力,一定要用台灯来给孩子补光,避免因为光线环…

Linux系列讲解 —— 【Vim编辑器】在Ubuntu18.04中安装新版Vim

平时用的电脑系统是Ubuntu18.04,使用apt安装VIM的默认版本是8.0。如果想要安装新版的Vim编辑器,只能下载Vim源码后进行编译安装。 目录 1. 下载Vim源码2. 编译3. 安装4. 遇到的问题4.1 打开vim后,文本开头有乱码现象。4.2 在Vim编辑器中&…

测试环境搭建整套大数据系统(三:搭建集群zookeeper,hdfs,mapreduce,yarn,hive)

一:搭建zk https://blog.csdn.net/weixin_43446246/article/details/123327143 二:搭建hadoop,yarn,mapreduce。 1. 安装hadoop。 sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt2. 修改java配置路径。 cd /opt/hadoop-3.2.4/etc…

【Spring】SpringBoot 热部署

目 录 一.添加热部署框架支持二.Settings 开启项目自动编译三.设置运行项目中的热部署( idea 2021.2版本)四.使用 debug 方式运行项目代码示例&#xff1a; 一.添加热部署框架支持 <dependency><groupId>org.springframework.boot</groupId><artifactId&…

适合中国人体质的低成本创业项目,抖音小店抓住小钱到大钱的之路

大家好&#xff0c;我是电商花花。 人啊&#xff0c;这一辈子想要赚钱&#xff0c;想要脱贫致富&#xff0c;小钱靠勤&#xff0c;中财靠运&#xff0c;大富靠命。 我还依稀记得母亲说的一句话&#xff0c;小钱不勤不聚&#xff0c;还谈何赚大钱&#xff0c;所有的大钱也都是…

Unity3d Mesh篇(二)— 创建Unity Logo平面

文章目录 前言一、Mesh组成二、使用步骤GetVertices方法GetNormal方法GetTriangles方法OnDrawGizmos方法 三、效果四、总结 前言 本篇将使用C#脚本实现在Unity中创建平面&#xff0c;并通过调整顶点、UV坐标和三角形来生成Unity Logo 的效果。 一、Mesh组成 顶点&#xff08;…

了解红帽认证,看这篇就够了!

红帽公司成立于1993年&#xff0c;是全球首家收入超10亿美元的开源公司&#xff0c;总部位于美国&#xff0c;分支机构遍布全球。 红帽公司作为全球领先的开源和Linux系统提供商&#xff0c;其产品已被业界广泛认可并使用&#xff0c;尤其是RHEL系统在业内拥有超高的Linux系统…

css3d制作正方体

使用css3d技术 &#xff0c;制作一个可以动态动画的正方体模型 效果图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><style>/* 设置高度宽度100%并且左右居中、上下居中 */html,body {width: 100%;height: 100%;display: flex…

C#串口 Modbus通讯工具类

一、安装Modbus包 二、创建modbushelper类 1、打开串口 public bool IfCOMOpend; //用于实例内的COM口的状态 public SerialPort OpenedCOM;//用于手动输入的COM转成SERIAL PORT /// <summary> /// 打开串口 /// </summary> /// <param name="COMname&quo…

2-22算法习题总结

贪心问题 凌乱的yyy / 线段覆盖 题目背景 快 noip 了&#xff0c;yyy 很紧张&#xff01; 题目描述 现在各大 oj 上有 n n n 个比赛&#xff0c;每个比赛的开始、结束的时间点是知道的。 yyy 认为&#xff0c;参加越多的比赛&#xff0c;noip 就能考的越好&#xff08;假…