当前位置: 首页 > news >正文

Oracle AI Vector Search Multi-Vector Similarity Search 即多向量相似度检索学习笔记

Oracle AI Vector Search Multi-Vector Similarity Search 即多向量相似度检索学习笔记

  • 0. 什么是多向量相似度检索
  • 1. 多向量相似度检索的示例 SQL
  • 2. 执行多向量相似度检索
  • 3. 分区行限制子句的完整语法

0. 什么是多向量相似度检索

多向量相似度检索涉及通过使用称为分区的分组标准来检索顶部 K 个向量匹配,这些标准基于您的数据特征。此方法根据它们的片段与查询向量的相似度来评分数据。在 SQL 中,这通过分区行限制子句实现。

这个解释描述的非常抽象,让我们通过接下来的示例和说明更好的理解一下。

1. 多向量相似度检索的示例 SQL

比如,要找到前两本最相关书籍中的前四个最相关段落,可以使用以下 SQL 语句

SELECT doc_id, embed_id
FROM doc_chunks
ORDER BY vector_distance(embed_vector, (SELECT embedding FROM doc_queries WHERE query = '不同的备份和恢复方法'), COSINE)
FETCH FIRST 2 PARTITIONS BY doc_id, 4 ROWS ONLY;

2. 执行多向量相似度检索

多向量相似度检索特别适用于多文档检索,其中文档被分成多个块,每个块都嵌入到向量中。
这种检索类型使用基于文档特征的分区作为分组标准来检索顶部 K 个向量匹配。

它简化了编写 SQL 查询以回答诸如以下问题的方法:

  • 如果存在,两本最匹配的书中的三个最匹配段落中的四个最匹配句子是什么?

例如,如果您的数据库中的每本书都组织成包含具有向量嵌入表示的句子的段落,那么可以使用单个 SQL 语句解决上述问题:

SELECT bookId, paragraphId, sentence
FROM books
ORDER BY vector_distance(sentence_embedding, :sentence_query_vector)
FETCH FIRST 2 PARTITIONS BY bookId, 3 PARTITIONS BY paragraphId, 4 ROWS ONLY;

或者,对于目标精度为 90% 的近似相似度检索,您可以使用:

SELECT bookId, paragraphId, sentence
FROM books
ORDER BY vector_distance(sentence_embedding, :sentence_query_vector)
FETCH APPROXIMATE FIRST 2 PARTITIONS BY bookId, 3 PARTITIONS BY paragraphId, 4 ROWS ONLY
WITH TARGET ACCURACY 90;

注意:
所有返回的行都按分区子句排序,不按其分组。
此方法有助于根据句子与查询向量之间的向量距离对记录进行排序,根据它们的 bookId 和 paragraphId 过滤记录。

多向量相似度搜索不仅限于文档:

这种搜索方法非常灵活,不限于文档。它可以用于:

  • 确定最接近的前 K 张不同人物的照片。
  • 发现至少有两个音频段与某声音片段最匹配的前 K 首歌曲。

附加信息:

  • 分区行限制子句扩展是 SQL 语言的广泛扩展,适用于向量检索之外。
  • 它不依赖于向量索引。

3. 分区行限制子句的完整语法

分区行限制子句的完整语法,向量扩展部分以粗体突出显示,如下所示:

 [FETCH [ EXACT | APPROX | APPROXIMATE ] { FIRST | NEXT }[ pbycount1 { PARTITION | PARTITIONS } BY pbyexpr1 , ][ pbycount2 { PARTITION | PARTITIONS } BY pbyexpr2 , ][... ,][ pbycountN { PARTITION | PARTITIONS } BY pbyexprN , ][{ row_count | percent PERCENT }] { ROW | ROWS } { ONLY | WITH TIES }][[ WITH | WITH TARGET | TARGET ] ACCURACY {accuracy [PERCENT] | PARAMETERS ( {NEIGHBOR PARTITION PROBES nprobes | EFSEARCH efs} ) } ]

完结!

相关文章:

Oracle AI Vector Search Multi-Vector Similarity Search 即多向量相似度检索学习笔记

Oracle AI Vector Search Multi-Vector Similarity Search 即多向量相似度检索学习笔记 0. 什么是多向量相似度检索1. 多向量相似度检索的示例 SQL2. 执行多向量相似度检索3. 分区行限制子句的完整语法 0. 什么是多向量相似度检索 多向量相似度检索涉及通过使用称为分区的分组…...

白板手推公式性质 AR模型 时间序列分析

白板手推公式性质 AR模型 时间序列分析 视频讲解:https://www.bilibili.com/video/BV1D1421S76v/?spm_id_from.dynamic.content.click&vd_source6e452cd7908a2d9b382932f345476fd1 B站对应视频讲解(白板手推公式性质 AR模型 时间序列分析)...

零基础学python之高级编程(6)---Python中进程的Queue 和进程锁,以及进程池的创建 (包含详细注释代码)

Python中进程的Queue 和进程锁,以及进程池的创建 文章目录 Python中进程的Queue 和进程锁,以及进程池的创建前言一、进程间同步通信(Queue)二、进程锁(Lock)三、创建进程池Poorpool 类方法: End! 前言 大家好,上一篇文章,我们初步接触了进程的概念及其应…...

184. 部门工资最高的员工

文章目录 题意思路代码 题意 题目链接 查出每个部门最高工资 思路 子查询group by 代码 select b.name as Department,a.name as Employee,salary from Employee as a left joinDepartment as b ona.departmentId b.id where(a.departmentId, salary) in(select departme…...

插值表达式、Vue指令、指令补充

vue上手步骤 <body><!-- vue2语法 --><!-- 1.准备容器&#xff1a;一会vue就会把数据展示到这里 --><div id"app"><!-- 4.使用{{ }}即可显示数据 &#xff0c;{{}}就是插值表达式--><p>姓名&#xff1a;{{uname}}</p><…...

qiankun实现基座、子应用样式隔离

目录 qiankun 实现主应用与子应用样式隔离使用CSS-in-JS来实现样式隔离react-jssstyled-components qiankun 实现主应用与子应用样式隔离 qiankun 之中默认的样式隔离是针对子应用与子应用之间的。至于主应用的样式会影响到子应用&#xff0c;若需要&#xff0c;则需要配置进行…...

C语言从入门到实战----数据在内存中的存储

1. 整数在内存中的存储 在讲解操作符的时候&#xff0c;我们就讲过了下⾯的内容&#xff1a; 整数的2进制表⽰⽅法有三种&#xff0c;即 原码、反码和补码 有符号的整数&#xff0c;三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤…...

接口关联和requests库

一、接口关联 postman的接口 postman的接口关联配置&#xff1a;js代码&#xff0c;重点在于思路。 // 定义jsonData这个变量 接受登录接口的返回结果 var jsonData JSON.parse(responseBody); // 从返回结果里提取token/id值&#xff0c;并赋值给token/id变量值作为环境变…...

Python编程基础 001 开篇:为什么要学习编程

Python编程基础 001 开篇:为什么要学习编程 一、什么是程序&#xff0c;什么是编程二、学习编程对青少年的价值&#xff08;一&#xff09;未来社会的需要&#xff08;二&#xff09;学习对现青少年现的现阶段的直接影响 三、学习编程从什么时候开始&#xff08;一&#xff09;…...

AQS源码分析

前言 AbstractQueuedSynchronizer是抽象同步队列&#xff0c;其是实现同步机器的基础组件&#xff0c;并发包中的锁的底层就是使用AQS实现的。AQS中 维护了一个volatile int state&#xff08;代表共享资源&#xff09;和一个FIFO线程等待队列&#xff08;多线程争用资源被阻塞…...

应对Locked勒索病毒威胁:你的数据安全准备好了吗?

导言&#xff1a; .Locked勒索病毒&#xff0c;作为一种新型的恶意软件&#xff0c;已经在全球范围内引起了广泛的关注。这种病毒通过加密受害者的文件&#xff0c;并要求支付赎金以获取解密密钥&#xff0c;从而实现对受害者的勒索。本文旨在深入解析.Locked勒索病毒的特点、…...

周末分享一篇关于html和http的文章吧

前面咱们说了https://blog.csdn.net/luohaitao/article/details/136974344&#xff08;说道说道JSP和HTTP吧-CSDN博客&#xff09;&#xff0c;把http的方法和jsp中httpservle对象的方法对上号了&#xff0c;其实从开发的角度看&#xff0c;jsp就是html中混入了java的服务端代码…...

Frechet分布

Frechet分布是一种连续概率分布&#xff0c;它是极值统计中的一个重要模型&#xff0c;尤其在分析极端事件&#xff08;如洪水、地震、金融市场中的极端波动&#xff09;的最大值极限分布时扮演关键角色。Frechet分布属于极值分布的三种基本类型&#xff08;I型、II型、III型&a…...

vue3全局引入element-plus使用Message教程

文章目录 安装引入 Element Plus和组件样式示例注意安装与引入&#xff1a;按需引入&#xff1a;API 使用&#xff1a;样式问题&#xff1a;组件上下文&#xff1a;版本兼容性&#xff1a;错误处理&#xff1a; 这是 Element UI 的 Vue 3 版本。ElMessage 是 Element Plus 中的…...

时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测

时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现BiTCN…...

基于 Linux 的更新版 MaxPatrol VM 可扫描 Windows

&#x1f47e; MaxPatrol VM 2.1 是俄罗斯唯一一款可以安装在 Linux 上并以审计和五重测试模式扫描 Windows 主机&#xff08;甚至是旧版本&#xff09;的漏洞管理产品。 让我们告诉你更新后的 MaxPatrol VM 还有哪些有用的功能&#xff1a; 1. 由于采用了新的数据存储模式&a…...

【软件开发】给Ubuntu 18.04虚拟机安装最新的Python 3.12.2

一、前言 笔者在Windows 11主机上安装有Ubuntu 18.04虚拟机&#xff08;使用虚拟化平台Oracle VM VirtualBox&#xff09;&#xff0c;在Python3.6的使用过程中遇到了问题&#xff0c;决定安装Python 3.12.2&#xff0c;在此记录安装过程。 二、安装过程&#xff08;在Ubuntu…...

鸿蒙NXET实战:高德地图定位SDK【获取Key+获取定位数据】(二)

如何申请key 1、创建新应用 进入[控制台]&#xff0c;创建一个新应用。如果您之前已经创建过应用&#xff0c;可直接跳过这个步骤。 2、添加新Key 在创建的应用上点击"添加新Key"按钮&#xff0c;在弹出的对话框中&#xff0c;依次&#xff1a;输入应用名名称&…...

Dubbo管理控制台

1.将资料中的dubbo-admin-2.6.0.war文件复制到tomcat的webapps目录下 2.启动tomcat,修改WEB-INF下的dubbo.properties文件 #如果Zookeeper是安装在虚拟机上的那么注册中心的地址需要修改为虚拟机的ip地址 dubbo.registry.addresszookeeper://192.168.100.110:2181 dubbo.admin…...

CSS问题精粹1

1.关于消除<li>列表前的符号 我相信很多人在初学CSS时会遇到该问题&#xff0c;无论是创作导航&#xff0c;还是列表&#xff0c;前面都会有个黑点点或其它符号。 解决该问题其实很简单 采用list-style-type:none或list-style:none直接解决 如果你想更换前面的黑点点&a…...

SU-03T模块烧录固件保姆级教程:从‘智能公元’配置到串口下载(避坑‘路径中文’和‘重新上电’)

SU-03T固件烧录实战指南&#xff1a;从智能公元配置到串口下载全流程解析 第一次拿到SU-03T语音模块时&#xff0c;那种既兴奋又忐忑的心情我至今记忆犹新。作为一款高性能离线语音识别模块&#xff0c;SU-03T确实能带来无限可能&#xff0c;但固件烧录这个看似简单的步骤却让不…...

RouterOS L2TP服务器搭建与安全优化指南

1. L2TP协议基础与RouterOS适配性 L2TP协议全称为Layer 2 Tunneling Protocol&#xff0c;是一种工作在OSI模型第二层的隧道协议。我第一次接触这个协议是在2015年为企业部署远程办公系统时&#xff0c;当时发现它相比PPTP有着明显的安全优势。简单来说&#xff0c;L2TP就像是在…...

AI开发不再卡顿:RTX4090D 24G镜像解决环境冲突全攻略

AI开发不再卡顿&#xff1a;RTX4090D 24G镜像解决环境冲突全攻略 1. 为什么选择RTX4090D 24G深度学习镜像&#xff1f; 深度学习开发者最头疼的问题莫过于环境配置。不同框架版本、CUDA版本、依赖库之间的冲突常常让人望而却步。传统环境搭建方式需要&#xff1a; 手动安装C…...

避坑指南:Windows下OpenCV摄像头索引混乱问题的3种解决之道

避坑指南&#xff1a;Windows下OpenCV摄像头索引混乱问题的3种解决之道 在工业视觉和智能监控领域&#xff0c;多摄像头协同工作是常见需求。但当你在Windows平台上使用OpenCV的VideoCapture接口时&#xff0c;可能会遇到这样的困扰&#xff1a;每次重启系统后&#xff0c;原本…...

别再死记ResNet结构了!用PyTorch手搓一个ResNet-50,从零理解残差连接

从零构建ResNet-50&#xff1a;用PyTorch拆解残差网络的秘密 深度学习领域最令人着迷的突破之一&#xff0c;莫过于残差网络&#xff08;ResNet&#xff09;的诞生。2015年&#xff0c;何恺明团队提出的这一架构不仅横扫ImageNet竞赛&#xff0c;更彻底改变了我们对深度神经网络…...

【STM32实战】步进电机S型曲线算法优化与误差补偿策略

1. 为什么需要S型曲线算法 我第一次用步进电机做项目时&#xff0c;直接给电机发固定频率的脉冲让它转起来。结果电机启动瞬间发出"咔咔"的异响&#xff0c;运行起来也一顿一顿的。后来才知道&#xff0c;步进电机最怕的就是突然加速或急停&#xff0c;这会导致丢步、…...

提升开放平台开发效率,快马AI工具链自动化集成与测试

在企业级开放平台的开发过程中&#xff0c;效率往往是决定项目成败的关键因素之一。传统的开发流程中&#xff0c;开发者需要花费大量时间在重复性工作上&#xff0c;比如编写API客户端代码、配置测试环境、维护文档等。这些工作不仅耗时&#xff0c;还容易出错。今天我想分享一…...

【Python 3.15 JIT终极指南】:20年CPython核心开发者亲授,从零部署到性能翻倍的5个关键跃迁

第一章&#xff1a;Python 3.15 JIT的诞生背景与核心设计哲学 Python 长期以来以开发效率和生态丰富性见长&#xff0c;但其解释执行模型在 CPU 密集型场景下始终面临性能瓶颈。CPython 的字节码解释器虽稳定可靠&#xff0c;却缺乏运行时优化能力&#xff1b;而第三方方案&…...

SVPWM/AZSPWM的simulink仿真 AZSPWM(Advanced Zero Se...

SVPWM/AZSPWM的simulink仿真 AZSPWM&#xff08;Advanced Zero Sequence Pulse Width Modulation&#xff0c;先进零序脉宽调制&#xff09;是一种改进的脉宽调制技术&#xff0c;主要应用于三相逆变器中&#xff0c;通过引入零序分量来优化输出电压的波形和性能。 AZSPWM的目标…...

腾讯游戏卡顿终极解决方案:ACE-Guard资源限制器完整指南

腾讯游戏卡顿终极解决方案&#xff1a;ACE-Guard资源限制器完整指南 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源&#xff0c;支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 你是否在玩《地下城与勇士》、《英雄…...