Zilliz @ QCon:萬物皆可向量化—— Milvus 的現狀與未來

Zilliz發表於2023-02-21

萬物皆可向量化。

近日,在 QCon 全球軟體開發大會北京站的現場,Zilliz 合夥人、技術總監欒小凡進行了名為《萬物皆可向量化—— Milvus 的現狀與未來》的主題演講。

欒小凡從向量資料庫的基本知識、Milvus 2.0 的特性及功能、向量資料庫雲原生實踐、向量資料庫的未來這四個方面,帶領現場聽眾體驗一場向量資料庫與雲交織的未來之旅。其中,Milvus 的使用者場景、向量資料庫雲原生實踐與向量資料庫的未來部分引發現場的關注與討論。

以下是這三部分的精彩集錦:

Milvus & ChatGPT

在開源領域,Milvus 已得到全球上千家企業級使用者的信賴,包括 eBay、Shopee、Walmart、快手、宜家等,最大部署規模超過 10 億向量。

同時,在很多應用場景下,Milvus 的 QPS 超過 10K。典型的應用場景包括:在長文字領域,可以進行翻譯、問答、語義檢索、情感分析,語義檢索和問答可以與 ChatGPT 配合使用,提升其回答的準確度;在圖片領域可以進行去重、目標檢測、圖片檢索、多模態的圖文互搜;在影片領域進行推薦、合規檢測、分類等。

當然,也有很多新興的應用場景,包括在生物製藥領域把生物分子式轉化成向量,判斷生物小分子與蛋白質能否緊密結合;在音訊領域進行去重、情感分析;在風控領域識別潛在的風險;在自動駕駛領域可以透過向量檢索幫助自動駕駛找出實時判斷過程中沒有分析出來的物體。

以問答機器人為例,在實際應用過程中它是如何透過 Milvus 來實現的?
圖片

簡單來說,資料分成了兩部分,一部分是 Question Dataset,另一部分是 Ask Question。然後透過 Text embedding 的方式生成 Vector,並將其寫入 Milvus。在實際查詢的過程中,把使用者的查詢透過相同的運算元將其生成一個向量,再透過向量查詢 Vector database,最終拿到一組相似的 ID,這些 ID 透過反查得到更多的資訊。隨後可以執行一個精排模型,比如利用 ChatGPT + prompt 的方式進行查詢結果的歸納/總結。

圖片

具體教程可參考:Towhee

雲上的心得與思考 Milvus 對於雲的心得和思考其實可以從四個方面概括,即:微服務化設計、介面即服務、排程、跨雲。

首先是微服務化設計。Milvus 的架構設計是一個非常複雜的分散式系統,因此採用了微服務化和儲存計算分離的設計。Milvus 提供一系列介面抽象,支援三種不同種類的儲存,即元資訊儲存、流儲存和批儲存。而不同的儲存介面又囊括多種實現方式,例如,物件儲存包括了開源的 Minio 和雲 S3;元資訊儲存支援開源的 Etcd 和雲的 RDS。

其次,介面即服務。這是 Milvus 非常關鍵的設計,每一個微服務都是由不同的介面定義的,其背後包括多種不同的實現,有嵌入式引擎、分散式叢集,也有 Severless 服務。這樣做的優點是可以將資源池化、統一開源與雲、實現與介面分離。

再者,排程,不僅僅是任務。在過去的大資料領域,排程通常會和任務排程結合,而在一個雲原生的環境下,排程的複雜度大大提升,不僅排程任務本身,它還在排程 resource、資料。雲上有一種說法,即線上下環境中完成一項任務,也許需要用一個 CPU 跑 100 分鐘,在雲上則可以用 100 個 CPU 跑 1 分鐘來完成。Milvus 團隊將其稱為“雲的資源交換律”。當然,資源交換律並不是在任何情況下都成立的。為實現這個定律,Milvus 進行儲存計算分離以降低排程 Resources 的成本;儘可能動態排程計算資源以滿足當前的算力要求;排程資料本身,藉助 caching、冗餘、locality 等策略降低計算排程成本。

最後,跨雲。多雲/混合雲的優勢很多,包括安全合規、有更高的議價空間、可用性更高以及 No Vendor Lock in。

當然,多雲本身也帶來了很多額外的複雜度,對此,Milvus 有自己的四大哲學:

一是基於開源或雲標準介面(S3,SQL)構建服務;二是利用抽象能力解耦 - Terraform、 Crossplane;三是區分管控面與資料面,實現統一的管理能力;四是基於多雲實現 CI/CD。

向量資料庫的挑戰與未來

向量資料庫的大趨勢是什麼?當前行業面臨怎樣的挑戰?Milvus 對此有哪些應對方式?

對於這些問題,欒小凡將六大挑戰作為切入點進行了回應:

其一,可運維性。如何在 AI 領域部署及運維向量資料庫是整個行業面臨的一大挑戰。為此,團隊在 Milvus 上做了一系列的工作。從雲原生的角度來看,儘可能地複用基礎設施;從開源使用者的角度來看,儘可能降低系統對外部元件的依賴,使部署和運維向量資料庫變得更加簡單。

其二,效能成本。目前,我們看到了 GPU 加速向量檢索的可能,也看到了在很多的資料集底下 GPU 能夠提供 5-10 倍以上的 CPU 的效能。所以,在下一個大的 Roadmap 裡面 Milvus 也會去支援 GPU。此外,過去在做向量檢索時,必須要把資料加到記憶體裡面,這限制了整個向量檢索的資料量。目前,Milvus 已經實現支援基於磁碟記憶體混合的索引,正在透過 MMap 實現記憶體和磁碟換進換出的查詢能力,能夠進一步降低向量檢索的記憶體使用。

其三,離線上一體化。這包括解決當前元資訊的儲存瓶頸、百億規模超大規模的向量召回,都對整個系統的負載均衡能力、資源使用能力提出了較高的要求。Milvus 希望能夠變成一個離線上一體化系統。

其四,智慧化。很多人都在高呼“AI for DB”,但真正將其應用在 Relational database 的機率卻比較低。由於向量資料庫的一些特性,我們較早地進行了嘗試,進行動態引數調整、引入模型處理精排。例如,做一些動態的剪枝演算法,根據使用者的資料模型動態選擇是否幫他們做 FP16 或者 BF16 以及 SQ/PQ 等各種量化的最佳化。

其五,易用性。Milvus 計劃在下半年將增加支援 SQL,成為全球第一個支援 SQL 的向量資料庫。同時,團隊也將對接一些大模型生態如 Hugging face、OpenAI、Spark 等。此外,Milvus 與 Paddle 社群也有非常緊密的合作。

其六,標量資料處理能力。標量和向量的混合查詢是未來幾年的趨勢,這一點毋庸置疑。為此,團隊也做了很多準備,包括新一代標量的執行引擎的研發、對 Json,list/set 等更多複雜資料型別提供支援。

最後,我們透過 Zilliz Cloud 提供全託管的 SaaS 服務,這也將大大降低大家使用向量檢索的成本與門檻。如果想要體驗 Zilliz Cloud 的更多功能,歡迎訪問https://zilliz.com/cloud 。

點選連結即可瞭解更多現場細節:【QCon】萬物皆可向量化:Milvus 的現狀與未來 - Zilliz 合夥人 欒小凡_嗶哩嗶哩_bilibili

相關文章