ciot Dr. Ram Sriharsha, VP of Engineering la Pinecone - Seria de interviuri - Unite.AI
Conectează-te cu noi

interviuri

Dr. Ram Sriharsha, VP of Engineering la Pinecone – Seria de interviuri

mm

Publicat

 on

Dr. Ram Sriharsha, este VP de Inginerie și R&D la Pinecone.

Înainte de a se alătura Pinecone, Ram a avut roluri de VP la Yahoo, Databricks și Splunk. La Yahoo, a fost atât inginer principal de software, cât și apoi cercetător; la Databricks, a fost responsabilul de produs și inginerie pentru platforma unificată de analiză pentru genomică; și, în cei trei ani petrecuți la Splunk, a jucat mai multe roluri, inclusiv principalul om de știință, VP Inginerie și Distinguished Engineer.

pinecone este o bază de date vectorială complet gestionată, care facilitează adăugarea de căutare vectorială la aplicațiile de producție. Acesta combină biblioteci de căutare vectorială, capabilități precum filtrarea și infrastructura distribuită pentru a oferi performanță și fiabilitate ridicate la orice scară.

Ce te-a atras inițial către învățarea automată?

Statisticile dimensionale înalte, teoria învățării și subiecte de genul acesta m-au atras către învățarea automată. Ele sunt bine definite din punct de vedere matematic, pot fi raționate și au câteva perspective fundamentale de oferit despre ceea ce înseamnă învățarea și cum să conceapă algoritmi care pot învăța eficient.

Anterior ați fost vicepreședinte de inginerie la Splunk, o platformă de date care ajută la transformarea datelor în acțiune pentru observabilitate, IT, securitate și multe altele. Care au fost câteva dintre concluziile tale cheie din această experiență?

Nu mi-am dat seama până când am ajuns la Splunk cât de diverse sunt cazurile de utilizare în căutarea întreprinderilor: oamenii folosesc Splunk pentru analize de jurnal, observabilitate și analiză de securitate printre nenumărate alte cazuri de utilizare. Și ceea ce este comun pentru multe dintre aceste cazuri de utilizare este ideea de a detecta evenimente similare sau evenimente foarte diferite (sau anormale) în date nestructurate. Aceasta se dovedește a fi o problemă grea, iar mijloacele tradiționale de căutare prin astfel de date nu sunt foarte scalabile. În timpul petrecut la Splunk, am inițiat cercetări în jurul acestor domenii cu privire la modul în care am putea folosi învățarea automată (și învățarea profundă) pentru extragerea jurnalelor, analiza securității etc. Prin această muncă, am ajuns să realizez că încorporarea vectorilor și căutarea vectorului ar ajunge să fie o primitivă fundamentală pentru noile abordări ale acestor domenii.

Ne puteți descrie ce este căutarea vectorială?

În căutarea tradițională (cunoscută și ca căutare prin cuvinte cheie), căutați potriviri de cuvinte cheie între o interogare și documente (acestea ar putea fi tweet-uri, documente web, documente juridice, ce aveți). Pentru a face acest lucru, împărțiți interogarea în simboluri, preluați documentele care conțin simbolul dat și îmbinați și clasificați pentru a determina cele mai relevante documente pentru o anumită interogare.

Desigur, principala problemă este că, pentru a obține rezultate relevante, interogarea dvs. trebuie să aibă potriviri de cuvinte cheie în document. O problemă clasică a căutării tradiționale este: dacă căutați „pop” veți potrivi „muzică pop”, dar nu veți potrivi „soda”, etc. deoarece nu există o suprapunere de cuvinte cheie între „pop” și documentele care conțin „soda”, chiar dacă știm că, în mod colocvial, în multe zone din SUA, „pop” înseamnă la fel ca „soda”.

În căutarea vectorială, începeți prin a converti atât interogările, cât și documentele într-un vector într-un spațiu dimensional mare. Acest lucru se face de obicei prin trecerea textului printr-un model de învățare profundă, cum ar fi LLM-urile OpenAI sau alte modele lingvistice. Ceea ce obțineți ca rezultat este o matrice de numere în virgulă mobilă care poate fi considerată ca un vector într-un spațiu dimensional înalt.

Ideea de bază este că vectorii din apropiere din acest spațiu de dimensiuni mari sunt, de asemenea, similari din punct de vedere semantic. Revenind la exemplul nostru de „sodă” și „pop”, dacă modelul este antrenat pe corpus potrivit, este probabil să considere „pop” și „soda” similare din punct de vedere semantic și, prin urmare, înglobările corespunzătoare vor fi apropiate una de cealaltă în spațiul de încorporare. Dacă acesta este cazul, atunci recuperarea documentelor din apropiere pentru o anumită interogare devine problema căutării celor mai apropiați vecini ai vectorului de interogare corespunzător în acest spațiu dimensional înalt.

Ați putea descrie ce este baza de date vectorială și cum permite construirea de aplicații de căutare vectorială de înaltă performanță?

O bază de date vectorială stochează, indexează și gestionează aceste înglobări (sau vectori). Principalele provocări pe care le rezolvă o bază de date vectorială sunt:

  • Construirea unui index de căutare eficient peste vectori pentru a răspunde la interogările vecinului cel mai apropiat
  • Construirea de indici auxiliari eficienți și structuri de date pentru a sprijini filtrarea interogărilor. De exemplu, să presupunem că doriți să căutați doar pe un subset al corpusului, ar trebui să puteți utiliza indexul de căutare existent fără a fi nevoie să-l reconstruiți

Sprijină actualizări eficiente și păstrează atât datele, cât și indexul de căutare proaspete, consecvente, durabile etc.

Care sunt diferitele tipuri de algoritmi de învățare automată care sunt utilizați la Pinecone?

În general, lucrăm la algoritmi aproximativi de căutare a celui mai apropiat vecin și dezvoltăm noi algoritmi pentru actualizarea eficientă, interogarea și tratarea în alt mod cu cantități mari de date într-un mod cât mai rentabil posibil.

De asemenea, lucrăm la algoritmi care combină recuperarea densă și rară pentru o relevanță îmbunătățită a căutării.

 Care sunt unele dintre provocările din spatele construirii căutării scalabile?

Deși căutarea aproximativă a celui mai apropiat vecin a fost cercetată de zeci de ani, credem că mai sunt multe de descoperit.

În special, atunci când vine vorba de proiectarea unei căutări la scară largă a vecinului cel mai apropiat care este rentabilă, în efectuarea de filtrare eficientă la scară sau în proiectarea algoritmilor care acceptă actualizări de volum mare și, în general, indici noi, sunt toate probleme provocatoare astăzi.

Care sunt unele dintre diferitele tipuri de cazuri de utilizare pentru care poate fi utilizată această tehnologie?

Spectrul de cazuri de utilizare pentru bazele de date vectoriale crește pe zi ce trece. Pe lângă utilizările sale în căutarea semantică, vedem că este folosit și în căutarea imaginilor, regăsirea imaginilor, AI generativă, analiza de securitate etc.

Care este viziunea ta pentru viitorul căutării?

Cred că viitorul căutării va fi condus de AI și nu cred că acest lucru este foarte departe. În acel viitor, mă aștept ca bazele de date vectoriale să fie o primitivă de bază. Ne place să ne gândim la bazele de date vectoriale ca la memoria pe termen lung (sau la baza de cunoștințe externe) a AI.

Mulțumim pentru interviul minunat, cititorii care doresc să afle mai multe ar trebui să viziteze pinecone.

Un partener fondator al unit.AI și un membru al Consiliul Tehnologic Forbes, Antoine este un futurist care este pasionat de viitorul AI și al roboticii.

El este, de asemenea, fondatorul Securities.io, un site web care se concentrează pe investițiile în tehnologie disruptivă.