資料庫管理-第14期 Oracle Vector DB & AI-01(20240210)

yhw1809發表於2024-02-10

資料庫管理-第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進行簡單介紹。
老規矩,知道寫了些啥。


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

相關文章