當您瀏覽Twitter、LinkedIn或新聞源上的時間軸時,可能會看到一些關于聊天機器人、LLM和GPT的內容。因為每周都有新的LLM發布,很多人都在談論LLM。
我們目前置身于一場人工智能革命,許多新應用都依賴于向量嵌入。不妨讓我們更多地了解向量數據庫以及為什么它們對LLM很重要。
向量數據庫的定義
不妨先定義向量嵌入(Vector Embedding)。向量嵌入是一種數據表示,它攜帶語義信息,幫助人工智能系統更好地理解數據,并能夠保持長期記憶。對于任何您想學的新東西,最重要的部分是理解并記住主題。
嵌入是由人工智能模型生成的,比如含有大量特征的LLM,這使得它們的表示難以管理。嵌入表示數據的不同維度,以幫助AI模型理解不同的關系、模式和隱藏結構。
使用基于標量的傳統數據庫的向量嵌入是一個挑戰,因為它無法處理或跟上數據的規模和復雜性。鑒于向量嵌入具有的種種復雜性,不難想象它需要專門的數據庫。這時候向量數據庫就有了用武之地。
向量數據庫為向量嵌入的獨特結構提供了經過優化的存儲和查詢功能。它們提供簡單的搜索、高性能、可擴展性和數據檢索,這一切都是通過比較值和查找彼此之間的相似性來實現的。
是不是聽起來很棒?有一種方法可以處理向量嵌入的復雜結構。不過向量數據庫很難實現。
就在不久前,向量數據庫還只被那些不僅有能力開發而且有能力管理的科技巨頭所使用。向量數據庫成本高昂,因此確保它們經過正確校準對于提供高性能非常重要。
向量數據庫是如何工作的?
現在我們對向量嵌入和向量數據庫有了一定的了解,不妨看看它是如何工作的。
不妨從一個處理ChatGPT等LLM的簡單示例開始。該模型有大量的數據和大量的內容,它們為我們提供了ChatGPT應用程序。
不妨看看這些步驟。
1.作為用戶,您將往該應用程序輸入查詢。
2.然后您的查詢被插入到嵌入模型中,該模型基于我們想要索引的內容創建向量嵌入。
3.然后向量嵌入移動到向量數據庫中。
4.向量數據庫生成輸出,并將其作為查詢結果發回給用戶。
當用戶繼續進行查詢時,它將通過相同的嵌入模型來創建嵌入,以查詢該數據庫中類似的向量嵌入。向量嵌入之間的相似性基于創建嵌入的原始內容。
想知道更多關于其在向量數據庫中的工作原理嗎?不妨了解更多。
向量數據庫由不同的算法組成,這些算法都有助于進行近似最近鄰(ANN)搜索。這是通過散列、基于圖的搜索或量化來完成的,它們被組裝到一條管道中,以檢索所查詢向量的鄰居。
結果取決于它與查詢的接近程度,因此考慮的主要因素是準確性和速度。如果查詢輸出慢,結果就比較準確。
向量數據庫查詢要經歷的三個主要階段:
1.索引
如上例所述,一旦向量嵌入進入到向量數據庫中,它就會使用各種算法將向量嵌入映射到數據結構,以便更快地進行搜索。
2.查詢
一旦完成了搜索,向量數據庫將查詢的向量與索引的向量進行比較,并運用相似性度量指標來查找最近鄰。
3.后處理
根據您使用的向量數據庫,向量數據庫將對最后的最近鄰進行后處理,以生成查詢的最終輸出。另外,還可能重新排列最近鄰,供將來引用。
結語
隨著人工智能的不斷發展和新系統的每周發布,向量數據庫的發展起到了重要作用。向量數據庫使公司能夠更有效地與精確的相似度搜索進行交互,為用戶提供更好更快的輸出。
所以下次您在ChatGPT或Google Bard中輸入查詢時,想想它為您的查詢輸出結果所經歷的過程。