Skip to main content

PilotANN: Hibrīda CPU-GPU sistēma grafu balstītai ANNS meklēšanai

Jauna pieeja vektoru meklēšanai ar CPU un GPU integrāciju

Approximate Nearest Neighbor Search (ANNS) ir būtiska vektoru meklēšanas tehnika, kas efektīvi identificē līdzīgus elementus augstdimensiju vektoru telpās. Tradicionāli ANNS ir kalpojis kā atlases sistēmu un ieteikumu algoritmu pamats, taču tā nespēj sekot līdzi modernām Transformer arhitektūrām, kas izmanto augstākas dimensijas un lielākus datu apjomus. Atšķirībā no dziļā mācīšanās sistēmām, kuras var horizontāli mērogot to bezstāvokļa dēļ, ANNS paliek centralizēta, radot nopietnas veiktspējas problēmas vienas mašīnas ierobežojumu dēļ. Pētījumi ar 100 miljonu datu kopām parāda, ka pat modernākās CPU implementācijas, piemēram, Hierarchical Navigable Small World (HNSW) algoritms, nespēj uzturēt pietiekamu veiktspēju, palielinoties vektoru dimensijām.

Līdz šim liela mēroga ANNS pētījumi ir izpētījuši divus optimizācijas virzienus: indeksa struktūras uzlabošanu un aparatūras paātrināšanu. Inverted MultiIndex (IMI) uzlaboja telpas sadalīšanu, izmantojot multi-codebook kvantizāciju, savukārt PQFastScan uzlaboja veiktspēju ar SIMD un kešatmiņas optimizācijām. DiskANN un SPANN ieviesa diska balstītu indeksēšanu miljardu mēroga datu kopām, risinot atmiņas hierarhijas izaicinājumus. SONG un CAGRA sasniedza iespaidīgus ātrumus, izmantojot GPU paralelizāciju, taču tās joprojām ierobežo GPU atmiņas ietilpība. BANG apstrādāja miljardu mēroga datus, izmantojot hibrīdu CPU-GPU pieeju, taču trūka kritiskas CPU salīdzinājumu analīzes. Šīs metodes bieži upurē saderību, precizitāti vai prasa specializētu aparatūru.

Pētnieki no Honkongas Ķīnas universitātes, Centre for Perceptual and Interactive Intelligence un Huawei Technologies Theory Lab ir izstrādājuši PilotANN – hibrīdu CPU-GPU sistēmu, kas veiksmīgi pārvar esošo ANNS risinājumu ierobežojumus. PilotANN risina galveno problēmu: CPU balstītām implementācijām trūkst skaitļošanas jaudas, savukārt GPU risinājumi ierobežoti ar atmiņas ietilpību. Tā izmanto gan CPU pieejamo RAM atmiņu, gan GPU paralelo apstrādes jaudu. Turklāt tā ieviesa trīs posmu grafu pārlūkošanas procesu: GPU paātrinātu apakšgrafu pārlūkošanu ar dimensiju samazinātiem vektoriem, CPU precizēšanu un galīgo meklēšanu ar pilnajiem vektoriem.

PilotANN pilnībā pārveido vektoru meklēšanas procesu, ieviešot “sadalītas datu apstrādes” paradigmu. Tā samazina datu pārvietošanu starp apstrādes posmiem, nevis seko tradicionālajam “datu pārvietošanas” modelim. Sistēma sastāv no trim posmiem: GPU pilotēšana ar apakšgrafu un dimensiju samazinātiem vektoriem, atlikumu precizēšana ar pilniem vektoriem un galīgā pārlūkošana ar pilnu grafiku. Risinājums ir ekonomiski izdevīgs, prasot tikai vienu GPU, vienlaikus efektīvi mērogoties gan dimensiju, gan grafu sarežģītības ziņā. Datu pārsūtīšanas pieskaitāmās izmaksas tiek samazinātas līdz minimumam – tikai sākotnējā vaicājuma vektora pārsūtīšanai uz GPU un nelielam kandidātu kopumam, kas atgriežas uz CPU.

Eksperimentālie rezultāti parāda PilotANN priekšrocības dažādās liela mēroga datu kopās. 96-dimensiju DEEP datu kopā tas sasniedz 3.9 reizes lielāku caurlaidi salīdzinājumā ar HNSW-CPU bāzes līniju, bet augstāku dimensiju datu kopās – pat 5.1–5.4 reizes. PilotANN rāda iespaidīgus uzlabojumus pat izaicinošajā T2I datu kopā, neskatoties uz to, ka sistēma nav speciāli optimizēta šim benchmarkam. Turklāt tas nodrošina ievērojamu izmaksu efektivitāti, izmantojot dārgāku aparatūru. Kamēr GPU platforma maksā 2.81 USD/stundā, salīdzinot ar CPU tikai risinājumu par 1.69 USD/stundā, PilotANN sasniedz 2.3 reizes lielāku izmaksu efektivitāti DEEP datu kopai un 3.0–3.2 reizes T2I, WIKI un LAION datu kopām, mērot caurlaidi uz vienu iztērēto dolāru.

Noslēgumā pētnieki ir izveidojuši PilotANN – jaunu grafiku balstītu ANNS pieeju, kas efektīvi izmanto CPU un GPU resursus. Tā pārspēj esošās CPU balstītās metodes, inteliģenti sadalot top-k meklēšanu vairākos CPU-GPU posmos un ieviešot efektīvu sākumpunktu izvēli. Tas demokratizē augstas veiktspējas tuvāko kaimiņu meklēšanu, sasniedzot konkurētspējīgus rezultātus ar vienu GPU, padarot šīs iespējas pieejamas pētniekiem un organizācijām ar ierobežotiem resursiem. Atšķirībā no alternatīviem risinājumiem, kas prasa dārgas GPU, PilotANN ļauj efektīvi izvietot ANNS uz parastām konfigurācijām, saglabājot meklēšanas precizitāti.


Plašākai informācijai apskatiet pētījumu un GitHub lapu. Visu atzinību par šo pētījumu izpildītājiem. Sekojiet mums arī Twitter un pievienojieties mūsu 85k+ ML kopienai.

https://www.marktechpost.com/

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *