本公開涉及人工智能,尤其涉及一種數(shù)據(jù)處理方法和電子設(shè)備。
背景技術(shù):
1、hnsw(hierarchical?navigable?small?world)算法是一種高效的近似最近鄰搜索(ann)算法,廣泛應(yīng)用于大規(guī)模、高維數(shù)據(jù)集的相似度搜索問題。它通過構(gòu)建多層次圖結(jié)構(gòu)和利用小世界網(wǎng)絡(luò)的性質(zhì),實(shí)現(xiàn)了高效的最近鄰搜索,尤其適用于圖像檢索、推薦系統(tǒng)、自然語言處理等領(lǐng)域。
2、但是hnsw作為一種純內(nèi)存索引,通常需要消耗大量內(nèi)存構(gòu)建,尤其是大規(guī)模數(shù)據(jù)集下,單機(jī)內(nèi)存不夠用就不足以完成構(gòu)建。
技術(shù)實(shí)現(xiàn)思路
1、本公開的一個方面提供了一種數(shù)據(jù)處理方法,包括:獲取待存儲數(shù)據(jù)。對待存儲數(shù)據(jù)進(jìn)行特征提取,得到待存儲特征向量。構(gòu)建待存儲特征向量的第一索引信息,第一索引信息包括插入節(jié)點(diǎn)信息和第一連接信息,插入節(jié)點(diǎn)信息表征多層圖結(jié)構(gòu)中的至少一個插入層,第一連接信息表征插入節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間的第一連接關(guān)系?;诖鎯μ卣飨蛄亢偷谝贿B接關(guān)系的存儲空間占用量,確定存儲策略。按存儲策略將待存儲特征向量和第一連接關(guān)系存儲在第一存儲介質(zhì)和第二存儲介質(zhì)中的至少一個中,第一存儲介質(zhì)和第二存儲介質(zhì)的訪問速度不同。
2、可選地,構(gòu)建待存儲特征向量的第一索引信息,包括:在至少一個插入層中建立插入節(jié)點(diǎn)?;诓迦牍?jié)點(diǎn)與插入層中的多個節(jié)點(diǎn)之間的距離,確定至少一個鄰居節(jié)點(diǎn)。添加插入節(jié)點(diǎn)與至少一個鄰居節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系至插入節(jié)點(diǎn)和至少一個鄰居節(jié)點(diǎn)。
3、可選地,基于插入節(jié)點(diǎn)與插入層中的多個節(jié)點(diǎn)之間的距離,確定至少一個鄰居節(jié)點(diǎn),包括:確定第一數(shù)量的節(jié)點(diǎn)為候選節(jié)點(diǎn),第一數(shù)量表征滿足預(yù)設(shè)距離關(guān)系的節(jié)點(diǎn)數(shù)量。從候選節(jié)點(diǎn)中確定第二數(shù)量的節(jié)點(diǎn)為鄰居節(jié)點(diǎn),第二數(shù)量小于等于第一數(shù)量。
4、可選地,至少一個鄰居節(jié)點(diǎn)的其中之一對應(yīng)當(dāng)前插入層的相鄰層的入口節(jié)點(diǎn)。
5、可選地,存儲策略基于存儲空間占用量與第一存儲介質(zhì)的預(yù)設(shè)存儲容量的相對大小確定,存儲空間占用量與插入節(jié)點(diǎn)和各插入節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的數(shù)量正相關(guān)。
6、可選地,按存儲策略將待存儲特征向量和第一連接關(guān)系存儲在第一存儲介質(zhì)和第二存儲介質(zhì)中的至少一個中,包括以下任意一種:在存儲空間占用量小于第一存儲介質(zhì)的預(yù)設(shè)存儲容量的情況下,將待存儲特征向量和第一連接關(guān)系存儲在第一存儲介質(zhì)中。在存儲空間占用量大于等于預(yù)設(shè)存儲容量的情況下,將待存儲特征向量和第一連接關(guān)系存儲在第二存儲介質(zhì)中,且第二存儲介質(zhì)中的部分?jǐn)?shù)據(jù)緩存于第一存儲介質(zhì)中。
7、可選地,將待存儲特征向量和第一連接關(guān)系存儲在第二存儲介質(zhì)中,包括:將存儲于第一存儲介質(zhì)中的第一多層圖結(jié)構(gòu)所對應(yīng)的數(shù)據(jù)轉(zhuǎn)移到第二存儲介質(zhì)中,得到第二多層圖結(jié)構(gòu)。基于待存儲特征向量和第一連接關(guān)系,在第二多層圖結(jié)構(gòu)中插入節(jié)點(diǎn)。
8、可選地,第一存儲介質(zhì)包括內(nèi)存、動態(tài)隨機(jī)存取存儲器和靜態(tài)隨機(jī)存取存儲器中的任意一種或多種,第二存儲介質(zhì)包括機(jī)械硬盤、固態(tài)硬盤和磁帶中的任意一種或多種。
9、可選地,數(shù)據(jù)處理方法還包括:響應(yīng)于輸入待查詢數(shù)據(jù),確定對應(yīng)的待查詢特征向量。從第一存儲介質(zhì)和第二存儲介質(zhì)中的至少一個中查詢與待查詢特征向量相匹配的目標(biāo)特征向量。
10、可選地,從第一存儲介質(zhì)和第二存儲介質(zhì)中的至少一個中查詢與待查詢特征向量相匹配的目標(biāo)特征向量,包括:確定多層圖結(jié)構(gòu)中各層的入口節(jié)點(diǎn),入口節(jié)點(diǎn)中存儲有關(guān)聯(lián)特征向量和入口節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間的第二連接關(guān)系。緩存至少部分層的關(guān)聯(lián)特征向量和第二連接關(guān)系至第一存儲介質(zhì)。
11、本公開的另一方面提供了一種電子設(shè)備,包括:輸入裝置,用于獲取待存儲數(shù)據(jù)。一個或多個處理器,用于對待存儲數(shù)據(jù)進(jìn)行特征提取,得到待存儲特征向量。構(gòu)建待存儲特征向量的第一索引信息,第一索引信息包括插入節(jié)點(diǎn)信息和第一連接信息,插入節(jié)點(diǎn)信息表征多層圖結(jié)構(gòu)中的至少一個插入層,第一連接信息表征插入節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間的第一連接關(guān)系?;诖鎯μ卣飨蛄亢偷谝贿B接關(guān)系的存儲空間占用量,確定存儲策略。第一存儲介質(zhì),用于按存儲策略對待存儲特征向量和第一連接關(guān)系進(jìn)行存儲。第二存儲介質(zhì),用于按存儲策略對待存儲特征向量和第一連接關(guān)系進(jìn)行存儲,第一存儲介質(zhì)的訪問速度與第二存儲介質(zhì)的訪問速度不同。
1.一種數(shù)據(jù)處理方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,所述構(gòu)建所述待存儲特征向量的第一索引信息,包括:
3.根據(jù)權(quán)利要求2所述的方法,其中,所述基于所述插入節(jié)點(diǎn)與所述插入層中的多個節(jié)點(diǎn)之間的距離,確定至少一個鄰居節(jié)點(diǎn),包括:
4.根據(jù)權(quán)利要求2所述的方法,其中,所述至少一個鄰居節(jié)點(diǎn)的其中之一對應(yīng)當(dāng)前插入層的相鄰層的入口節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述存儲策略基于所述存儲空間占用量與所述第一存儲介質(zhì)的預(yù)設(shè)存儲容量的相對大小確定,所述存儲空間占用量與所述插入節(jié)點(diǎn)和各所述插入節(jié)點(diǎn)的鄰居節(jié)點(diǎn)的數(shù)量正相關(guān)。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述按所述存儲策略將所述待存儲特征向量和所述第一連接關(guān)系存儲在第一存儲介質(zhì)和第二存儲介質(zhì)中的至少一個中,包括以下任意一種:
7.根據(jù)權(quán)利要求6所述的方法,其中,所述將所述待存儲特征向量和所述第一連接關(guān)系存儲在所述第二存儲介質(zhì)中,包括:
8.根據(jù)權(quán)利要求6所述的方法,其中,所述第一存儲介質(zhì)包括內(nèi)存、動態(tài)隨機(jī)存取存儲器和靜態(tài)隨機(jī)存取存儲器中的任意一種或多種,所述第二存儲介質(zhì)包括機(jī)械硬盤、固態(tài)硬盤和磁帶中的任意一種或多種。
9.根據(jù)權(quán)利要求1所述的方法,還包括:
10.一種電子設(shè)備,包括: