Wywiady
Dr Ram Sriharsha, wiceprezes ds. inżynierii w Pinecone – seria wywiadów
Dr Ram Sriharsha jest wiceprezesem ds. inżynierii oraz badań i rozwoju w Pinecone.
Przed dołączeniem do Pinecone Ram zajmował stanowiska wiceprezesa w Yahoo, Databricks i Splunk. W Yahoo był zarówno głównym inżynierem oprogramowania, jak i pracownikiem naukowym; w Databricks był kierownikiem ds. produktów i inżynierii ujednoliconej platformy analitycznej dla genomiki; a przez trzy lata pracy w Splunk pełnił wiele ról, w tym starszego głównego naukowca, wiceprezesa ds. inżynierii i wybitnego inżyniera.
szyszka to w pełni zarządzana baza danych wektorów, która ułatwia dodawanie wyszukiwania wektorów do aplikacji produkcyjnych. Łączy w sobie biblioteki wyszukiwania wektorowego, możliwości takie jak filtrowanie i rozproszoną infrastrukturę, aby zapewnić wysoką wydajność i niezawodność w dowolnej skali.
Co początkowo przyciągnęło Cię do uczenia maszynowego?
Statystyki wielkowymiarowe, teoria uczenia się i tego typu tematy przyciągnęły mnie do uczenia maszynowego. Są dobrze zdefiniowane matematycznie, można je uzasadnić i oferują pewne podstawowe spostrzeżenia na temat tego, co oznacza uczenie się i jak projektować algorytmy, które mogą się efektywnie uczyć.
Wcześniej byłeś wiceprezesem ds. inżynierii w Splunk – platformie danych, która pomaga przekształcać dane w działania na rzecz obserwowalności, IT, bezpieczeństwa i nie tylko. Jakie były Twoje najważniejsze wnioski z tego doświadczenia?
Dopóki nie trafiłem do Splunk, nie zdawałem sobie sprawy, jak różnorodne są przypadki użycia w wyszukiwaniu korporacyjnym: ludzie używają Splunk do analizy logów, obserwowalności i analityki bezpieczeństwa wśród niezliczonej liczby innych przypadków użycia. Wspólną cechą wielu tych przypadków użycia jest koncepcja wykrywania podobnych lub bardzo odmiennych (lub nietypowych) zdarzeń w nieustrukturyzowanych danych. Okazuje się to trudnym problemem, a tradycyjne sposoby przeszukiwania takich danych nie są zbyt skalowalne. Podczas mojej pracy w Splunk zainicjowałem badania w tych obszarach, w jaki sposób moglibyśmy wykorzystać uczenie maszynowe (i głębokie uczenie się) do eksploracji logów, analityki bezpieczeństwa itp. Dzięki tej pracy zdałem sobie sprawę, że osadzanie wektorów i wyszukiwanie wektorów staną się fundamentalny prymityw dla nowego podejścia do tych dziedzin.
Czy mógłbyś nam opisać, czym jest wyszukiwanie wektorowe?
W wyszukiwaniu tradycyjnym (inaczej zwanym wyszukiwaniem słów kluczowych) szukasz dopasowań słów kluczowych między zapytaniem a dokumentami (mogą to być tweety, dokumenty internetowe, dokumenty prawne i co tam masz). Aby to zrobić, dzielisz zapytanie na tokeny, pobierasz dokumenty zawierające dany token, a następnie scalasz i oceniasz, aby określić najbardziej odpowiednie dokumenty dla danego zapytania.
Głównym problemem jest oczywiście to, że aby uzyskać trafne wyniki, zapytanie musi zawierać dopasowania słów kluczowych w dokumencie. Klasyczny problem z tradycyjnym wyszukiwaniem polega na tym, że jeśli będziesz szukać „pop”, dopasujesz „muzyka pop”, ale nie „soda” itp., ponieważ słowa kluczowe „pop” nie pokrywają się z dokumentami zawierającymi „soda”, choć wiemy, że potocznie w wielu rejonach USA „pop” oznacza to samo co „soda”.
W wyszukiwaniu wektorowym zaczynasz od konwersji zarówno zapytań, jak i dokumentów na wektor w jakiejś przestrzeni wielowymiarowej. Zwykle odbywa się to poprzez przepuszczanie tekstu przez model głębokiego uczenia się, taki jak LLM OpenAI lub inne modele językowe. W rezultacie otrzymujesz tablicę liczb zmiennoprzecinkowych, które można traktować jako wektor w jakiejś przestrzeni wielowymiarowej.
Podstawową ideą jest to, że pobliskie wektory w tej wielowymiarowej przestrzeni są również semantycznie podobne. Wracając do naszego przykładu „soda” i „pop”, jeśli model zostanie przeszkolony na właściwym korpusie, prawdopodobnie uzna „pop” i „soda” za semantycznie podobne, w związku z czym odpowiadające im osadzenia będą blisko siebie w przestrzeń osadzania. Jeśli tak jest, to odzyskanie pobliskich dokumentów dla danego zapytania staje się problemem poszukiwania najbliższych sąsiadów odpowiedniego wektora zapytania w tej wielowymiarowej przestrzeni.
Czy mógłbyś opisać, czym jest wektorowa baza danych i w jaki sposób umożliwia tworzenie wydajnych aplikacji do wyszukiwania wektorów?
Baza danych wektorów przechowuje, indeksuje i zarządza tymi osadzaniami (lub wektorami). Główne wyzwania, którym rozwiązuje wektorową bazę danych, to:
- Budowanie wydajnego indeksu wyszukiwania na podstawie wektorów w celu odpowiedzi na zapytania dotyczące najbliższego sąsiada
- Budowanie wydajnych indeksów pomocniczych i struktur danych wspierających filtrowanie zapytań. Załóżmy na przykład, że chcesz przeszukać tylko podzbiór korpusu, powinieneś móc wykorzystać istniejący indeks wyszukiwania bez konieczności jego przebudowywania
Wspieraj wydajne aktualizacje i dbaj o to, aby zarówno dane, jak i indeks wyszukiwania były świeże, spójne, trwałe itp.
Jakie są różne typy algorytmów uczenia maszynowego stosowane w Pinecone?
Zwykle pracujemy nad przybliżonymi algorytmami wyszukiwania najbliższego sąsiada i opracowujemy nowe algorytmy w celu wydajnego aktualizowania, wysyłania zapytań i innego przetwarzania dużych ilości danych w możliwie najbardziej opłacalny sposób.
Pracujemy również nad algorytmami, które łączą wyszukiwanie gęste i rzadkie, aby poprawić trafność wyszukiwania.
Jakie wyzwania stoją przed tworzeniem skalowalnych wyszukiwarek?
Chociaż badania nad przybliżonym wyszukiwaniem najbliższego sąsiada prowadzone są od dziesięcioleci, wierzymy, że pozostaje wiele do odkrycia.
W szczególności jeśli chodzi o projektowanie opłacalnego wyszukiwania najbliższych sąsiadów na dużą skalę, przeprowadzanie wydajnego filtrowania na dużą skalę lub projektowanie algorytmów obsługujących aktualizacje na dużą skalę i ogólnie świeże indeksy, stanowią obecnie duże wyzwanie.
W jakich różnych przypadkach można zastosować tę technologię?
Spektrum zastosowań wektorowych baz danych rośnie z dnia na dzień. Oprócz zastosowań w wyszukiwaniu semantycznym widzimy, że jest on również używany w wyszukiwaniu obrazów, wyszukiwaniu obrazów, generatywnej sztucznej inteligencji, analityce bezpieczeństwa itp.
Jaka jest Twoja wizja przyszłości wyszukiwania?
Myślę, że przyszłość wyszukiwania będzie oparta na sztucznej inteligencji i nie sądzę, że jest to bardzo odległe. Spodziewam się, że w tej przyszłości wektorowe bazy danych będą podstawowym prymitywem. Lubimy myśleć o wektorowych bazach danych jako o pamięci długoterminowej (lub zewnętrznej bazie wiedzy) sztucznej inteligencji.
Dziękuję za wspaniały wywiad. Czytelnicy chcący dowiedzieć się więcej powinni odwiedzić nas szyszka.