前 言
Oracle AI 向量搜索专为人工智能 (AI) 工作负载而设计,允许您根据语义(而不是关键字)查询数据。
eg:
select AI which customer is the largest by revenue;
Oracle AI 向量搜索(AI Vector Search)是在 Oracle Database 23ai 中提供的一种新功能,它除了支持数据库传统上的属性值或关键字等数据值搜索之外,允许用户基于数据的语义或含义进行搜索。
向量或向量嵌入是人工智能应用中使用的一种流行的数据结构。向量是由深度学习模型根据不同数据类型(例如图像、文档、视频等)生成的数字列表,用于对数据的语义进行编码。

AI Vector Search
Oracle AI 向量搜索包括一组强大的功能,以支持业务应用场景的语义搜索。这些功能包括:
1.新的 SQL 嵌入函数可从非结构化数据生成向量嵌入(可以调用外部向量嵌入服务,也可以将向量嵌入模型加载到数据库中)
2.新的一级 VECTOR 数据类型用于存储向量
3.新的高性能向量索引用于快速近似搜索
4.新的 SQL 运算符和语法,可轻松表达业务查询中的相似性搜索
5.支持完整的生成式 AI 管道,包括预处理和向量化数据,以及使用业务数据增强 LLM
Oracle AI 向量搜索的技术架构:

VECTOR 数据类型完全集成在 SQL 和 PL/SQL 中,并支持多种客户端和编程语言,并在 python-oracledb、node-oracledb、JDBC 和 ODP.NET 驱动程序中具有原生绑定功能。这种全面的支持提供了跨多个开发环境的无缝向量搜索功能。Oracle AI 向量搜索还完全集成到流行的第三方生成式 AI 框架(例如 LangChain)中。
Oracle AI 向量搜索包含原生 API,可对 LLM API 进行 REST 调用,以生成内容(如文本)或摘要以及其它生成式AI管道中使用的操作。这些新功能可以无缝支持检索增强生成(RAG),这是一种突破性的生成式 AI 技术,通过私有业务数据增强大型语言模型(LLM),来对业务数据上的自然语言问题提供准确的响应。
Oracle AI 向量搜索的优势
Oracle 数据库是企业运营和企业数据的主要存储库。企业应用程序通常需要同时搜索业务数据和非结构化数据。例如,零售网站可以基于自然语言产品描述和目标产品图像以及其他过滤条件(例如:价格、商店位置、制造商和当前可用性)进行搜索。这种搜索需要同时搜索非结构化目录数据(产品描述和图像)、结构化目录数据(价格、商店位置和制造商)以及实时交易数据(例如:当前库存)。
Oracle 数据库的融合能力和 Oracle AI 向量搜索的结合提供了多种独特的优势。
业务数据与 AI 向量数据的无缝结合
这是 Oracle AI 向量搜索的一个关键优势,因为它允许用户在现有的 Oracle 数据库中运行 AI 驱动的向量相似性搜索,而不是将业务数据移动到单独的向量数据库。避免数据移动可以降低复杂性,提高安全性,并支持对当前数据的搜索。
Oracle AI 向量搜索通过使用简单、直观的 SQL 和融合数据库的全部功能(JSON、图形、文本、关系、空间等)将复杂的业务数据搜索与 AI 向量相似性搜索相结合,实现比大多数专用向量数据库更强大的搜索。所有这些都可以在一个查询中实现。
向量搜索与业务数据结合举例:

利用业务数据增强检索增强生成
向量数据库通过为 LLM 提供特定场景的私有上下文,从而改善与 LLM 的交互,以获得更准确的答案。这是一个当前流行的工作流程,称为检索增强生成(RAG)。
Oracle AI 向量搜索充分利用全部业务数据,进一步细化 LLM 交互,利用安全过滤器、业务指标和业务规则等业务标准,为企业提供超复杂的RAG。
支持业务数据的完整生成式 AI 管道
Oracle AI 向量搜索支持原生数据库API来执行生成式 AI 管道的所有端到端步骤,使开发人员更容易直接在 Oracle 数据库中使用业务数据构建新一代AI应用程序。
从文本到向量的管道示例:

AI 向量搜索与完整机器学习套件的独特组合
Oracle 数据库提供全套数据库内机器学习算法以及 AI 向量的相似性搜索。这种组合使 Oracle 数据库能够处理非常广泛的 AI 使用案例,涉及机器学习操作(决策、预判、分类、预测等)以及 AI 向量搜索的强大功能。例如,可以轻松地将推理和分类与 AI 向量搜索结合在同一个 SQL 查询中。
经过验证的企业级可扩展性、容错性和安全性
Oracle 数据库是领先的业务数据存储库,业务数据和语义搜索的结合是企业实施人工智能解决方案所必需的。AI 向量搜索内置于 Oracle 数据库中并利用:
-
分区、RAC、分片和 Exadata 可实现经过验证的工业级可扩展性。
-
极致的高可用性和灾难恢复技术,如Data Guard、Golden Gate、Flashback、RMAN、ZDLRA等。
-
Oracle Advanced Security 提供前沿的安全性,包括透明数据加密、Key Vault、Audit Vault、虚拟专用数据库等功能。
快速体验向量索引
CREATE TABLE test.docs (doc_id INT,doc_text CLOB,doc_vector VECTOR);
INSERT INTO test.docs VALUES (1,'Here is a simple example:Insert Vectors in a Database Table Using the INSERT Statement.', '[0,2,2,0,0]');
INSERT INTO test.docs VALUES (1,'Here is a simple example:Insert Vectors in a Database Table Using the INSERT Statement 2.', '[1,1,1,0,0]');
COMMIT;
- 要允许创建向量索引,必须启用 SGA 中存储的名为 "vector pool "的新内存区域。
- 用于存储分层导航小世界 Hierarchical Navigable Small World(HNSW)向量索引和所有相关元数据。它还用于加快反转平面文件(IVF)索引的创建速度,以及对带有 IVF 索引的基础表进行 DML 操作的速度。
ALTER SYSTEM SET vector_memory_size=500M SCOPE=spfile;
shu immediate
startup
CREATE VECTOR INDEX test.vector_index_docvector ON test.docs (DOC_VECTOR) ORGANIZATION INMEMORY NEIGHBOR GRAPH distance COSINE
with target accuracy 95;

创建向量索引指南
- 指定一个 VECTOR 数据类型表列
- 向量索引类型
向量索引类型
分层可导航小世界 (HNSW)向量索引
关键字:INMEMORY NEIGHBOR GRAPH
注意:
- 非 RAC 环境才能使用;
- 创建完索引后不能进行 DML 操作。
- 重启数据库后该索引失效,因为存于内存中。
不过有如下三种办法重建:
①alter system set vector_index_neighbor_graph_reload='restart' scope=both;
②SQL> conn test/Oracle23Ai@freepdb1
SQL> exec DBMS_VECTOR.REBUILD_INDEX('VECTOR_INDEX_DOCVECTOR');
③手动删除该索引重建。
反转文件平面 (IVF) 向量索引
关键字:NEIGHBOR PARTITIONS
无法创建向量索引的对象
- External tables 外部表
- IOTs 索引组织表
- Clusters/Cluster tables 集群表
- Global Temp tables 全局临时表
- Blockchain tables 区块链表
- Materialized views 物化视图
- Non-vector columns (VARCHAR, NUMBER, and so on.) 非向量列
- Function-based vector index 基于函数的向量索引
- Sharded tables 分片表
查看向量索引信息
SQL> SELECT JSON_SERIALIZE(IDX_PARAMS returning varchar2 PRETTY) FROM VECSYS.VECTOR$INDEX where IDX_NAME = 'VECTOR_INDEX_DOCVECTOR';
JSON_SERIALIZE(IDX_PARAMSRETURNINGVARCHA
----------------------------------------
{
"type" : "HNSW",
"num_neighbors" : 32,
"efConstruction" : 200,
"distance" : "COSINE",
"accuracy" : 95,
"vector_type" : "FLOAT32",
"vector_dimension" : 5,
"degree_of_parallelism" : 1,
"pdb_id" : 3,
"indexed_col" : "DOC_VECTOR"
}
向量搜索应用场景
Oracle AI 向量搜索可将语义和业务数据搜索相结合,从而快速、安全地提供更准确的答案。通过在 Oracle 数据库中添加 AI 向量搜索,用户可以快速、轻松地获得人工智能的优势,而无需牺牲安全性、数据完整性或性能。
应用场景包括:
• 对话AI或聊天机器人:构建AI驱动的数字助手
• 相似性搜索:匹配客户与产品
• 基于内容的过滤:实现个性化推荐,根据图片查找零售商品
• 自然语言处理:文本分类和聚类SQL生成
• 数据分析:异常检测、模式识别
• 计算机视觉:面部识别、生物识别、目标检测
• 生物医学研究:基因/DNA相似性研究,分子结构搜索
• 地理信息系统:空间分析、地图渲染
• 工业应用:质量控制、预测性维护、机械故障
参考链接
• 功能:AI 向量搜索
https://www.oracle.com/database/ai-vector-search
• 文档:AI 向量搜索用户手册
https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse
• 博客:在 Oracle Database 23ai 中全面推出 AI 矢量搜索
https://blogs.oracle.com/database/post/oracle-announces-general-availability-of-ai-vector-search-in-oracle-database-23ai
全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
——————————————————————————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
——————————————————————————





