Entrevistas

Dr. Ram Sriharsha, VP de Engenharia da Pinecone – Série de Entrevistas

mm
Adicione Unite.AI às suas fontes preferidas no Google

Dr. Ram Sriharsha é o VP de Engenharia e Pesquisa e Desenvolvimento da Pinecone.

Antes de se juntar à Pinecone, Ram ocupou cargos de VP no Yahoo, Databricks e Splunk. No Yahoo, ele foi engenheiro de software principal e cientista de pesquisa; no Databricks, ele foi o líder de produto e engenharia para a plataforma de análise unificada de genômica; e, em seus três anos na Splunk, ele desempenhou vários papéis, incluindo cientista sênior, VP de Engenharia e engenheiro distinto.

Pinecone é um banco de dados de vetores totalmente gerenciado que facilita a adição de busca de vetores a aplicações de produção. Ele combina bibliotecas de busca de vetores, capacidades como filtragem e infraestrutura distribuída para fornecer alto desempenho e confiabilidade em qualquer escala.

O que o atraiu inicialmente para a aprendizagem de máquina?

Estatística de alta dimensionalidade, teoria de aprendizado e tópicos como esses foram o que me atraiu para a aprendizagem de máquina. Eles são matematicamente bem definidos, podem ser raciocinados e oferecem insights fundamentais sobre o que significa aprender e como projetar algoritmos que possam aprender de forma eficiente.

Anteriormente, você foi Vice-Presidente de Engenharia da Splunk, uma plataforma de dados que ajuda a transformar dados em ação para Observabilidade, TI, Segurança e mais. Quais foram algumas de suas principais conclusões dessa experiência?

Eu não havia percebido até chegar à Splunk o quão diversificados são os casos de uso de busca empresarial: as pessoas usam a Splunk para análise de logs, observabilidade e análise de segurança, entre muitos outros casos de uso. E o que é comum a muitos desses casos de uso é a ideia de detectar eventos semelhantes ou muito dissimilares (ou anômalos) em dados não estruturados. Isso se revela um problema difícil e os meios tradicionais de busca nesses dados não são muito escaláveis. Durante meu tempo na Splunk, eu iniciei pesquisas sobre essas áreas sobre como podemos usar aprendizagem de máquina (e aprendizagem profunda) para mineração de logs, análise de segurança, etc. Através desse trabalho, eu vim a perceber que embeddings de vetores e busca de vetores acabariam sendo uma primitiva fundamental para novas abordagens desses domínios.

Poderia descrever para nós o que é busca de vetores?

Na busca tradicional (também conhecida como busca de palavras-chave), você está procurando por correspondências de palavras-chave entre uma consulta e documentos (isso pode ser tweets, documentos da web, documentos legais, etc.). Para fazer isso, você divide sua consulta em tokens, recupera documentos que contenham o token dado e mescla e classifica para determinar os documentos mais relevantes para uma consulta dada.

O principal problema, é claro, é que para obter resultados relevantes, sua consulta deve ter correspondências de palavras-chave no documento. Um problema clássico com a busca tradicional é: se você procurar por “pop”, você encontrará “música pop”, mas não encontrará “refrigerante”, etc., pois não há sobreposição de palavras-chave entre “pop” e documentos que contenham “refrigerante”, mesmo sabendo que coloquialmente em muitas áreas dos EUA, “pop” significa o mesmo que “refrigerante”.

Na busca de vetores, você começa convertendo consultas e documentos em um vetor em algum espaço de alta dimensionalidade. Isso geralmente é feito passando o texto por um modelo de aprendizagem profunda como os LLMs da OpenAI ou outros modelos de linguagem. O que você obtém como resultado é uma matriz de números de ponto flutuante que pode ser pensada como um vetor em algum espaço de alta dimensionalidade.

A ideia central é que vetores próximos nesse espaço de alta dimensionalidade também são semanticamente semelhantes. Voltando ao nosso exemplo de “refrigerante” e “pop”, se o modelo for treinado no corpus correto, é provável que considere “pop” e “refrigerante” semanticamente semelhantes e, portanto, os embeddings correspondentes estarão próximos um do outro no espaço de embeddings. Se for esse o caso, então recuperar documentos próximos para uma consulta dada se torna o problema de procurar os vizinhos mais próximos do vetor de consulta correspondente nesse espaço de alta dimensionalidade.

Poderia descrever o que é um banco de dados de vetores e como ele habilita a construção de aplicações de busca de vetores de alto desempenho?

Um banco de dados de vetores armazena, indexa e gerencia esses embeddings (ou vetores). Os principais desafios que um banco de dados de vetores resolve são:

  • Construir um índice de busca eficiente sobre vetores para responder a consultas de vizinhos mais próximos
  • Construir índices auxiliares eficientes e estruturas de dados para suportar filtragem de consultas. Por exemplo, suponha que você queira procurar apenas um subconjunto do corpus, você deve ser capaz de aproveitar o índice de busca existente sem precisar reconstruí-lo

Suportar atualizações eficientes e manter os dados e o índice de busca frescos, consistentes, duráveis, etc.

Quais são os diferentes tipos de algoritmos de aprendizagem de máquina usados na Pinecone?

Nós geralmente trabalhamos em algoritmos de busca de vizinhos mais próximos aproximados e desenvolvemos novos algoritmos para atualizar, consultar e lidar de forma eficiente com grandes quantidades de dados de maneira tão econômica quanto possível.

Nós também trabalhamos em algoritmos que combinam recuperação densa e esparsa para melhorar a relevância da busca.

Quais são alguns dos desafios por trás da construção de busca escalável?

Embora a busca de vizinhos mais próximos aproximados tenha sido pesquisada por décadas, acreditamos que ainda há muito a ser descoberto.

Em particular, quando se trata de projetar busca de vizinhos mais próximos em grande escala que seja econômica, realizar filtragem eficiente em escala, ou projetar algoritmos que suportem atualizações de alto volume e geralmente índices frescos são problemas desafiadores hoje.

Quais são alguns dos diferentes tipos de casos de uso para os quais essa tecnologia pode ser usada?

O espectro de casos de uso para bancos de dados de vetores está crescendo a cada dia. Além de seus usos na busca semântica, também vemos sendo usada na busca de imagens, recuperação de imagens, inteligência artificial gerativa, análise de segurança, etc.

Qual é sua visão para o futuro da busca?

Acho que o futuro da busca será impulsionado por IA, e não acho que isso esteja muito longe. Nesse futuro, espero que os bancos de dados de vetores sejam uma primitiva fundamental. Nós gostamos de pensar nos bancos de dados de vetores como a memória de longo prazo (ou a base de conhecimento externa) da IA.

Obrigado pela grande entrevista, leitores que desejam aprender mais devem visitar Pinecone.

Antoine é um líder visionário e sócio-fundador da Unite.AI, impulsionado por uma paixão inabalável por moldar e promover o futuro da IA e da robótica. Um empreendedor serial, ele acredita que a IA será tão disruptiva para a sociedade quanto a eletricidade, e é frequentemente pego falando sobre o potencial das tecnologias disruptivas e da AGI.

Como um futurista, ele está dedicado a explorar como essas inovações moldarão nosso mundo. Além disso, ele é o fundador da Securities.io, uma plataforma focada em investir em tecnologias de ponta que estão redefinindo o futuro e remodelando setores inteiros.