向量資料庫將資訊儲存為向量。向量資料庫將相關項目聚集在一起,從而實現相似性搜尋和建立強大的 AI 模型。
閱讀本文後,您將能夠:
相關內容
訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!
複製文章連結
向量資料庫是以數學表示形式儲存的資料的集合。向量資料庫使機器學習模型更容易記住先前的輸入,從而允許機器學習用於支援搜尋、推薦和文字產生用例。可以根據相似性指標而不是精確匹配來識別資料,從而使電腦模型能夠根據上下文理解資料。
當人們參觀鞋店時,銷售人員可能會推薦與人們喜歡的鞋子類似的鞋子。同樣,在電子商務商店購物時,商店可能會在「客戶還購買了...」之類的標題下建議類似的商品。向量資料庫使機器學習模型能夠識別類似的物品,就像銷售人員可以找到類似的鞋子以及電子商務商店可以推薦相關產品一樣。(事實上,電子商務商店可能會使用這樣的機器學習模型來進行推薦。)
總而言之,向量資料庫使電腦程式能夠進行比較、識別關係和理解上下文。這使得能夠建立進階人工智慧 (AI) 程式,如大型語言模型 (LLM)。
在這個簡單的向量資料庫中,右上角的文件可能彼此相似。
向量是一個數值陣列,表示浮點數在多個維度上的位置。
用更日常的語言來說,向量是一個數字清單,如:{12, 13, 19, 8, 9}。這些數字表示空間內的位置,就像列號和欄號表示試算表中的某個儲存格一樣(例如「B7」)。
向量資料庫中的每個向量對應於一個物件或項目,無論是單字、影像、影片、電影、文件或任何其他資料。這些向量可能很長且複雜,表示每個物件在數十個甚至數百個維度上的位置。
例如,電影的向量資料庫可以沿著諸如播放時間、類型、發行年份、家長指導評級、共同演員的數量、共同觀眾的數量等維度來定位電影。如果準確建立這些向量,那麼相似的電影最終可能會在向量資料庫中聚集在一起。
嵌入是由神經網路產生的向量。深度學習模型的典型向量資料庫由嵌入組成。對神經網路經過適當的微調後,它就可以自行產生嵌入,這樣就不必手動建立它們。然後,這些嵌入可以用於相似性搜尋、上下文分析、產生式 AI 等,如上所述。
在沒有向量資料庫的情況下單獨查詢機器學習模型既不快速也不經濟。機器學習模型無法記住超出其訓練內容的任何內容。它們必須每次都成為上下文(這就是許多簡單聊天機器人的工作原理)。
每次將查詢的上下文傳遞給模型非常慢,因為這可能包含大量資料;而且成本高昂,因為資料必須四處移動,必須重複消耗運算能力讓模型剖析相同的資料。在實踐中,大多數機器學習 API 可能會受到它們一次可以接受的資料量的限制。
這就是向量資料庫派上用場的地方:資料集僅通過模型一次(或在變更時定期通過模型),並且該資料的模型嵌入儲存在向量資料庫中。
這節省了大量的處理時間。它使得圍繞語義搜尋、分類和異常偵測構建面向使用者的應用程式成為可能,因為結果會在幾十毫秒內傳回,而無需等待模型處理整個資料集。
對於查詢,開發人員要求機器學習模型提供該查詢的表示(嵌入)。然後嵌入可以傳遞到向量資料庫,它可以傳回類似的嵌入——這些嵌入已經透過模型執行過。然後,這些嵌入可以對應回其原始內容:無論是頁面的 URL、影像的連結還是產品 SKU。
總結一下:向量資料庫可以大規模工作、快速工作,並且比在沒有向量資料庫的情況下查詢機器學習模型更具成本效益。
Vectorize 是 Cloudflare 提供的全球分散式向量資料庫。基於 Cloudflare Workers 建構的應用程式可以使用 Vectorize 查詢 Workers KV 中儲存的文件、R2 中儲存的影像或 D1 中儲存的使用者設定檔。正如 Workers 允許開發人員在無需啟動任何後端基礎架構的情況下建立應用程式一樣,Vectorize 允許開發人員無需建立自己的向量資料庫基礎架構,即可在其應用程式中建立 AI 功能。為了建立嵌入,Cloudflare 提供了 Workers AI。