9 points par GN⁺ 2024-07-11 | 1 commentaires | Partager sur WhatsApp
  • Fin 2022, en développant l’infrastructure de Readwise, l’équipe voulait ajouter des recommandations d’articles et une recherche sémantique utilisant des embeddings vectoriels
  • Le coût de la base de données relationnelle était de 5 k$ par mois, mais la recherche vectorielle coûtait plus de 20 k$ par mois, et la fonctionnalité a été abandonnée à cause de ce coût élevé
  • Les moteurs de recherche existants sont coûteux et difficiles à exploiter : avec les progrès du stockage objet, des SSD NVMe, de l’IA et des technologies vectorielles, un nouveau moteur de recherche est nécessaire
  • Les bases de données vectorielles existantes utilisent du stockage en mémoire, ce qui entraîne un coût élevé
    • En exploitant le stockage objet (S3, GCS) et le cache sur SSD, il est possible de réduire fortement les coûts
    • Exemple : le stockage en mémoire coûte 2 $+/Go, contre 0,02 $/Go pour le stockage objet

Conception de turbopuffer

  • Développer un moteur de recherche adapté à l’époque actuelle
  • Atteindre à la fois efficacité économique et performance grâce au stockage objet et à un cache intelligent
  • Capable de traiter des dizaines de milliards de vecteurs et plusieurs millions de tenants
  • Moteur de recherche basé sur le stockage objet
    • Les moteurs de recherche existants utilisent une architecture de disques répliqués héritée des bases de données relationnelles
    • Les moteurs de recherche exigent un débit d’écriture élevé et tolèrent une latence d’écriture plus souple
    • Réduire les coûts tout en conservant les performances grâce au stockage objet et au cache SSD/mémoire
  • Implémentation d’une base de données native pour le stockage objet
    • Construire une base de données pensée nativement autour du stockage objet
    • Offrir une haute fiabilité et une extensibilité illimitée
    • Maintenir une haute disponibilité grâce au multi-tenant et au sharding
  • Cas clients
    • Cursor : éditeur de code IA, gère des dizaines de milliards de vecteurs et a réduit les coûts par 10
    • Suno : fonctionnalité radio
    • Dot : fonctionnalité de mémoire
    • Shapes : fonctionnalité de mémoire

Résumé de GN⁺

  • turbopuffer améliore fortement l’efficacité économique et les performances des moteurs de recherche grâce au stockage objet et à un cache intelligent
  • Le projet vise à résoudre les coûts élevés et la difficulté d’exploitation des moteurs de recherche existants
  • Un nouveau moteur de recherche a été conçu pour suivre l’évolution de l’IA et des technologies vectorielles
  • Les premiers cas clients, comme Cursor, prouvent la réduction des coûts et l’amélioration des performances
  • Parmi les autres projets offrant des fonctions similaires, on trouve ElasticSearch et les Vector DBs

1 commentaires

 
GN⁺ 2024-07-11
Avis Hacker News
  • J’ai déjà travaillé avec Simon, et il maîtrise parfaitement son domaine

    • Nous avons travaillé ensemble sur la recherche chez Shopify et eu de nombreuses discussions sur la stack de recherche idéale
    • Je voudrais un système idéal capable d’exprimer le ranking via une API de recherche dans le cloud, et d’utiliser les mathématiques des dataframes pour appliquer des boosts sur diverses propriétés
  • J’aimerais que Turbopuffer fonctionne comme un dataframe Polars afin de pouvoir exprimer le ranking dans l’API de recherche

    • Je voudrais pouvoir effectuer un premier passage avec les mathématiques des dataframes, puis exécuter un modèle de reranking
  • J’aime aussi beaucoup le design du site web de Fixie.ai

    • Fixie.ai est l’un des clients de Turbopuffer
  • Chez Hetzner, le coût de la RAM est de 200 $/To/mois, soit 18 fois moins cher qu’ailleurs

    • En réduisant la complexité, on peut atteindre l’objectif plus rapidement
  • pg_vector existait déjà avant 2022, et il n’y a pas besoin de stockage in-memory

    • Il est possible d’effectuer une recherche vectorielle sur plus de 100 millions de documents
  • Je me demande s’il est possible de construire, avec Lucene, une approche plaçant des nœuds de cache SSD devant l’object storage

    • J’ai vu des déploiements Elasticsearch à très grande échelle, et ce serait incroyable de pouvoir tout mettre sur S3
  • Cela ressemble à une version source fermée de Quickwit

  • Je me demande s’il existe une solution générique permettant de stocker une grande base de données en lecture seule sur S3 et de l’interroger directement

    • Duckdb peut ouvrir et interroger des fichiers parquet via http, mais cela déclenche beaucoup de petites requêtes
    • Je voudrais un fichier unique et un index pouvant être mis en cache pour gérer des millions d’objets
  • La latence de lecture de ClickHouse est inférieure à 100 ms, et la latence d’écriture inférieure à 1 seconde

    • ClickHouse convient aussi à la journalisation, à l’analyse en temps réel et au RAG
  • Je ne connais pas très bien les bases de données vectorielles, mais je pense qu’elles sont principalement utilisées pour le RAG et d’autres tâches liées à l’IA

    • Il faudrait explorer le sujet plus en profondeur
  • Je pense qu’une approche object storage first est naturellement adaptée au cloud