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

2024-02-12 14:20

本文主要是介绍数据库管理-第149期 Oracle Vector DB AI-01(20240210),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据库管理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进行简单介绍。
老规矩,知道写了些啥。

这篇关于数据库管理-第149期 Oracle Vector DB AI-01(20240210)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/702760

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处