歡迎您光臨本站 註冊首頁

Milvus 向量搜索引擎 0.6.0 新功能介紹

←手機掃碼閱讀     admin @ 2019-12-20 , reply:0

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

發布時間:2019-12-07

版本兼容

Milvus 版本

pymilvus 版本

Java SDK 版本

0.6.0

0.2.6

0.4.0

✨ 新增功能

僅需 CPU 的 Milvus

在之前的版本,我們只提供了 GPU 版本的 Milvus。為了降低用戶使用門檻,從 v0.6.0 開始,Milvus 提供僅需 CPU 和支持 GPU 兩個版本的 Docker 鏡像。CPU 版適合百萬級數據的查詢,而 GPU 版在超大數據集搜索情況下性能優勢更明顯。

您也可以源碼編譯,但考慮到編譯環境複雜多變,有可能會增加編譯困難,我們在新版本提供了 Ubuntu 18.04 的 Docker 鏡像,便於大家直接在 Docker 容器中編譯 Milvus。

更多信息,請參閱 PR#192: https://github.com/milvus-io/milvus/pull/192
Milvus 安裝步驟: https://www.milvus.io/docs/zh-CN/userguide/install_milvus/
CPU 版鏡像下載:milvusdb/milvus:cpu-latest
GPU 版鏡像下載:milvusdb/milvus:latest

分區表

隨著單張表的數據量不斷增長,查詢性能也會不斷下降。單張表的數據變得很臃腫的時候,就要考慮將這張表拆分。v0.6.0 新增了分區表功能以確保增量數據的高性能查詢。Milvus 的表基於標籤分區,通過定義 partition_tag,您可以指定某張分區表,每張分區表的索引繼承自母表。Python,Java 和 C++ SDK 中也分別增加了表分區功能的相關介面,目前支持創建/刪除分區表,向量插入指定分區表,查看指定分區表,以及指定分區表的查詢。

更多信息,請參閱 PR#245: https://github.com/milvus-io/milvus/pull/245

實驗功能

v0.6.0還推出了一些實驗功能,代表了 Milvus 未來版本可能發展的方向。這些實驗功能仍在持續開發和更新中,可能包含已知問題和未發現的錯誤。現階段這些功能主要用於測試和用戶反饋收集,歡迎大家積極試用。

Mishards

Milvus 旨在幫助用戶實現海量非結構化數據的近似檢索和分析。單個 Milvus 實例可處理十億級數據規模,而對於百億或者千億級數據,則需要一個 Milvus 集群實例。v0.6.0 推出的 Mishards 正是 Milvus 集群分片處理的中間件,主要負責將上游請求拆分,並路由到內部各細分子服務,最後將子服務結果匯總,返回給上游。Mishards 內部處理請求轉發、讀寫分離、水平擴展、動態擴容,為用戶提供內存和算力可以無限擴容的 Milvus 集群實例。

更多信息,請參閱PR#232: https://github.com/milvus-io/milvus/pull/232

 

新的索引類型

支持新的索引類型如 SPTAG-KDTSPTAG-BKTRNSG 和 IVFPQ。Milvus 集成了微軟的 SPTAG 演算法庫,包含兩種索引類型。RNSG 是 Milvus 在 NSG 基礎上自研的基於圖的索引演算法,它可以 a) 降低圖的平均出度;b) 縮短搜索路徑;c) 縮減索引大小;d) 降低索引複雜度。IVF_PQ是在倒排索引的基礎上進一步利用笛卡兒積(PQ)對每一個倒排文件中的向量進行編碼的索引技術。這樣的方法稱之為非對稱距離計算。向量大小可以縮減至原來大小的1/8甚至1/16。該索引方式雖然會損失精度,但內存佔用會進一步下降,適用於低內存環境下的大規模向量搜索。

目前看來,這幾種新的索引類型的搜索性能表現並不令人滿意,具體原因還有待進一步發掘,也歡迎感興趣的小夥伴一起加入研究討論。

更多信息,請參閱 SPTAG-PR#438: https://github.com/milvus-io/milvus/pull/438
RNSG-PR#554: https://github.com/milvus-io/milvus/pull/554
IVFPQ-PR#324: https://github.com/milvus-io/milvus/pull/324
SPTAG 索引介紹: https://github.com/Microsoft/SPTAG
NSG 索引論文: https://arxiv.org/abs/1707.00143

Milvus 性能測試報告

Milvus 支持多種類型的索引,各個索引的查詢性能會隨著數據集和調參的變化而改變。新版本提供了針對 IVFFLATIVFSQ8 和 IVFSQ8H 的性能測試報告。隨著 Milvus 支持的索引類型不斷增加,測試報告也會持續更新。

具體性能測試報告,請參閱索引性能測試: https://github.com/milvus-io/milvus/tree/master/docs

 

✨ 主要改進

Milvus 優化過的 FAISS

在原有 FAISS 的基礎上, Milvus 做了一些深層代碼的優化以獲得更優的查詢性能和支持更多類型的索引類型,比如 IVFSQ8H。現在,我們將這部分針對 FAISS 進行優化的代碼開源了。

更多信息,請參閱PR#585: https://github.com/milvus-io/milvus/pull/585

多張 GPU 創建索引

支持使用多張 GPU 來創建索引以減少創建索引和整體查詢的時間。在使用支持 GPU 的 Milvus 時,您可以通過對 Milvus 配置文件中的參數 build_index_resources 來指定多張 GPU 卡用於索引創建。

更多信息,請參閱 PR#414: https://github.com/milvus-io/milvus/pull/414

✨ Bug 修復

進一步解決了隨查詢次數增加,內存佔用持續增加的問題。

更多信息,請參閱 PR#335: https://github.com/milvus-io/milvus/pull/335

 

如果還想了解 v0.6.0 更具體的更新改動,請參閱 Milvus CHANGELOG: https://github.com/milvus-io/milvus/blob/master/CHANGELOG.md

 

歡迎加入Milvus社區

主頁: milvus.io
GitHub:github.com/milvus-io/milvus
知乎: zhuanlan.zhihu.com/milvus
Slack: milvusio.slack.com
Twitter:twitter.com/milvusio
Facebook:www.facebook.com/io.milvus.5


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/112206/milvus-0-6-0-released
Milvus 向量搜索引擎 0.6.0 新功能介紹已經有143次圍觀

http://coctec.com/news/all/show-post-221471.html