Chroma (également connu sous le nom de ChromaDB) est un système d'infrastructure de données open source conçu pour les applications construites avec de grands modèles de langage. Il fonctionne comme une base de données d'embeddings, permettant aux développeurs de stocker, gérer et rechercher des représentations vectorielles de données, ce qui est une exigence fondamentale pour les flux de travail modernes de l'intelligence artificielle tels que la génération augmentée par récupération. Le système fournit une interface légère et conviviale pour les développeurs afin d'intégrer la recherche vectorielle dans les pipelines d'IA, souvent utilisée en parallèle avec des frameworks pour construire des applications de IA générative.
Basé à San Francisco, Chroma a été lancé en 2023 et a rapidement attiré du capital-risque. En avril 2023, l'entreprise a annoncé avoir levé 18 millions de dollars américains en financement de démarrage, reflétant l'intérêt croissant pour l'infrastructure de données pour l'IA. Le projet est maintenu en tant que logiciel open source, permettant une large contribution et adoption par la communauté.
Recherche vectorielle et embeddings
La fonction principale de Chroma est de servir de réseau de neurones // base de données vectorielle qui gère le stockage et la récupération des embeddings. Dans le contexte de l'apprentissage automatique, les embeddings sont des représentations numériques de données telles que du texte, des images ou de l'audio, produites par des modèles comme les grands modèles de langage. Chroma indexe ces embeddings et prend en charge la recherche de similarité rapide, permettant des opérations comme la réponse à des questions ou la recommandation en trouvant les vecteurs les plus proches dans un espace multidimensionnel. Cette approche est courante dans les tâches de traitement du langage naturel, où la similarité sémantique remplace la correspondance par mots-clés.
La base de données est conçue pour être légère et facile à configurer, offrant à la fois des backends de stockage en mémoire et persistants. Les développeurs peuvent la interroger à l'aide d'une API simple, s'intégrant avec des frameworks d'IA populaires et les API de modèles OpenAI ou Anthropic. Chroma prend également en charge le filtrage par métadonnées, permettant de restreindre les résultats de recherche par attributs personnalisés.
Intégration avec les grands modèles de langage
Chroma est fréquemment utilisé dans la pile de génération augmentée par récupération (RAG), une technique qui combine un grand modèle de langage avec une base de données vectorielle pour récupérer des documents pertinents avant de générer une réponse. Dans un pipeline RAG, une requête d'entrée est convertie en embedding, Chroma récupère les points de données les plus similaires, et le modèle les utilise comme contexte. Cela réduit l'Hallucination (AI), en s'appuyant sur des données réelles.
Ce flux de travail a été implémenté dans des études académiques sur l'intelligence artificielle, en particulier dans des expériences impliquant des architectures Transformer (architecture). La conception s'aligne avec les pratiques d'entreprises comme Google DeepMind et Cerebras, bien que Chroma lui-même soit un outil indépendant conçu pour une intégration facile dans de nombreux environnements.
Architecture technique
Le cœur est construit en Python, permettant une utilisation directe dans les flux de travail de science des données et de apprentissage automatique. Un index vectoriel est maintenu en mémoire pour un calcul rapide des plus proches voisins, ainsi qu'une couche de stockage persistant. Chroma n'inclut pas de modèle d'exécution pour générer des embeddings ; il prend plutôt en charge plusieurs fonctions d'embedding, des plus simples aux définies par l'utilisateur, afin de pouvoir être utilisé avec n'importe quel modèle.
Les développeurs peuvent exécuter Chroma localement pour le prototypage ou le déployer sur Amazon Web Services et d'autres infrastructures cloud pour la production. Il est conçu avec un souci de performance et de consommation minimale de ressources, ce qui le rend adapté aux applications sur des appareils périphériques ou dans des environnements de type robot de poche, et il fonctionne en parallèle avec d'autres plateformes telles que Oracle Cloud Infrastructure et Google Cloud de manière équivalente.
Utilisation dans le domaine académique et la recherche
Plusieurs projets de recherche en intelligence artificielle, en particulier dans le domaine de la réponse à des questions à forte intensité de connaissances et de la récupération d'informations, ont adopté Chroma dans leurs piles techniques. Sa nature open source permet la reproductibilité, car les chercheurs peuvent facilement configurer des bases de données vectorielles pour leurs ensembles de test. Par exemple, dans certaines études utilisant des grands modèles de langage sur des corpus comme des articles scientifiques, Chroma fournit l'étape de récupération avant que le modèle de génération ne produise la sortie. Cela a été observé dans des travaux sur l'amélioration des systèmes de réseaux de neurones pour un accès efficace aux connaissances, et dans des comparaisons avec d'autres implémentations RAG.
Le logiciel est également utilisé comme banc d'essai pour explorer de nouvelles méthodes de gestion des données pour l'IA, car il permet une itération rapide avec une configuration minimale par rapport aux bases de données traditionnelles.
Communauté et industrie
Chroma a gagné en popularité auprès des développeurs créant des solutions d'IA générative, en raison de sa facilité d'intégration avec les frameworks d'IA modernes. L'équipe offre un support commercial et des pivots cloud, mais le code open source reste une partie centrale de sa valeur. Il fournit une API standard qui a été utilisée pour construire des assistants basés sur le chat, y compris pour Amazon AI et sous des variantes matérielles contraintes.
Avec l'accent croissant mis sur la récupération efficace dans les applications d'intelligence artificielle, Chroma se positionne comme un ingrédient essentiel pour construire ce que l'on appelle souvent la couche de base de données IA, aux côtés d'outils similaires comme ceux utilisés par SambaNova ou le calcul distribué en attente au siège.