Dr. Ram Sriharsha est vice-président de l’ingénierie et de la R&D chez Pinecone.
Avant de rejoindre Pinecone, Ram a occupé des postes de vice-président chez Yahoo, Databricks et Splunk. Chez Yahoo, il a été à la fois ingénieur logiciel principal puis chercheur scientifique ; chez Databricks, il était responsable des produits et de l’ingénierie pour la plate-forme d’analyse unifiée pour la génomique ; et, au cours de ses trois années chez Splunk, il a joué plusieurs rôles, dont Sr Principal Scientist, VP Engineering et Distinguished Engineer.
Pinecone est une base de données vectorielle entièrement gérée qui facilite l’ajout de la recherche vectorielle aux applications de production. Il combine des bibliothèques de recherche vectorielle, des fonctionnalités telles que le filtrage et une infrastructure distribuée pour fournir des performances et une fiabilité élevées à n’importe quelle échelle.
Qu’est-ce qui vous a initialement attiré vers l’apprentissage automatique ?
Les statistiques de grande dimension, la théorie de l’apprentissage et des sujets comme ceux-là ont été ce qui a attiré moi à l’apprentissage automatique. Ils sont mathématiquement bien définis, peuvent être raisonnés et ont des idées fondamentales à offrir sur ce que signifie apprendre et comment concevoir des algorithmes capables d’apprendre efficacement.
Auparavant, vous étiez vice-président de l’ingénierie chez Splunk , une plate-forme de données qui aide à transformer les données en action pour l’observabilité, l’informatique, la sécurité et plus encore. Quels ont été certains des principaux enseignements de cette expérience ?
Je n’avais pas réalisé avant d’arriver chez Splunk à quel point les cas d’utilisation dans la recherche d’entreprise sont variés : les gens utilisent Splunk pour l’analyse des journaux, l’observabilité et l’analyse de la sécurité parmi des myriades d’autres cas d’utilisation. Et ce qui est commun à beaucoup de ces cas d’utilisation est l’idée de détecter des événements similaires ou des événements très dissemblables (ou anormaux) dans des données non structurées. Cela s’avère être un problème difficile et les moyens traditionnels de recherche dans ces données ne sont pas très évolutifs. Pendant mon séjour chez Splunk, j’ai lancé des recherches dans ces domaines sur la manière dont nous pourrions utiliser l’apprentissage automatique (et l’apprentissage en profondeur) pour l’extraction de journaux, l’analyse de la sécurité, etc. Grâce à ce travail, j’ai réalisé que les intégrations de vecteurs et la recherche de vecteurs finiraient par être une primitive fondamentale pour de nouvelles approches de ces domaines.
Pourriez-vous nous décrire ce qu’est la recherche vectorielle ?
Dans la recherche traditionnelle (autrement appelée recherche par mot-clé ), vous recherchez des correspondances de mots clés entre une requête et des documents (il peut s’agir de tweets, de documents Web, de documents juridiques, etc.). Pour ce faire, vous divisez votre requête en ses jetons, récupérez les documents qui contiennent le jeton donné et fusionnez et classez pour déterminer les documents les plus pertinents pour une requête donnée.
Le principal problème, bien sûr, est que pour obtenir des résultats pertinents, votre requête doit avoir des correspondances de mots clés dans le document. Un problème classique avec la recherche traditionnelle est le suivant : si vous recherchez”pop”, vous trouverez”musique pop”, mais pas”soda”, etc. car il n’y a pas de chevauchement de mots clés entre”pop”et les documents contenant”soda”, même si nous savons que familièrement dans de nombreuses régions aux États-Unis,”pop”signifie la même chose que”soda”.
Dans la recherche vectorielle, vous commencez par convertir les requêtes et les documents en un vecteur dans une certaine dimension élevée espace. Cela se fait généralement en passant le texte à travers un modèle d’apprentissage en profondeur comme les LLM d’OpenAI ou d’autres modèles de langage. Le résultat obtenu est un tableau de nombres à virgule flottante qui peuvent être considérés comme un vecteur dans un espace de grande dimension.
L’idée centrale est que les vecteurs proches dans cet espace de grande dimension sont également sémantiquement similaires. Pour en revenir à notre exemple de « soda » et « pop », si le modèle est formé sur le bon corpus, il est susceptible de considérer « pop » et « soda » sémantiquement similaires et, par conséquent, les plongements correspondants seront proches l’un de l’autre dans l’espace d’encastrement. Si tel est le cas, alors la récupération de documents proches pour une requête donnée devient le problème de la recherche des voisins les plus proches du vecteur de requête correspondant dans cet espace de grande dimension.
Pourriez-vous décrire ce que le vecteur qu’est-ce qu’une base de données vectorielle et comment permet-elle de créer des applications de recherche vectorielle performantes ?
Une base de données vectorielle stocke, indexe et gère ces incorporations (ou vecteurs). Les principaux défis qu’une base de données vectorielle résout sont :
Créer un index de recherche efficace sur les vecteurs pour répondre aux requêtes du plus proche voisinCréer des index auxiliaires et des structures de données efficaces pour prendre en charge le filtrage des requêtes. Par exemple, supposons que vous souhaitiez rechercher uniquement un sous-ensemble du corpus, vous devriez pouvoir tirer parti de l’index de recherche existant sans avoir à le reconstruire durable, etc.
Quels sont les différents types d’algorithmes d’apprentissage automatique utilisés chez Pinecone ?
Nous travaillons généralement sur des algorithmes de recherche du plus proche voisin approximatif et développer de nouveaux algorithmes pour mettre à jour, interroger et traiter efficacement de grandes quantités de données de la manière la plus rentable possible.
Nous travaillons également sur des algorithmes qui combinent une récupération dense et clairsemée pour une meilleure pertinence de la recherche.
Quels sont certains des défis liés à la création d’une recherche évolutive ?
Bien que la recherche approximative du plus proche voisin fasse l’objet de recherches depuis des décennies, nous pensons qu’il reste encore beaucoup à faire découvert.
En particulier, lorsqu’il s’agit de concevoir à grande échelle le plus proche voisin bor recherche qui est rentable, en effectuant un filtrage efficace à grande échelle, ou en concevant des algorithmes qui prennent en charge des mises à jour à volume élevé et des index généralement frais sont tous des problèmes difficiles aujourd’hui.
Quels sont certains des différents types de cas d’utilisation pour lesquels cette technologie peut être utilisée ?
Le spectre des cas d’utilisation des bases de données vectorielles s’élargit de jour en jour. Outre ses utilisations dans la recherche sémantique, nous le voyons également utilisé dans la recherche d’images, la récupération d’images, l’IA générative, l’analyse de sécurité, etc.
Quelle est votre vision de l’avenir de la recherche ?
Je pense que l’avenir de la recherche sera piloté par l’IA, et je ne pense pas que ce soit très loin. Dans ce futur, je m’attends à ce que les bases de données vectorielles soient une primitive de base. Nous aimons considérer les bases de données vectorielles comme la mémoire à long terme (ou la base de connaissances externe) de l’IA.
Merci pour cette excellente interview, les lecteurs qui souhaitent en savoir plus devraient visiter Pomme de pin.