在現實生活中,“以圖搜圖”已經得到廣泛應用。例如,當我們看到喜歡的服飾,但不知道品牌或具體名稱時,可以使用電商平臺以圖搜圖功能,只要上傳該衣服的圖片,就能立即找到相似款式,並獲得價格和購買連結。
從技術角度來看,以圖搜圖得以實現,與向量檢索緊密相關。向量檢索是將數據對象(如圖像、文本等),轉換為向量形式存儲和檢索,並對圖像進行特徵提取,將圖像的特徵表示為向量,利用演算法快速計算、查詢向量與數據庫中向量的相似度,最終完成搜索。可以説,向量檢索為以圖搜圖提供了一種快速、有效的實現方式,使得在大規模圖像數據的相似性搜索成為可能。
2023年底,火山引擎ByteHouse上線向量檢索能力,而近期,該能力也在以圖搜圖場景中得到應用。
據介紹,ByteHouse向量檢索通過支援多種向量檢索演算法以及高效的執行鏈路,可以支撐大規模向量檢索場景,並達到毫秒級的查詢延遲。基於業界最新的 VectorDBBench工具進行測試,ByteHouse也已達到與專用向量數據庫相近的性能。
ByteHouse向量檢索功能整體架構
某社交媒體整合行銷平臺,則通過引入ByteHouse向量檢索能力,滿足了輿情監測場景中的以圖搜圖需求。舉個例子,有一家食品公司是該整合行銷平臺的客戶之一,食品公司上市了一款零食,而某位消費者在零食中發現異物,併發布在社交媒體中,引發網路討論,輿論不斷發酵。基於以圖搜圖的輿情監測能力,整合行銷平臺幫助食品公司快速發現輿情異常,並採取補救措施。
但由於數據體量不斷膨脹,該整合行銷平臺雖然匹配了更多資源,依然面臨查詢性能下降的問題。據介紹,該平臺的整體數據規模已達到12億,但公司管理層期望在盡可能低的成本下,達到秒級搜索速度。
經過一系列測試和對比,該平臺的研發人員發現,行業相關産品的查詢效率在幾秒到十多秒之間,而ByteHouse只需700-800毫秒。在進一步優化之後,ByteHouse查詢效率進一步降低到150-200毫秒內,只需秒級以下時間,就能從大規模數據中搜尋出近似的 1000張圖片,並完成相似度評分。
ByteHouse技術專家介紹道:“為了在有限資源下,最大化向量檢索性能,我們主要在這四個方面進行優化,分別是向量檢索計算下推、過濾操作優化、冷讀優化、索引限制。”
具體來説,ByteHouse通過將算子拆分,進行 Vector Search再處理,提升延遲速度,實現計算下推優化,而在過濾操作中,主要針對標量、向量混合查詢場景優化。針對造成性能瓶頸的冷讀問題,ByteHouse將不同資源用index結構載入記憶體的方式,實現高性能計算。
除此之外,由於使用向量檢索會消耗較多 CPU和記憶體資源,為了進一步降低成本,ByteHouse用索引限制併發,並通過壓縮存儲空間、支援增量訓練等手段實現記憶體優化。
除了支援向量檢索能力的Vector引擎,ByteHouse還具有全文檢索、GIS等引擎,實現全場景引擎覆蓋。作為一款具備高性能、極致分析能力的雲原生數據倉庫,早在2022年2月,ByteHouse在字節跳動的部署規模已超1萬8000台,單集群超2400台。未來,它還將持續為企業提供極致的數據分析能力,助推數智化轉型升級。