資料庫管理-第152期 Oracle Vector DB & AI-04(20240220)

yhw1809發表於2024-02-20

資料庫管理-第152期 Oracle Vector DB & AI-04(20240220)

作者:胖頭魚的魚缸(尹海文)
Oracle ACE Associate: Database(Oracle與MySQL)
網思科技 DBA總監
10年資料庫行業經驗,現主要從事資料庫服務工作
擁有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等認證
墨天輪MVP、認證技術專家,ITPUB認證專家,OCM講師
圈內擁有“總監”、“保安”、“國產資料庫最大敵人”等稱號,非著 名社恐(社交恐怖分子)
公眾號:胖頭魚的魚缸;CSDN:胖頭魚的魚缸(尹海文);墨天輪:胖頭魚的魚缸;ITPUB:yhw1809。
除授權轉載並標明出處外,均為“非法”抄襲。

由於上一篇的一些“誤操作”,導致公眾號發文刪了,當天重發沒有辦法觸發群 發效果,所以可能有些人會發現沒看過03。

1 常用的向量檢索方法

聚類

K-Means 和 Faiss
image.png

圖搜尋

Hierarchical Navigable Small Worlds (HNSW)
image.png

雜湊

區域性敏感雜湊(Locality Sensitive Hashing)LSH

量化

Product Quantization (PQ):有失真壓縮

2 Oracle Vector DB中的索引

在Oracle Vector DB中,可以在Vector資料型別列上建立vector index來提升向量檢索的效能:

索引(預設)

create vector index vector_idx on vector_table (data_vector)organization [inmemory neighbor graph | neighbor partition]

距離計算:歐幾里德
向量索引的選擇取決於organization子句:

  1. In-Memory Neighbor Graph organization:HNSW
  2. Neighbor Partition organization:IVF

索引(高 級)

可以指定向量索引型別引數、距離函式、精度等:

create vector index vector_idx on vector_table (data_vector) organization neighbor partition parameters (num_centroids 1024);

3 EMBEDDINGS

在Oracle Vector DB除直接透過外部匯入向量外,也內建支援多種向量生產方式:

SQL EMBEDDINGS 函式

原生支援生成向量資料:

select id, image from cat_images order by VECTOR_DISTANCE(img_vec, EMBEDDING(resnet_50 USING :input_img)) fetch first 2 rows only;

image.png

OONX

Open Neural Network eXchange embedding 模型:

DECLARE
  model_source BLOB := NULL;BEGIN
  model_source :=
  DBMS_CLOUD.get_object
  ( credential_name =>  'OBJ_STORE_CRED',
  object_uri	=> '…bucketname/o/resnet50bundle.onnx’);
  DBMS_DATA_MINING.import_onnx_model
  ( model_name	=> "resnet50",
  model_data	=> model_source,
  metadata	=> JSON('{ function : "embedding" }')
);
END;

總結

本期簡單講解了一下,Oracle Vector索引以及內建向量EMBEDDING能力。
老規矩,知道寫了些啥。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/31466763/viewspace-3006822/,如需轉載,請註明出處,否則將追究法律責任。

相關文章