Si vous êtes un utilisateur fréquent de ChatGPT, vous savez qu'il a tendance à s'égarer dans ce qu'on appelle des hallucinations. Une grande collection de mots statistiquement corrects qui n'ont aucun fondement dans la réalité. Il y a quelques mois, une invite sur l'utilisation d'Apache Cassandra pour les grands modèles de langage (LLM) et LangChain a suscité une réponse curieuse. ChatGPT a signalé que non seulement Cassandra était un bon choix d'outil lors de la création de LLM, OpenAI a utilisé Cassandra avec une bibliothèque Python sous licence MIT qu'ils ont appelée CassIO.
Dans le terrier du lapin, nous sommes allés, et grâce à plus d'incitations, ChatGPT a décrit de nombreux détails sur la façon dont CassIO a été utilisé. Il comprenait même un exemple de code et un site Web. Des recherches ultérieures n'ont trouvé aucune preuve de CassIO en dehors des réponses ChatGPT, mais la graine a été semée. Si cette bibliothèque n'existait pas, elle en avait besoin et nous avons commencé à travailler dessus peu de temps après.
La meilleure hallucination de tous les temps.
Quelle était cette idée géniale que ChatGPT (et, par association, OpenAI) a inspirée ? Une excellente bibliothèque Python permet aux développeurs de faire plus avec moins. DataStax et Anant ont uni leurs forces pour développer
La force de CassIO réside dans son agnosticisme envers des cadres d'IA spécifiques. Il ne se préoccupe pas des détails d'implémentation spécifiques d'interfaces telles que
Un module de mémoire pour les LLM qui utilise Cassandra pour le stockage, qui peut se souvenir des échanges récents dans une interaction de chat, ou même conserver un résumé de toute la conversation passée.
Une fonctionnalité pour mettre en cache les réponses LLM sur Cassandra, économisant ainsi sur la latence et les jetons si possible. Injection automatique de données de Cassandra dans une invite ou dans une conversation LLM plus longue.
Prise en charge de la « partialisation » des invites, laissant certaines entrées non spécifiées pour l'approvisionnement futur.
Injection automatique de données à partir d'un
Ces composants fonctionnent ensemble pour rationaliser le processus d'intégration des données dans les invites et assurer une interaction fluide entre le LLM et la base de données.
L'inclusion de
La combinaison de CassIO et LangChain continue d'étendre et d'affiner ces capacités au fil du temps pour répondre aux besoins en constante évolution de la gestion LLM. L'état de l'art actuel consiste à enchaîner les invites pour obtenir des réponses plus précises des LLM. Dans un article récent décrivant une technique appelée
En tant qu'outil évolutif, CassIO se développe rapidement, avec de nouveaux développements et mises à jour fréquemment ajoutés. Au moment de la rédaction, CassIO prend en charge LangChain, avec LlamaIndex bientôt disponible. L'objectif à long terme de ce projet est de prendre en charge la mémoire à grande échelle pour les agents d'IA autonomes tels que le
Un camp d'entraînement à venir, "
Qui sait comment l'histoire jugera ce moment ? Était-ce une fuite d'informations internes d'OpenAI ? Ou, en pensant un peu plus sombrement, est-ce la première étape de l'IA pour amener les humains à faire ce qu'il veut ? Quoi qu'il en soit, les développeurs disposent désormais d'une bibliothèque simple à utiliser pour exploiter l'échelle quasi infinie de Cassandra lorsqu'ils se lancent dans le monde de l'IA générative.
ChatGPT nous a fait un cadeau, alors qu'allez-vous construire avec ça ? Je vais me plonger dans la recherche de vecteurs dans un prochain webinaire (inscrivez-vous
Par Patrick McFadin, DataStax
Patrick McFadin est co-auteur du livre d'O'Reilly "Managing Cloud Native Data on Kubernetes". Il travaille actuellement chez DataStax dans les relations avec les développeurs et en tant que contributeur au projet Apache Cassandra. Patrick a travaillé en tant qu'évangéliste en chef pour Apache Cassandra (il est également un nouveau committer Cassandra !) et en tant que consultant pour DataStax, où il a passé un bon moment à construire certains des plus grands déploiements en production.