Entrevistas
Dr. Ram Sriharsha, VP de Ingeniería en Pinecone – Serie de Entrevistas

Dr. Ram Sriharsha, es el VP de Ingeniería y R&D en Pinecone.
Antes de unirse a Pinecone, Ram ocupó puestos de VP en Yahoo, Databricks y Splunk. En Yahoo, fue ingeniero de software principal y luego científico de investigación; en Databricks, fue el líder de producto y ingeniería para la plataforma de análisis unificada de genómica; y, en sus tres años en Splunk, desempeñó múltiples roles, incluyendo Sr Principal Scientist, VP de Ingeniería y Distinguished Engineer.
Pinecone es una base de datos de vectores completamente administrada que facilita la adición de búsqueda de vectores a aplicaciones de producción. Combina bibliotecas de búsqueda de vectores, capacidades como el filtrado y la infraestructura distribuida para proporcionar un alto rendimiento y confiabilidad a cualquier escala.
¿Qué te atrajo inicialmente a la inteligencia artificial?
La estadística de alta dimensionalidad, la teoría del aprendizaje y temas como ese fueron lo que me atrajo a la inteligencia artificial. Están bien definidos matemáticamente, se pueden razonar y ofrecen algunas ideas fundamentales sobre lo que significa el aprendizaje y cómo diseñar algoritmos que puedan aprender de manera eficiente.
Anteriormente, eras Vicepresidente de Ingeniería en Splunk, una plataforma de datos que ayuda a convertir los datos en acción para la Observabilidad, IT, Seguridad y más. ¿Cuáles fueron algunos de tus principales conocimientos adquiridos de esta experiencia?
No me di cuenta hasta que llegué a Splunk de lo diverso que son los casos de uso en la búsqueda empresarial: la gente usa Splunk para análisis de registros, análisis de seguridad y observabilidad, entre muchos otros casos de uso. Y lo que es común a muchos de estos casos de uso es la idea de detectar eventos similares o muy disímiles (o anómalos) en datos no estructurados. Esto resulta ser un problema difícil y los medios tradicionales de búsqueda a través de dichos datos no son muy escalables. Durante mi tiempo en Splunk, inicié investigaciones en torno a estas áreas sobre cómo podríamos usar el aprendizaje automático (y el aprendizaje profundo) para la minería de registros, el análisis de seguridad, etc. A través de ese trabajo, llegué a darme cuenta de que las incrustaciones de vectores y la búsqueda de vectores terminarían siendo una primitiva fundamental para nuevos enfoques en estos dominios.
¿Podrías describir para nosotros qué es la búsqueda de vectores?
En la búsqueda tradicional (también conocida como búsqueda de palabras clave), estás buscando coincidencias de palabras clave entre una consulta y documentos (esto podría ser tweets, documentos web, documentos legales, lo que sea). Para hacer esto, divides tu consulta en tokens, recuperas documentos que contienen el token dado y mezclas y clasificas para determinar los documentos más relevantes para una consulta determinada.
El principal problema, por supuesto, es que para obtener resultados relevantes, tu consulta debe tener coincidencias de palabras clave en el documento. Un problema clásico con la búsqueda tradicional es: si buscas “pop” coincidirás con “música pop”, pero no coincidirás con “refresco”, etc., ya que no hay coincidencia de palabras clave entre “pop” y documentos que contienen “refresco”, aunque sabemos que coloquialmente en muchas áreas de los EE. UU., “pop” significa lo mismo que “refresco”.
En la búsqueda de vectores, comienzas convirtiendo tanto las consultas como los documentos en un vector en algún espacio de alta dimensionalidad. Esto generalmente se hace pasando el texto a través de un modelo de aprendizaje profundo como los LLM de OpenAI u otros modelos de lenguaje. Lo que obtienes como resultado es una matriz de números de punto flotante que se puede considerar como un vector en algún espacio de alta dimensionalidad.
La idea central es que los vectores cercanos en este espacio de alta dimensionalidad también son semánticamente similares. Volviendo a nuestro ejemplo de “refresco” y “pop”, si el modelo se entrena en el corpus correcto, es probable que considere “pop” y “refresco” semánticamente similares y, por lo tanto, las incrustaciones correspondientes estarán cerca una de la otra en el espacio de incrustación. Si eso es el caso, entonces recuperar documentos cercanos para una consulta determinada se convierte en el problema de buscar los vecinos más cercanos del vector de consulta correspondiente en este espacio de alta dimensionalidad.
¿Podrías describir qué es la base de datos de vectores y cómo permite la creación de aplicaciones de búsqueda de vectores de alto rendimiento?
Una base de datos de vectores almacena, indexa y administra estas incrustaciones (o vectores). Los principales desafíos que resuelve una base de datos de vectores son:
- Crear un índice de búsqueda eficiente sobre vectores para responder a consultas de vecinos más cercanos
- Crear índices y estructuras de datos auxiliares eficientes para admitir el filtrado de consultas. Por ejemplo, supongamos que querías buscar solo un subconjunto del corpus, deberías poder aprovechar el índice de búsqueda existente sin tener que volver a crearlo
Soportar actualizaciones eficientes y mantener tanto los datos como el índice de búsqueda frescos, consistentes, duraderos, etc.
¿Cuáles son los diferentes tipos de algoritmos de aprendizaje automático que se utilizan en Pinecone?
Generalmente trabajamos en algoritmos de búsqueda de vecinos más cercanos aproximados y desarrollamos nuevos algoritmos para actualizar, consultar y tratar grandes cantidades de datos de manera lo más rentable posible.
También trabajamos en algoritmos que combinan recuperación densa y dispersa para mejorar la relevancia de la búsqueda.
¿Cuáles son algunos de los desafíos detrás de la creación de una búsqueda escalable?
Aunque la búsqueda de vecinos más cercanos aproximados ha sido investigada durante décadas, creemos que queda mucho por descubrir.
En particular, cuando se trata de diseñar una búsqueda de vecinos más cercanos a gran escala que sea rentable, realizar un filtrado eficiente a gran escala, o diseñar algoritmos que admitan actualizaciones de alto volumen y, en general, índices frescos son problemas desafiantes hoy en día.
¿Cuáles son algunos de los diferentes tipos de casos de uso para los que se puede utilizar esta tecnología?
El espectro de casos de uso para las bases de datos de vectores está creciendo día a día. Aparte de sus usos en la búsqueda semántica, también los vemos utilizados en la búsqueda de imágenes, recuperación de imágenes, inteligencia artificial generativa, análisis de seguridad, etc.
¿Cuál es tu visión para el futuro de la búsqueda?
Creo que el futuro de la búsqueda será impulsado por la IA, y no creo que esto esté muy lejos. En ese futuro, espero que las bases de datos de vectores sean una primitiva fundamental. Nos gustaría pensar en las bases de datos de vectores como la memoria a largo plazo (o la base de conocimiento externa) de la IA.
Gracias por la gran entrevista, los lectores que deseen aprender más pueden visitar Pinecone.












