本技術(shù)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種檢索方法及計(jì)算機(jī)設(shè)備。
背景技術(shù):
1、目前,隨著大數(shù)據(jù)應(yīng)用的發(fā)展,海量數(shù)據(jù)迸發(fā),比如圖像、文本、視頻和語音等非結(jié)構(gòu)化數(shù)據(jù)。將非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為高維向量,利用高維向量表示非結(jié)構(gòu)化數(shù)據(jù)的語義,這個(gè)過程可以稱為向量化(embedding)。進(jìn)而,基于單個(gè)處理器依據(jù)檢索請(qǐng)求檢索數(shù)據(jù)庫得到檢索結(jié)果,例如,從數(shù)據(jù)庫中檢索與查詢內(nèi)容相似的向量,實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化數(shù)據(jù)的分析和檢索。但是,隨著數(shù)據(jù)規(guī)模和復(fù)雜度的增加,目前的硬件無法支持高并發(fā)檢索,導(dǎo)致檢索效率較低。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了檢索方法及計(jì)算機(jī)設(shè)備,由此提升檢索效率。
2、第一方面,提供了一種檢索方法,該方法應(yīng)用于計(jì)算系統(tǒng),計(jì)算系統(tǒng)包括第一處理器和第二處理器,方法包括:首先,第一處理器依據(jù)多個(gè)檢索請(qǐng)求確定需要檢索的數(shù)據(jù)庫后,根據(jù)數(shù)據(jù)庫的特征確定第一處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第一部分檢索請(qǐng)求,以及第二處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第二部分檢索請(qǐng)求;即第一處理器執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果;最后,根據(jù)第一檢索結(jié)果及第二檢索結(jié)果得到多個(gè)檢索請(qǐng)求的檢索結(jié)果。
3、相對(duì)于僅依據(jù)單個(gè)處理器根據(jù)檢索請(qǐng)求對(duì)數(shù)據(jù)庫執(zhí)行檢索獲取檢索結(jié)果,本技術(shù)提供的方案,根據(jù)數(shù)據(jù)庫的特征確定兩個(gè)處理器執(zhí)行檢索所依據(jù)的檢索范圍,即通過自適應(yīng)感知數(shù)據(jù)庫的特征,為兩個(gè)處理器來分配數(shù)據(jù)庫和多個(gè)檢索請(qǐng)求,使兩個(gè)處理器基于所分配的數(shù)據(jù)庫和檢索請(qǐng)求執(zhí)行檢索。從而,充分利用多種類型的處理器的算力,基于異構(gòu)計(jì)算架構(gòu)并行執(zhí)行檢索,提升了檢索效率,以及提升了處理器算力的利用率,而且無需擴(kuò)容硬件,降低成本。
4、在一種可能的實(shí)現(xiàn)方式中,根據(jù)數(shù)據(jù)庫的特征確定第一處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第一部分檢索請(qǐng)求,第二處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第二部分檢索請(qǐng)求包括:當(dāng)數(shù)據(jù)庫的大小大于第一處理器的處理能力時(shí),將多個(gè)檢索請(qǐng)求分別發(fā)送至第一處理器及第二處理器,第一部分檢索請(qǐng)求及第二部分檢索請(qǐng)求均為多個(gè)檢索請(qǐng)求。
5、在另一種可能的實(shí)現(xiàn)方式中,方法包括,將數(shù)據(jù)庫根據(jù)第一處理器及第二處理器的能力被劃分為第一子數(shù)據(jù)庫及第二子數(shù)據(jù)庫;第一處理器執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果包括:第一處理器在第一子數(shù)據(jù)庫中查詢第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器中第二子數(shù)據(jù)庫中查詢第二部分檢索請(qǐng)求得到第二檢索結(jié)果。
6、如此,在單個(gè)處理器的算力不支持?jǐn)?shù)據(jù)庫的規(guī)模,依據(jù)不同類型的處理器的能力劃分?jǐn)?shù)據(jù)庫,兩個(gè)處理器分別基于數(shù)據(jù)庫中部分內(nèi)容對(duì)多個(gè)檢索請(qǐng)求執(zhí)行檢索,即基于不同的子數(shù)據(jù)庫并行執(zhí)行檢索,從而有效地提升了檢索效率。
7、在另一種可能的實(shí)現(xiàn)方式中,根據(jù)第一檢索結(jié)果及第二檢索結(jié)果得到多個(gè)檢索請(qǐng)求的檢索結(jié)果包括:從第一檢索結(jié)果和第二檢索結(jié)果中選擇與檢索請(qǐng)求相似的檢索結(jié)果確定多個(gè)檢索請(qǐng)求的檢索結(jié)果。
8、在另一種可能的實(shí)現(xiàn)方式中,根據(jù)數(shù)據(jù)庫的特征確定第一處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第一部分檢索請(qǐng)求,第二處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第二部分檢索請(qǐng)求包括:當(dāng)數(shù)據(jù)庫的大小小于或等于第一處理器的處理能力時(shí),根據(jù)第一處理器及第二處理器的處理能力將多個(gè)檢索請(qǐng)求劃分為第一部分檢索請(qǐng)求及第二部分檢索請(qǐng)求。
9、如此,在單個(gè)處理器的算力支持?jǐn)?shù)據(jù)庫的規(guī)模,依據(jù)不同類型的處理器的能力劃分多個(gè)檢索請(qǐng)求,兩個(gè)處理器分別基于多個(gè)檢索請(qǐng)求中部分檢索請(qǐng)求對(duì)數(shù)據(jù)庫執(zhí)行檢索,即基于不同的檢索請(qǐng)求并行執(zhí)行檢索,從而有效地提升了檢索效率。
10、在另一種可能的實(shí)現(xiàn)方式中,第一處理器執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果包括:第一處理器在數(shù)據(jù)庫中查詢第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器在數(shù)據(jù)庫中查詢第二部分檢索請(qǐng)求得到第二檢索結(jié)果。
11、從而,通過比較第一檢索結(jié)果和第二檢索結(jié)果,獲取與檢索請(qǐng)求更相近或更相似的檢索結(jié)果,確保檢索結(jié)果的準(zhǔn)確性。
12、在另一種可能的實(shí)現(xiàn)方式中,第一處理器執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果包括:根據(jù)數(shù)據(jù)庫的分布特征確定檢索算法;第一處理器根據(jù)檢索算法執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器根據(jù)檢索算法執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果。
13、如此,基于數(shù)據(jù)庫的分布特征確定檢索算法,基于該檢索算法對(duì)數(shù)據(jù)庫執(zhí)行檢索以便于能夠從數(shù)據(jù)庫中盡快檢索到與檢索請(qǐng)求相似的檢索結(jié)果,提升了檢索效率和檢索精度。
14、在另一種可能的實(shí)現(xiàn)方式中,根據(jù)數(shù)據(jù)庫的分布特征確定檢索算法包括:當(dāng)分布特征為隨機(jī)分布時(shí),確定檢索算法為精確檢索算法;當(dāng)分布特征為稠密分布或稀疏分布時(shí),確定檢索算法為近似檢索算法。
15、由于隨機(jī)分布的數(shù)據(jù)的規(guī)律性較差,基于精確檢索算法執(zhí)行檢索,確保能夠檢索到相似的結(jié)果,相對(duì)于近似檢索算法,避免漏檢,從而檢索精度。
16、由于稠密分布或稀疏分布的數(shù)據(jù)具有規(guī)律性,基于近似檢索算法執(zhí)行檢索,確保能夠盡快檢索到相似結(jié)果,相對(duì)于精確檢索算法,提升了檢索效率。
17、在另一種可能的實(shí)現(xiàn)方式中,方法還包括:根據(jù)數(shù)據(jù)庫的統(tǒng)計(jì)特征和屬性確定分布特征。
18、從而,由數(shù)據(jù)庫的統(tǒng)計(jì)特征和屬性確定的數(shù)據(jù)庫的分布特征,來確定檢索算法,以提升檢索精度。
19、在另一種可能的實(shí)現(xiàn)方式中,根據(jù)數(shù)據(jù)庫的分布特征確定第一處理器和第二處理器執(zhí)行檢索所依據(jù)的檢索算法,包括:根據(jù)數(shù)據(jù)庫的分布特征確定第一處理器和第二處理器執(zhí)行檢索所依據(jù)的多個(gè)檢索算法;從多個(gè)檢索算法確定用戶指示的檢索算法。
20、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)庫包括向量,多個(gè)檢索請(qǐng)求對(duì)數(shù)據(jù)庫執(zhí)行向量檢索。第一處理器根據(jù)多個(gè)檢索請(qǐng)求確定待檢索的向量庫;第一處理器根據(jù)向量庫的特征確定檢索方案,檢索方案用于指示計(jì)算系統(tǒng)中至少兩個(gè)處理器執(zhí)行向量檢索所依據(jù)的向量檢索范圍和向量檢索算法,向量檢索范圍用于指示向量庫的范圍和多個(gè)檢索請(qǐng)求的范圍;第一處理器根據(jù)檢索方案指示的第一處理器所依據(jù)的向量檢索范圍和向量檢索算法執(zhí)行向量檢索,得到第一檢索結(jié)果;第二處理器根據(jù)檢索方案指示的第二處理器所依據(jù)的向量檢索范圍和向量檢索算法執(zhí)行向量檢索,得到第二檢索結(jié)果;第一處理器根據(jù)第一檢索結(jié)果及第二檢索結(jié)果得到多個(gè)檢索請(qǐng)求的檢索結(jié)果。
21、第二方面,提供了一種檢索裝置,檢索裝置包括用于執(zhí)行第一方面或第一方面任一種可能設(shè)計(jì)中的內(nèi)檢索方法的各個(gè)模塊。例如,檢索裝置包括通信模塊、數(shù)據(jù)感知模塊和數(shù)據(jù)檢索模塊。
22、數(shù)據(jù)感知模塊,用于依據(jù)多個(gè)檢索請(qǐng)求確定需要檢索的數(shù)據(jù)庫;數(shù)據(jù)感知模塊,還用于根據(jù)數(shù)據(jù)庫的特征確定第一處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第一部分檢索請(qǐng)求,以及第二處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第二部分檢索請(qǐng)求;數(shù)據(jù)檢索模塊,用于執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果;數(shù)據(jù)檢索模塊,還用于執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果;數(shù)據(jù)檢索模塊,還用于根據(jù)第一檢索結(jié)果及第二檢索結(jié)果得到多個(gè)檢索請(qǐng)求的檢索結(jié)果。
23、在一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)感知模塊根據(jù)數(shù)據(jù)庫的特征確定第一處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第一部分檢索請(qǐng)求,第二處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第二部分檢索請(qǐng)求時(shí),具體用于:當(dāng)數(shù)據(jù)庫的大小大于第一處理器的處理能力時(shí),將多個(gè)檢索請(qǐng)求分別發(fā)送至第一處理器及第二處理器,第一部分檢索請(qǐng)求及第二部分檢索請(qǐng)求均為多個(gè)檢索請(qǐng)求。
24、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)感知模塊還用于將數(shù)據(jù)庫根據(jù)第一處理器及第二處理器的能力被劃分為第一子數(shù)據(jù)庫及第二子數(shù)據(jù)庫;數(shù)據(jù)檢索模塊第一處理器執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果時(shí),具體用于:第一處理器在第一子數(shù)據(jù)庫中查詢第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器中第二子數(shù)據(jù)庫中查詢第二部分檢索請(qǐng)求得到第二檢索結(jié)果。
25、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)檢索模塊根據(jù)第一檢索結(jié)果及第二檢索結(jié)果得到多個(gè)檢索請(qǐng)求的檢索結(jié)果時(shí),具體用于:從第一檢索結(jié)果和第二檢索結(jié)果中選擇與檢索請(qǐng)求相似的檢索結(jié)果確定多個(gè)檢索請(qǐng)求的檢索結(jié)果。
26、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)感知模塊根據(jù)數(shù)據(jù)庫的特征確定第一處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第一部分檢索請(qǐng)求,第二處理器執(zhí)行多個(gè)檢索請(qǐng)求中的第二部分檢索請(qǐng)求時(shí),具體用于:當(dāng)數(shù)據(jù)庫的大小小于或等于第一處理器的處理能力時(shí),根據(jù)第一處理器及第二處理器的處理能力將多個(gè)檢索請(qǐng)求劃分為第一部分檢索請(qǐng)求及第二部分檢索請(qǐng)求。
27、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)檢索模塊第一處理器執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果時(shí),具體用于:第一處理器在數(shù)據(jù)庫中查詢第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器在數(shù)據(jù)庫中查詢第二部分檢索請(qǐng)求得到第二檢索結(jié)果。
28、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)感知模塊第一處理器執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果時(shí),具體用于:根據(jù)數(shù)據(jù)庫的分布特征確定檢索算法;第一處理器根據(jù)檢索算法執(zhí)行第一部分檢索請(qǐng)求得到第一檢索結(jié)果,第二處理器根據(jù)檢索算法執(zhí)行第二部分檢索請(qǐng)求得到第二檢索結(jié)果。
29、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)感知模塊根據(jù)數(shù)據(jù)庫的分布特征確定檢索算法時(shí),具體用于:當(dāng)分布特征為隨機(jī)分布時(shí),確定檢索算法為精確檢索算法;當(dāng)分布特征為稠密分布或稀疏分布時(shí),確定檢索算法為近似檢索算法。
30、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)感知模塊還用于:根據(jù)數(shù)據(jù)庫的統(tǒng)計(jì)特征和屬性確定分布特征。
31、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)感知模塊根據(jù)數(shù)據(jù)庫的分布特征確定第一處理器和第二處理器執(zhí)行檢索所依據(jù)的檢索算法時(shí),具體用于:根據(jù)數(shù)據(jù)庫的分布特征確定第一處理器和第二處理器執(zhí)行檢索所依據(jù)的多個(gè)檢索算法;從多個(gè)檢索算法確定用戶指示的檢索算法。
32、在另一種可能的實(shí)現(xiàn)方式中,數(shù)據(jù)庫包括向量,多個(gè)檢索請(qǐng)求對(duì)數(shù)據(jù)庫執(zhí)行向量檢索。數(shù)據(jù)感知模塊用于根據(jù)多個(gè)檢索請(qǐng)求確定待檢索的向量庫;以及根據(jù)向量庫的特征確定檢索方案,檢索方案用于指示計(jì)算系統(tǒng)中至少兩個(gè)處理器執(zhí)行向量檢索所依據(jù)的向量檢索范圍和向量檢索算法,向量檢索范圍用于指示向量庫的范圍和多個(gè)檢索請(qǐng)求的范圍;數(shù)據(jù)檢索模塊用于根據(jù)檢索方案指示的第一處理器所依據(jù)的向量檢索范圍和向量檢索算法執(zhí)行向量檢索,得到第一檢索結(jié)果;數(shù)據(jù)檢索模塊還用于根據(jù)檢索方案指示的第二處理器所依據(jù)的向量檢索范圍和向量檢索算法執(zhí)行向量檢索,得到第二檢索結(jié)果;數(shù)據(jù)檢索模塊還用于根據(jù)第一檢索結(jié)果及第二檢索結(jié)果得到多個(gè)檢索請(qǐng)求的檢索結(jié)果。
33、第三方面,提供了一種計(jì)算機(jī)設(shè)備,該計(jì)算機(jī)設(shè)備包括存儲(chǔ)器和多種不同類型的處理器,存儲(chǔ)器用于存儲(chǔ)一組計(jì)算機(jī)指令;當(dāng)處理器執(zhí)行所述一組計(jì)算機(jī)指令時(shí),執(zhí)行第一方面或第一方面任一種可能實(shí)現(xiàn)方式中的檢索方法的操作步驟。
34、第四方面,提供了一種數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)處理系統(tǒng)包括客戶端和多個(gè)計(jì)算機(jī)設(shè)備,客戶端用于向計(jì)算機(jī)設(shè)備發(fā)送檢索請(qǐng)求,計(jì)算機(jī)設(shè)備用于執(zhí)行第一方面或第一方面任一種可能實(shí)現(xiàn)方式中的檢索方法的操作步驟,實(shí)現(xiàn)對(duì)多個(gè)檢索請(qǐng)求的檢索。
35、第五方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括:計(jì)算機(jī)軟件指令;當(dāng)計(jì)算機(jī)軟件指令在計(jì)算機(jī)設(shè)備中運(yùn)行時(shí),使得計(jì)算機(jī)設(shè)備執(zhí)行如第一方面或第一方面任意一種可能的實(shí)現(xiàn)方式中所述方法的操作步驟。
36、第六方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行如第一方面或第一方面任意一種可能的實(shí)現(xiàn)方式中所述方法的操作步驟。
37、第二方面至第六方面中任一種設(shè)計(jì)方式所帶來的技術(shù)效果可參見第一方面或不同設(shè)計(jì)方式所帶來的技術(shù)效果,此處不再贅述。
38、本技術(shù)在上述各方面提供的實(shí)現(xiàn)方式的基礎(chǔ)上,還可以進(jìn)一步組合以提供更多實(shí)現(xiàn)方式。