数据库管理-第149期 Oracle Vector DB AI-01(20240210)

news2024/11/23 7:10:01

数据库管理149期 2024-02-10

  • 数据库管理-第149期 Oracle Vector DB & AI-01(20240210)
    • 1 机器学习
    • 2 向量
    • 3 向量嵌入
    • 4 向量检索
    • 5 向量数据库
    • 5 专用向量数据库的问题
    • 总结

数据库管理-第149期 Oracle Vector DB & AI-01(20240210)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
网思科技 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

在龙年到来之际,祝大家龙行龘龘,前程朤朤,生活鱻鱻。新的一年开始新的系列,来探索一下Oracle Vector DB(向量数据库)以及AI Vector Search(AI向量搜索)。本系列内容在Oracle DB 23c正式发布前仍可能出现变化,最终以Oracle DB 23c正式发布内容为准。

1 机器学习

首先,机器学习根据不同事物的特征来区分不同的事务。
例如:区分不同种类的狗,就可以通过体型大小、毛发长度、鼻子长短等特征来区分。如下面这张照片按照体型排序,可以看到体型越大的狗越靠近坐标轴右边,这样就能得到一个体型特征的一维坐标和对应的数值,从 0 到 1 的数字中得到每只狗在坐标系中的位置。
然而单靠一个体型大小的特征并不够,像图中哈士奇、金毛和拉布拉多的体型就非常接近,我们无法区分。
image.png
继续观察其它的特征,例如毛发的长短。这样每只狗对应一个二维坐标点,我们就能轻易的将哈士奇、金毛和拉布拉多区分开来。
image.png
只要维度够多,我们就能够将所有的事物区分开来,世间万物都可以用一个多维坐标系来表示,它们都在一个高维的特征空间中对应着一个坐标点。

2 向量

Vector,向量(也称为欧几里得向量、几何向量),指具有大小和方向的量。可以使用带箭头的线段表示,箭头指向即为向量的方向,线段的长度表示向量的大小。两个向量的距离或者相似性可以通过汉明距离、欧式距离或者余弦距离得到。

3 向量嵌入

Vector Embedding,一种自动化提取事物特征值的方法,用来生成高纬度的向量数据;图像、文本和音视频这种非结构化数据都可以通过某种变换或者嵌入学习转化为向量数据;使用深度学习嵌入模型来生成向量数据。

4 向量检索

图片、文本、视频和语音等非结构化数据,通过人工智能技术提取出特征向量,然后通过对这些特征向量的计算和检索来实现对非结构化数据的分析和检索。向量检索通常是近似查找,要权衡搜索精度和速度。
对比第一个节中的例子,不同种类的狗就会有有一系列诸如体型大小、毛发长度、鼻子长短等特组成的向量,首先我们会建立一个向量数据库用于存放各种狗的基础向量信息,由于狗存在变异的情况,那么一种狗可能存在多条向量条目。而当我们需要通过图像去判断狗的种类时,就需要通过与基础向量生产方式一样的算法来将图像内容嵌入成向量信息,并与向量数据库中的向量信息进行匹配,得到最接近的向量,对比对应的狗信息得到结果。

5 向量数据库

向量数据库是一种专门用于存储、索引和查询向量数据的数据库系统。
向量数据库能够将向量存储为高维点并进行检索。可以高效、快速地查找N维空间中的最近邻。
这些功能通常由 近似最近邻(ANN)索引提供支持,构建索引的算法有:分层可导航小世界(HNSW)和倒排文件索引(IVF)算法等。
向量数据库提供了其他功能,例如数据管理、容错、身份验证、访问控制以及查询引擎等。

与传统关系型数据库相比:

  • 数据类型:向量数据库专门用于存储和管理向量数据,而传统数据库则可以存储各种标量类型的数据,例如文本、数字、日期等。
  • 数据规模:通常向量数据库数据量比较大,一般要考虑可线性扩展的系统。
  • 查询方式:传统的数据库查询通常是一种精确查找,即查询得到的结果要么符合条件要么不符合条件;而向量数据库的向量查询通常是近似查找,即查询得到的结果是与输入条件最相似的,而近似比较对计算能力要求非常高。向量查询通常是计算密集型的。

image.png
下面是一些比较常见向量数据库及其对比(这里是从群聊聊天记录抽取,冯若航发的):
ca6a2798730489caf53f25cb716ba50.jpg

5 专用向量数据库的问题

其实在去年SACC上海站,我也大概讲过Oracle Vector DB的相关内容,业余国内外大型互联网公司深入探讨过向量数据库。专用的向量数据库确实可以针对AI向量检索场景提供非常好的功能与性能;但是当场景中需要对向量进行调整(即update)的时候,专用向量数据库就会出现无法更新的情况,只能标记并将修改内容新增至向量数据库中。这就造成了,需要调整向量的场景需要预留一定空间用于“更新”操作,另一方面向量数据库中会存在无效数据,不仅增大了空间占用也增加了性能损耗。
那么Oracle Vector DB是如何解决这些问题的呢,后面会深入讲解。

总结

本期简单讲解了机器学习、向量、向量数据库的基本概念,下一期将针对LLM进行简单介绍。
老规矩,知道写了些啥。

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

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

相关文章

PHP特性知识点总结

如果想观感更好看到图片,可以去我的gitbook或者github去看 github:https://github.com/kakaandhanhan/cybersecurity_knowledge_book-gitbook.22kaka.fun gitbook:http://22kaka.fun description: 专门出的关于php的特性比较,后面好像也有java的特性。 🏀 PHP特性知识点…

Centos7离线安装MySQL5.7

卸载mariadb rpm -e --nodeps mariadb-libs可以使用rpm -qa|grep mariadb命令检测是否卸载完成。 关闭selinux 将/etc/selinux/config文件中的SELINUX设置为disabled下载MySql的相关rpm包 打开https://dev.mysql.com/downloads/mysql/ 选择Red Hat Enterprise Linux / Oracle L…

MySQL-索引(INDEX)

文章目录 1. 索引概述及优劣势2. 索引结构和不同引擎对索引的支持情况2.1 Btree2.2 Hash索引 3. 索引分类4. 索引语法5. 索引在什么情况下会失效?5.1 最左前缀法则5.2 范围查询5.3 索引列运算5.4 头部模糊查询5.5 OR连接条件5.6 字符串不加引号5.7 数据分布影响 6. …

《统计学简易速速上手小册》第8章:贝叶斯统计(2024 最新版)

文章目录 8.1 贝叶斯理论基础8.1.1 基础知识8.1.2 主要案例:疾病诊断8.1.3 拓展案例 1:垃圾邮件过滤8.1.4 拓展案例 2:财经新闻对股价的影响 8.2 贝叶斯方法的应用8.2.1 基础知识8.2.2 主要案例:个性化推荐系统8.2.3 拓展案例 1&a…

docker安装、运行

1、安装 之前有docker的话,需要先卸载旧版本: sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 安装之前需要安装yum工具: sud…

数据结构:并查集讲解

并查集 1.并查集原理2.并查集实现3.并查集应用4.并查集的路径压缩 1.并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中…

详细分析Redis中数值乱码的根本原因以及解决方式

目录 前言1. 问题所示2. 原理分析3. 拓展 前言 对于这方面的相关知识推荐阅读: Redis框架从入门到学精(全)Java关于RedisTemplate的使用分析 附代码java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全) …

《Git 简易速速上手小册》第5章:高级 Git 技巧(2024 最新版)

文章目录 5.1 交互式暂存5.1.1 基础知识讲解5.1.2 重点案例:为 Python 项目分阶段提交5.1.3 拓展案例 1:细粒度控制更改5.1.4 拓展案例 2:处理遗漏的更改 5.2 使用 Rebase 优化提交历史5.2.1 基础知识讲解5.2.2 重点案例:整理 Pyt…

npm install 安装依赖如何加速

在使用npm安装依赖时,有几种方法可以加速这一过程,尤其是在面临网络限制或npm官方源速度慢的情况下。以下是一些常用的加速技巧: 1. 使用国内镜像源 国内有几个镜像源可以提供更快的下载速度,例如淘宝npm镜像。你可以通过以下命…

操作系统基础:IO核心子系统【下】

🌈个人主页:godspeed_lucip 🔥 系列专栏:OS从基础到进阶 🏆🏆本文完整PDF源文件请翻阅至文章底部下载。🏆🏆 ⚕️1 I/O核心子系统——概述🔱1.1 核心子系统要完成的功能…

【教学类-48-03】202402011“闰年”(每4年一次 2月有29日)世纪年必须整除400才是闰年)

2000-2099年之间的闰年有25次, 背景需求: 已经制作了对称年月的数字提取,和年月日相等的年份提取 【教学类-48-01】20240205对称的“年”和“月日”(如2030 0302)-CSDN博客文章浏览阅读84次。【教学类-48-01】202402…

SpringCloud-项目引入Nacos

一、安装Nacos服务 首先,我们需要从 Nacos 的官方网站下载发布版本。下载地址:Releases alibaba/nacos GitHub 选择合适的版本并下载,解压缩得到 Nacos 的安装包。 在解压后的 Nacos 目录中,找到 bin 文件夹。 用写字板编辑…

【Effective Objective - C 2.0】——读书笔记(二)

文章目录 前言六、理解“属性”这一概念七、在对象内部尽量直接访问实例变量八、理解“对象等同性”这一概念九、以“类族模式”隐藏实现细节十、在既有类中使用关联对象存放自定义数据十一、理解objc_msgSend的作用十二、理解消息转发机制动态方法解析备援接受者完整的消息转发…

Nginx实战:3-日志按天分割

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、方式1:定时任务执行分割脚本 1.分割日志脚本 2.添加定时任务 二、方式2:logrotate配置分割 1.logrotate简单介绍 2.新增切割ngi…

蓝桥杯嵌入式第9届真题(完成) STM32G431

蓝桥杯嵌入式第9届真题(完成) STM32G431 题目 分析和代码 main.h /* USER CODE BEGIN Header */ /********************************************************************************* file : main.h* brief : Header for main.c file.* …

(2)长距离

文章目录 2.1 Andruav Android Cellular 2.2 Blicube RLINK P900 2.3 ClearSky Airlink 4G LTE遥测技术 2.4 CRSF/ELRS Telemetry 2.5 CUAV P8 Radio 2.6 CUAV P9 Radio 2.7 DragonLink 2.8 Holybro 900Mhz XBP9X无线电遥测设备 2.9 Holybro Microhard P900无线电遥测…

嵌入式Qt Qt Creator安装与工程介绍

一.Qt概述 什么是Qt:Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。 二.Qt Creator下载安装 下载地址:Index of /a…

HarmonyOS ArkTS修改App的默认加载的界面(二十)

前言&#xff1a;在Android开发中想要修改默认启动页&#xff0c;只需要在AndroidManifest.xml中设置即可 只需要在启动的activity种添加如下属性即可 <intent-filter><action android:name"android.intent.action.MAIN" /><category android:name&qu…

Windows - URL Scheme - 在Windows上无管理员权限为你的程序添加URL Scheme

Windows - URL Scheme - 在Windows上无管理员权限为你的程序添加URL Scheme What 想不想在浏览器打开/控制你的电脑应用&#xff1f; 比如我在浏览器地址栏输入wegame://后回车会提示是否打开URL:wegame Portocol。 若出现了始终允许选项&#xff0c;你甚至可以写一个Web界面…

洛谷: P1308 [NOIP2011 普及组] 统计单词数

前言: 这道题没理解清题目表达意思&#xff0c;我开始想的是用map来记录个数&#xff0c;然后一个变量记录一开始出现的单词位置&#xff0c;不挺简单的吗&#xff0c;然后....就AC了2个..从错误提示能看到个数没啥问题&#xff0c;但是第一个单词位置不对&#xff0c;看了新样…