天天看點

大模型又帶火的一款2萬星黑馬項目!

作者:漫威電影情報局
大模型又帶火的一款2萬星黑馬項目!

撰稿 | 王瑞平

審校 | 雲昭

開源、Github标星狂飙2萬、CVP(即,ChatGPT+VectorDB+Prompt)架構...又一匹資料庫黑馬突出重圍。

它就是Milvus向量資料庫,幾年前便在Github上開源,瞬間引爆全球,不僅完美诠釋了新興CVP架構,也成為“群模亂舞”當下的一股清流。

大模型又帶火的一款2萬星黑馬項目!

圖檔

Milvus旨在為AI應用程式和嵌入相似度搜尋提供支援,使非結構化資料更易于搜尋和通路,無論部署環境如何都能使使用者獲得相同的體驗。

1、AIGC新紀元從“向量資料庫”邁入“大模型記憶體”

Milvus以4個月5000星的速度邁入Github 2萬星項目的隊列,越來越多開發者也正在為Milvus進入AIGC新紀元注入更多力量。

2019年,GitHub上将Milvus的源代碼開源。彼時,行業尚無“向量資料庫”一說,使用者最關心的問題是“什麼是向量資料庫”。

2023年,ChatGPT 引發AIGC熱潮,在這個大模型恣意生長的年份,越來越多的人關心“向量資料庫可以做什麼?”

在大語言模型時代,向量資料庫必不可少,它不僅是大模型的記憶體,還能通過向量檢索讓大模型變得博聞強識。

在此過程中,AIGC開發者可以看到的是Milvus在2.2.9版本和中新增了JSON、動态schema和PartitionKey三大功能,簡化了開發者使用門檻,并接入了開源項目GPTCache,提升LLM應用性能。

2、大模型時代,資料庫也需要跟上

我們正處在擁抱人人互聯新時代,傳輸電子郵件、社交媒體照片傳輸、蛋白質分子結構解析等過程中都會産生海量的非結構化資料(文本檔案、電子表格等)。

然而,你絕不能任由這些資料“滿天飛”!是以,它們必須被計算機定期處理!那麼,如何處理呢?

首先,embedding技術可以将這些資料轉化為“向量”。随後,Milvus會存儲這些“向量”并為其建立索引,這就形成了傳說中的“向量資料庫”。

與現有的主要可用作處理結構化資料的關系型資料庫不同,Milvus在底層設計上就是為了處理由各種非結構化資料轉換而來的Embedding向量而生。

該資料庫可以對接包括圖檔識别、視訊處理、聲音識别、自然語言處理等深度學習模型,進而為向量化後的非結構資料提供搜尋分析服務。

你可以使用Milvus搭建符合個人場景需求的向量相似度檢索系統,具體可應用在以圖搜圖、視訊去重、音頻檢索、文本搜尋等場景下。

3、快速入門:安裝Milvus

絕大多數非結構化資料的一對多檢索都可以用到Milvus,現在帶你快速入門...在Milvus的開源檔案中,我們找到了詳細的安裝過程,在此簡單介紹:

大模型又帶火的一款2萬星黑馬項目!

圖檔

你需要首先明确的是:Milvus使用Docker Compose控制服務的啟動和暫停,過程包括:

  • 建立工作目錄,下載下傳YAML檔案
  • 啟動Milvus容器:

sudo docker-compose up -d

  • 停止Milvus容器:

sudo docker-compose down

4、用例:以圖搜圖

Milvus官方還給出了以圖搜圖的用例,具體流程分為建構圖像向量庫和執行搜尋:

大模型又帶火的一款2萬星黑馬項目!

圖檔

1)建構圖像向量庫

首先準備圖像資料集,使用深度學習庫提取圖像特征,獲得每張圖像的特征向量,最後将特征向量存儲到Milvus資料庫中。

2)執行搜尋

輸入一張待檢索圖像,經過深度學習庫擷取圖像對應的特征向量,然後将這個向量與Milvus中所有圖像的特征向量進行相似度對比,進而獲得距離最近的圖像結果。

5、整體性能夠硬,生态已成氣候

從上述的安裝與使用過程中我們不難看出,Milvus作為一款雲原生向量資料庫,具備高可用、高性能、易拓展的特點,可用于海量向量資料的實時召回。

大模型又帶火的一款2萬星黑馬項目!

圖檔

Github上也對其整體性能做出了完整總結:

  • 高性能:性能高超,可對海量資料集進行向量相似度檢索。
  • 簡化管理:專為資料科學工作流設計的豐富API;
  • 高可用、高可靠:Milvus支援雲上擴充,其容災能力能夠保證服務高可用;
  • 高度可擴充和彈性:元件級可伸縮性使按需擴充和縮減成為可能。
  • 混合查詢:Milvus支援在向量相似度檢索過程中進行标量字段過濾,實作混合查詢;
  • 開發者友好:支援多語言、多工具Milvus生态系統;
  • 社群支援,行業認可:擁有超過1000名企業使用者以及活躍的開源社群。

6、系統架構:四個層次

Milvus作為一款雲原生向量資料庫,采用存儲與計算分離的架構設計,所有元件均為無狀态元件,極大增強系統彈性和靈活性。

大模型又帶火的一款2萬星黑馬項目!

圖檔

整個系統架構可分為四個層次:

  • 接入層:系統的門面,由一組無狀态proxy組成。對外提供使用者連接配接的endpoint,負責驗證用戶端請求并合并傳回結果。
  • 協調服務:系統的大腦,負責配置設定任務給執行節點。協調服務共有四種角色,分别為 root coord、data coord、query coord 和 index coord。
  • 執行節點:系統的四肢,負責完成協調服務下發的指令和 proxy 發起的資料操作語言(DML)指令。執行節點分為三種角色,分别為 data node、query node 和 index node。
  • 存儲服務:系統的骨骼,負責Milvus資料的持久化,分為中繼資料存儲(meta store)、消息存儲(log broker)和對象存儲(object storage)三個部分。

7、2.0重磅更新

在Milvus官網上,我們找到了Milvus1.0與2.0究竟有哪些差別,具體如下表:

大模型又帶火的一款2萬星黑馬項目!

圖檔

事實上,自Milvus更新至2.0版本以來,仍在不斷改進優化,推出了諸如從檔案中批量導入資料、基于磁盤的近似最近鄰(ANN)索引算法等新功能,也提升了中繼資料存儲、批量導入等性能。

遠的不說,從Milvus 2.2到Milvus 2.3版本都進行了哪些變化和更新呢?

Milvus 2.2提升了向量搜尋的穩定性、搜尋速度,具有靈活的擴縮容能力,提供了一系列新的 API,用于支援從檔案中更有效率地批量導入資料。

此外,Milvus 2.2還修複了部分bug并進行了諸多改進以增強Milvus穩定性、可觀測性和性能。

而在2.3版本中,Milvus移除了Annoy索引,降低了維護成本,還會支援count接口,用于統計collection的行數。新增的count接口除了能計算collection行數外,還支援query的查詢表達式用于統計帶條件的行數。

8、使用者:使用Milvus,并不孤單

從最初的Milvus到2.3版本,每一次版本更新背後都離不開使用者的支援與建議。更新、疊代,每次更新過後,Milvus都會趨向于完美。

截至目前,GitHub在上已達到2.08萬星。是以,當在活躍的開源社群中使用Milvus時,你并不孤單!

參考資料:

https://www.yii666.com/blog/393941.html?actinotallow=onAll

https://github.com/milvus-io/milvus

https://blog.csdn.net/hello_dear_you/article/details/127841589

來源: 51CTO技術棧