今天要來介紹RAG的大腦:向量資料庫。這裡先簡單介紹一下為什麼要使用向量資料庫,因為在RAG技術當中最核心的概念就是向量。為什麼要用向量後續會說明,現在只要了解RAG就是透過向量去找尋相關的知識來針對使用者的問題去做解答。所以我們就需要將相關的知識利用向量表示之後儲存,之後在進行RAG的時候可以查找方便。那你可能會說為什麼不要用大家常用的資料表儲存就好,原因就在於想要有效率的查找就需要有結構化的存儲。所以顧名思義如果有一個資料庫可以被稱作向量資料庫或者其具備支援向量資料庫功能,在每一筆向量儲存和查找方面都有進行優化,並非一般資料庫只需要存儲資料和基本的查找優化。
回歸正題,今天主要要介紹MongoDB Atlas,以及作為向量資料庫的優勢。若大家有去調查向量資料庫的選擇其實有很多種,有一些是開源也有一些是需要付費的產品。這邊就不多做贅述其他框架的向量資料庫,這裡主要介紹MongoDB Atlas作為向量資料庫的優勢。
NoSQL儲存結構和結合雲端資源提供儲存彈性
MongoDB 最有名的就是他們的儲存結構,類似於JSON格式的儲存讓使用者可以很彈性的去面對不同的場景應用。像是今天有一位社群媒體的使用者有一些相關資料(追蹤人數、發布過的貼文等等),若未來導入人物貼標籤來進行社群人物的分類時,這時候就不必額外新增一個表來刻意儲存這些人物標籤。只要找到這個使用者ID,並且將標籤直接附加一個欄位來儲存即可。
另外MongoDB 也可以部署在雲端資源上,所以其水平擴展能力也不容小覷,對於那些較大的企業數據儲存可以有很好的資源應用和管理。
方便的託管服務DBaaS
不需要公司當中有相關的人力物力來進行數據庫環境的維護和後續新資料的儲存設計,只要了解MongoDB 有提供哪些功能,再透過結合自家公司業務的需求針對MongoDB 提供的API進行資料交互。這樣的優勢讓許多並非資訊專業的企業,或者資訊能力相較匱乏的企業也可以享受到這種數據彈性運用的機會。
提供多種資料儲存和搜尋的能力
MongoDB 的某一項優勢也在於他的儲存不會受限於資料類型,通常資料庫當中儲存的值都需要統一,可能是文字或數字。但是在MongoDB 當中因為儲存的資料都是利用BSON( Binary JSON)技術儲存,所以可以針對同一個ID去儲存文字、數字或圖片資料等等同時存放。
會選擇介紹MongoDB Atlas也是因為這次的實習讓我更深入了解這項服務,後來也查到一項報告說明MongoDB 作為向量數據庫功能的市占率也名列前茅。可見MongoDB Atlas作為企業資訊儲存的潛力,儘管可能並不適用於每個企業場景,但是MongoDB 對於我當時實習的企業來說可說是相對較好的選擇!
今天的分享就先到這裡,明天將會繼續分享一些有關MongoDB Atlas的使用方法。
https://www.mongodb.com/docs/atlas/
https://www.mongodb.com/docs/atlas/atlas-search/
https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-overview/