Oracle 23ai 的 AI Vector Search 特性

Oracle 23ai 的 AI Vector Search 特性

ShawnYan Lv.6

AI Vector Search 是什么

Oracle 23ai 的 AI Vector Search 功能是数据库中的一项创新技术,它能将非结构化数据(如文本、图像、音视频等)转化为高维向量(Vector Embedding),进而在数据库中构建基于向量的相似性搜索能力。这一功能极大地提升了对复杂数据的搜索效率和准确性,尤其适用于人工智能和机器学习工作负载。

1.png

Oracle 的 AI Vector Search 功能包含以下三个核心层级:

  1. 向量生成层

它集成了多种预训练 AI 模型(如 BERT、ResNet 等)来生成向量,并支持 Open Neural Network Exchange (ONNX) 格式模型部署,以实现低延迟推理。

  1. 向量存储层

引入了新的 VECTOR 数据类型,最大支持维度达 4,000,并采用分片(Sharding)技术实现 PB 级向量存储。

1
2
3
4
5
6
7
8
9
10
11
12
SQL> CREATE TABLE docs (doc_id INT, doc_text CLOB, doc_vector VECTOR);

Table created.

SQL> desc docs;
Name Null? Type
----------------------------------------- -------- ----------------------------
DOC_ID NUMBER(38)
DOC_TEXT CLOB
DOC_VECTOR VECTOR(*, *, DENSE)

SQL>
  1. 向量检索层

支持 ANN(Approximate Nearest Neighbor)算法,内置 HNSW(Hierarchical Navigable Small World)索引结构,实现微秒(μs)级响应。

1
2
3
4
CREATE VECTOR INDEX hnsw_doc 
ON docs (doc_vector)
ORGANIZATION INMEMORY NEIGHBOR GRAPH
WITH TARGET ACCURACY 95;

AI Vector Search 工作流

Oracle AI Vector Search 专为人工智能工作负载设计,支持用户基于语义和图像相似性而非单纯关键词查询数据。

它主要有以下工作流程:

一是从非结构化数据生成向量嵌入,可在 Oracle Database 内外进行,但在数据库内进行时需先按 ONNX 标准导入向量嵌入模型,且非结构化数据可在数据库内外存放;

二是将向量嵌入、非结构化数据及关系业务数据存储于 Oracle Database,若向量嵌入在数据库外存储,可通过 SQL*Loader 或 Data Pump 加载到数据库内关系表,也可通过外部表访问;

三是创建向量索引和混合向量索引,与常规表列创建索引类似,可分别为向量嵌入及非结构化数据创建向量索引和混合向量索引(结合 Oracle Text 索引和向量索引),利于在巨大向量空间中运行相似性搜索;

四是利用 Oracle AI Vector Search 的原生 SQL 操作结合相似性与传统关系键搜索,还能运行混合搜索,这种高级信息检索技术融合相似性与关键词搜索,以获得高度相关的搜索结果,SQL 和 PL/SQL 可将非结构化数据转换为多个片段,再为每个片段生成向量嵌入;

五是生成提示并将其发送给大型语言模型(LLM)以实现完整的 RAG 推理,借助向量公用程序 PL/SQL API,可用文本提示和图像(通过 LLM 驱动的界面)向 LLM 发送提示,因 LLM 在训练截止后无法访问新信息,通过提供公司最新信息可降低其编造答案的可能性,RAG 方法结合预训练语言模型(包括重新排名模型)的优势与实时从数据集或数据库检索信息的能力,Oracle AI Vector Search 支持通过 LangChain、Ollama 和 LlamaIndex 等流行框架实现 RAG 与 LLM 集成。

AI Vector Search 性能调优

在考虑 AI Vector Search 性能优化时,可以从如下三个维度着手。

  1. 索引结构优化

由于传统 B-Tree 索引在向量场景下失效,需根据 HNSW 索引特性调整存储参数。例如,NEIGHBORS 参数控制图结构的连接密度,EF_CONSTRUCTION 参数影响索引构建质量与速度的平衡。Oracle 还引入了新的内存结构 —— 向量内存池(Vector Memory Pool),用于存储 HNSW 向量索引和相关元数据,并通过 vector_memory_size 参数控制其大小。

2.png
  1. Oracle AI Vector Search 相关程序包
  • DBMS_VECTOR :简化了与 Oracle AI Vector Search 的常见操作流程,例如可以从用户数据中提取片段或嵌入式数据,能够基于给定的提示或图像生成文本,支持创建向量索引以及生成有关索引准确性的报告。

  • DBMS_VECTOR_CHAIN :支持与 Oracle AI Vector Search 进行高级操作,涵盖了数据的分块及嵌入处理,同时还具备文本生成与总结功能。它更适合用于结合相似性搜索和混合搜索的文本处理场景,其优势在于能够将各项功能以流水线的方式组合起来,从而实现端到端的搜索流程。

  • DBMS_HYBRID_VECTOR :该程序包内含基于 JSON 的查询 API SEARCH,借助它能够针对混合向量索引执行查询操作。

  1. 混合负载管理

在 OLTP 与向量搜索并发的场景下,可通过 Resource Manager 设置向量搜索任务组,防止 CPU 过载,确保系统稳定运行。

总结

从 Cloud 到 AI,Oracle 正全面发力 AI,AI Vector Search 是 Oracle 23ai 的新特性,并随着版本迭代不断优化。Oracle AI Vector Search 通过将非结构化数据转化为高维向量,实现了基于向量的相似性搜索,极大地提升了复杂数据的搜索效率和准确性。通过创建向量索引和混合向量索引,可以高效地进行相似性搜索和混合搜索。性能调优方面,可以通过优化索引结构、合理设置相关程序包参数以及进行混合负载管理来进一步提升性能。Oracle AI Vector Search 为 AI 工作负载提供了强大的支持,使得企业能够更好地利用非结构化数据进行智能化应用开发。

Have a nice day ~

– / END / –

  • Title: Oracle 23ai 的 AI Vector Search 特性
  • Author: ShawnYan
  • Created at: 2025-04-21 23:00:00
  • Updated at: 2025-04-21 23:00:00
  • Link: https://shawnyan.cn/2025/oracle/oracle-23ai-ai-vector-search/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments