Interviuri
Dr. Ram Sriharsha, VP de Inginerie la Pinecone – Seria de Interviuri

Dr. Ram Sriharsha este VP de Inginerie și Cercetare 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 software principal, cât și cercetător științific; la Databricks, a fost liderul de produs și inginerie pentru platforma de analize unificate pentru genomica; și, în cei trei ani petrecuți la Splunk, a avut multiple roluri, inclusiv științifician principal, VP de Inginerie și Inginer distins.
Pinecone este o bază de date vectorială complet gestionată care face ușor adăugarea căutării vectoriale la aplicații de producție. Combina librăriile de căutare vectorială, capacitățile cum ar fi filtrarea și infrastructura distribuită pentru a oferi performanță ridicată și fiabilitate la orice scară.
Ce v-a atras inițial către învățarea automată?
Statistica de înaltă dimensiune, teoria învățării și subiecte de acest gen m-au atras către învățarea automată. Acestea sunt bine definite din punct de vedere matematic, pot fi raționalizate și oferă câteva perspective fundamentale despre ceea ce înseamnă învățarea și cum se pot proiecta 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țiuni pentru Observabilitate, IT, Securitate și multe altele. Care au fost câteva dintre principalele concluzii pe care le-ați tras din această experiență?
Nu realizasem până când am ajuns la Splunk cât de diverse sunt cazurile de utilizare în căutarea întreprinderilor: oamenii folosesc Splunk pentru analiza jurnalelor, observabilitate și analiza securității printre multe alte cazuri de utilizare. Și ceea ce este comun pentru multe dintre aceste cazuri de utilizare este ideea de detectare a evenimentelor similare sau foarte disimilare (sau anomale) în datele nestructurate. Acesta se dovedește a fi un problemă dificilă și mijloacele tradiționale de căutare prin astfel de date nu sunt foarte scalabile. În timpul meu la Splunk, am inițiat cercetări în jurul acestor domenii despre cum am putea folosi învățarea automată (și învățarea profundă) pentru mineritul de jurnale, analiza securității, etc. Prin această muncă, am ajuns să realizez că încorporarea vectorială și căutarea vectorială vor deveni o primitivă fundamentală pentru abordări noi în aceste domenii.
Ne puteți descrie ce este căutarea vectorială?
În căutarea tradițională (cunoscută și sub numele de căutare pe cuvinte cheie), căutați corespondențe de cuvinte cheie între o interogare și documente (acestea pot fi tweet-uri, documente web, documente legale, etc.). Faceți acest lucru prin împărțirea interogării în token-urile sale, recuperarea documentelor care conțin token-ul dat și combinarea și ierarhizarea pentru a determina documentele cele mai relevante pentru o anumită interogare.
Problema principală, desigur, este că pentru a obține rezultate relevante, interogarea dvs. trebuie să aibă corespondențe de cuvinte cheie în document. O problemă clasică cu căutarea tradițională este: dacă căutați “pop”, veți corespunde “muzică pop”, dar nu veți corespunde “sifon”, etc., deoarece nu există suprapunere de cuvinte cheie între “pop” și documente care conțin “sifon”, chiar dacă știm că, în mod colocvial, în multe zone din SUA, “pop” înseamnă același lucru ca “sifon”.
În căutarea vectorială, începeți prin convertirea atât a interogărilor, cât și a documentelor într-un vector într-un spațiu de înaltă dimensiune. 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 de limbaj. Ceea ce obțineți ca rezultat este o matrice de numere cu virgulă mobilă care poate fi considerată un vector într-un spațiu de înaltă dimensiune.
Idea de bază este că vectorii apropiați în acest spațiu de înaltă dimensiune sunt, de asemenea, semantic similari. Revenind la exemplul nostru cu “sifon” și “pop”, dacă modelul este antrenat pe corpusul potrivit, este probabil să considere “pop” și “sifon” semantic similari și, prin urmare, încorporările corespunzătoare vor fi aproape una de cealaltă în spațiul de încorporare. Dacă acesta este cazul, atunci recuperarea documentelor apropiate pentru o anumită interogare devine problema de căutare a celor mai apropiați vecini ai vectorului de interogare corespunzător în acest spațiu de înaltă dimensiune.
Ne puteți 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 încorporă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ări de cel mai apropiat vecin
- Construirea unor indici auxiliari și structuri de date eficiente pentru a sprijini filtrarea interogărilor. De exemplu, presupunând că doriți să căutați doar peste o submulțime a corpusului, ar trebui să puteți utiliza indexul de căutare existent fără a fi nevoit să-l reconstruiți
Sprijină actualizări eficiente și menține atât datele, cât și indexul de căutare proaspăt, consistent, durabil, etc.
Care sunt diferitele tipuri de algoritmi de învățare automată care sunt utilizați la Pinecone?
În general, lucrăm la algoritmi de căutare a celui mai apropiat vecin aproximativ și dezvoltăm algoritmi noi pentru actualizarea, interogarea și gestionarea eficientă a cantităților mari de date într-un mod cât mai eficient din punct de vedere al costurilor.
De asemenea, lucrăm la algoritmi care combină recuperarea densă și rară pentru o mai bună relevanță a căutării.
Care sunt unele dintre provocările din spatele construirii unei căutări scalabile?
Deși căutarea celui mai apropiat vecin aproximativ a fost cercetată de decenii, credem că mai există multe de descoperit.
În special, atunci când vine vorba de proiectarea unei căutări a celui mai apropiat vecin la scară largă care să fie eficientă din punct de vedere al costurilor, sau de a proiecta algoritmi care să sprijine filtrarea eficientă la scară largă, sau de a proiecta algoritmi care să sprijine actualizări de volum mare și, în general, indici proaspeți, toate acestea sunt provocări dificile în prezent.
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 cu fiecare zi. În afara utilizării sale în căutarea semantică, o vedem utilizată și în căutarea de imagini, recuperarea de imagini, inteligența artificială generativă, analiza securității, etc.
Care este viziunea dvs. asupra viitorului căutării?
Cred că viitorul căutării va fi condus de inteligența artificială, și nu cred că acest lucru este foarte departe. În acel viitor, aștept ca bazele de date vectoriale să fie o primitivă de bază. Ne place să gândim bazele de date vectoriale ca memoria pe termen lung (sau baza de cunoștințe externe) a inteligenței artificiale.
Mulțumim pentru acest interviu minunat, cititorilor care doresc să afle mai multe despre Pinecone.












