Révolutionner la réponse conversationnelle avec RAGONITE
RAGONITE améliore les réponses aux questions en utilisant SQL et la recherche de texte pour des insights clairs.
Rishiraj Saha Roy, Chris Hinze, Joel Schlotthauer, Farzad Naderi, Viktor Hangya, Andreas Foltyn, Luzian Hahn, Fabian Kuech
― 10 min lire
Table des matières
- Les bases des graphes de connaissances
- L'approche à deux volets
- Qu'est-ce que RAGONITE ?
- Création de la base de données
- Verbalisant le graphe de connaissances
- Le processus de recherche
- Intégration des réponses des deux branches
- Support des LLM ouverts
- Ajouter plus d'infos
- Comment RAGONITE fonctionne en pratique
- Résultats et performances
- L'avenir de RAGONITE
- Conclusion
- Source originale
- Liens de référence
La réponse à des questions en mode conversationnel (ConvQA) est une méthode qui aide les gens à trouver des réponses en posant des questions en langage naturel. Ça marche super bien avec les Graphes de connaissances RDF (KG), qui sont des façons stylées de stocker plein de données pour que ce soit facile à chercher. La méthode habituelle consiste à prendre une question et à la transformer en une sorte de requête appelée SPARQL, qui est faite pour ce genre de données. Mais bon, ça a quelques petits soucis.
Le SPARQL peut être un peu fragile, surtout quand les questions deviennent compliquées. Et il n’est pas vraiment doué pour gérer des questions abstraites non plus. Au lieu de rester juste sur le SPARQL, on a décidé de pimenter les choses avec un nouveau système qui utilise deux approches pour obtenir de meilleurs résultats. On récupère des données d'une base de données qu'on crée à partir du KG, en utilisant des Requêtes SQL, et on cherche aussi des réponses dans le texte qui décrit les faits du KG.
Le truc cool ? Si les premières réponses ne sont pas utiles, le système peut revenir pour prendre un deuxième bol d'infos. Cette configuration permet un flux d'information facile et produit des réponses plus claires. On va expliquer tout ça en détail et montrer comment ça fonctionne en prenant les voitures BMW comme exemple.
Les bases des graphes de connaissances
Les graphes de connaissances stockent des faits d'une manière facile à comprendre. Ils utilisent une structure simple souvent appelée sujet-prédicat-objet (SPO). Ça veut dire que chaque fait ressemble à une petite phrase : quelque chose (sujet) fait quelque chose (prédicat) à quelque chose d'autre (objet).
Par exemple, tu pourrais avoir un fait qui dit "BMW X5 a un prix de 50 000 EUR." Dans ce cas, BMW X5 est le sujet, "a" est le prédicat, et 50 000 EUR est l'objet. Cette structure permet aux gens qui gèrent les données de travailler sans avoir à créer des règles compliquées comme dans les bases de données traditionnelles.
Quand quelqu'un veut poser une question sur les données dans un KG, il utilise généralement SPARQL. Pense à SPARQL comme à un langage spécial pour poser des questions qui correspondent au format du graphe. Mais avec l'arrivée des grands modèles de langage (LLM), des façons plus avancées de convertir le langage courant en SPARQL ont émergé, simplifiant beaucoup le processus.
L'approche à deux volets
Bien que les systèmes ConvQA facilitent la pose de questions, ils rencontrent encore des défis. Souvent, des parties d'une question ne sont pas dites, ce qui rend difficile pour le système de saisir ce que l'utilisateur veut vraiment. Même les meilleurs LLM ont du mal à traduire des questions complexes en requêtes SPARQL.
Pour résoudre ça, on propose un système à deux volets. D'abord, on exécute des requêtes SQL sur une base de données formée à partir du KG pour répondre aux demandes simples. Ensuite, on utilise des recherches textuelles pour traiter les questions moins claires.
La magie se produit pendant le processus où, si les premiers résultats ne sont pas satisfaisants, le système peut automatiquement réessayer, en tirant plus d'infos pour donner une réponse plus claire à l'utilisateur. De cette façon, les utilisateurs peuvent poser des questions de suivi sans perdre le fil de la conversation.
Qu'est-ce que RAGONITE ?
Voici RAGONITE, un système malin conçu pour s'attaquer à tous ces problèmes de manière conviviale. RAGONITE signifie Retrieval Augmented Generation ON ITErative retrieval results. Il a deux branches principales. Une branche exécute des requêtes SQL et l'autre fait de la recherche textuelle basée sur des explications verbales des faits du KG. C'est comme avoir deux assistants, un qui fouille dans la base de données et l'autre qui lit l'encyclopédie.
Par exemple, si quelqu'un demande, "Quel est le temps d'accélération moyen pour atteindre 100 km/h pour les modèles sport de BMW ?" RAGONITE traite la question, génère une requête SQL et recherche des passages de texte qui pourraient fournir un contexte et des détails. Si les réponses ne sont pas satisfaisantes, il peut retourner pour obtenir plus d'infos.
Création de la base de données
Pour que RAGONITE puisse faire sa magie, il doit créer une base de données à partir du KG. Ça commence par convertir le KG d'un format (NTriples) à un autre plus facile à utiliser (Turtle). Chaque fait est regroupé par sujet, et des entités uniques sont identifiées pour former des tables.
On utilise le sujet comme clé primaire, ce qui nous permet de suivre facilement les infos liées, comme garder ton arbre généalogique organisé. Quand de nouvelles données arrivent, elles sont ajoutées à la bonne table, maintenant tout propre et rangé.
Verbalisant le graphe de connaissances
Certaines questions sont délicates et nécessitent un peu de bon sens. Par exemple, si un utilisateur demande "les points forts innovants du BMW X7", le système doit mieux interpréter ça. Pour y faire face, RAGONITE verbalise les faits du KG en passages de langage naturel.
Ça aide le LLM à comprendre et à répondre à des demandes plus abstraites. Le système utilise des règles simples pour convertir les données en phrases amicales, s'assurant que même les plus petits détails sont captés.
Le processus de recherche
Le processus de récupération dans RAGONITE implique de chercher des réponses dans deux branches. Si la première recherche ne le fait pas, le système peut répéter le processus, comme un chien qui va chercher des bâtons jusqu'à ce qu'il obtienne le bon.
En termes d'étapes, l'utilisateur pose une question, RAGONITE crée une requête SQL explicite par intention, et cherche du texte pertinent. Si le premier essai ne fournit pas une réponse solide, il suggérera une autre tentative. Le LLM utilise ce retour d’information pour peaufiner ses recherches, s'assurant de chercher les bonnes informations.
Intégration des réponses des deux branches
À mesure que les deux branches rassemblent leurs résultats, ils sont combinés par le LLM pour former une réponse cohérente. De cette manière, le système n'a pas à choisir une méthode plutôt qu'une autre. Au lieu de ça, il mélange les idées provenant des résultats SQL et des passages textuels pour présenter une réponse fluide à l'utilisateur.
Cette intégration peut même inclure des citations pour que les utilisateurs sachent d'où vient l'information. C'est comme avoir un guide personnel qui non seulement te dit la réponse mais qui te montre aussi la page exacte dans le livre où il l'a trouvée.
Support des LLM ouverts
RAGONITE est conçu pour fonctionner avec divers LLM, y compris ceux qui peuvent être hébergés localement. Ça le rend flexible et adaptable aux besoins de différents utilisateurs, surtout pour ceux qui se soucient de la sécurité des données. Les déploiements locaux d'LLM ouverts comme Llama-3 sont également pris en charge, offrant un meilleur accès à la technologie.
Ajouter plus d'infos
RAGONITE permet aussi d'insérer du texte supplémentaire dans son système backend. Par exemple, il peut tirer des infos à partir de documents web, élargissant sa base de connaissances au-delà du KG. Ça veut dire que les questions ne doivent pas être limitées au KG uniquement. Si un utilisateur demande quelque chose de plus général, RAGONITE est prêt à fournir ces détails supplémentaires.
Comment RAGONITE fonctionne en pratique
Imagine que tu utilises RAGONITE pour savoir si le BMW X1 est plus haut qu'un coupé. Tu tapes ta question, et le système commence immédiatement à chercher des réponses. Le premier tour pourrait impliquer de vérifier les résultats SQL pour la hauteur du X1, ce qui pourrait donner des infos partielles.
Ensuite, le système pourrait changer de direction et rechercher dans les enregistrements textuels pour voir comment ça se compare aux modèles de coupé. Une fois qu'il a rassemblé suffisamment d'informations, la réponse finale est générée et renvoyée, avec des références.
Ce design permet à la conversation de continuer, permettant aux utilisateurs de poser des questions de suivi sans perdre le fil. C'est comme parler avec un ami bien informé qui est toujours prêt à aider.
Résultats et performances
Quand RAGONITE a été testé, il a montré des performances impressionnantes par rapport à ses pairs. L'approche double a conduit à plus de réponses correctes qu'en utilisant seulement SQL ou la récupération de texte. Bien que les deux méthodes aient leurs points forts, les combiner aboutit à un système plus robuste.
Le système a montré des forces particulières pour traiter des questions complexes que d'autres ont souvent du mal à gérer. Il a mieux géré les requêtes abstraites en utilisant des verbalisation, comblant les lacunes qui se produisent dans les requêtes conventionnelles.
En ce qui concerne la rapidité, RAGONITE était efficace aussi. En moyenne, tout le processus de poser une question et d'obtenir une réponse a pris juste quelques secondes. Ce temps de réponse rapide le rend pratique pour des interactions en temps réel.
L'avenir de RAGONITE
En regardant vers l'avenir, le futur de RAGONITE offre plein de possibilités excitantes. Un des objectifs est d'améliorer encore le système, en intégrant des fonctionnalités qui permettent à chaque partie de RAGONITE d'apprendre de ses erreurs passées et d'améliorer ses réponses.
Un autre objectif est de perfectionner l'intégration des différentes composantes, s'assurant qu'elles fonctionnent ensemble sans accroc. Affiner des parties spécifiques du système peut également conduire à de meilleures performances au fil du temps.
Conclusion
RAGONITE est un système innovant qui combine les méthodes traditionnelles de requête de données avec l'IA conversationnelle moderne. En utilisant à la fois SQL et la récupération de texte, il s'attaque à certains des plus grands défis pour comprendre l'intention des utilisateurs et délivrer des réponses précises.
Il adopte une approche intelligente pour traiter une gamme variée de questions, prouvant qu'il est un outil précieux pour quiconque veut explorer le monde des graphes de connaissances et de l'IA conversationnelle. Avec un tel système à portée de main, poser des questions sur des voitures, ou n'importe quel autre sujet, devient beaucoup moins intimidant et beaucoup plus amusant. Alors la prochaine fois que tu as une question brûlante sur BMW ou quoi que ce soit d'autre, RAGONITE pourrait bien être le copain dont tu as besoin !
Titre: RAGONITE: Iterative Retrieval on Induced Databases and Verbalized RDF for Conversational QA over KGs with RAG
Résumé: Conversational question answering (ConvQA) is a convenient means of searching over RDF knowledge graphs (KGs), where a prevalent approach is to translate natural language questions to SPARQL queries. However, SPARQL has certain shortcomings: (i) it is brittle for complex intents and conversational questions, and (ii) it is not suitable for more abstract needs. Instead, we propose a novel two-pronged system where we fuse: (i) SQL-query results over a database automatically derived from the KG, and (ii) text-search results over verbalizations of KG facts. Our pipeline supports iterative retrieval: when the results of any branch are found to be unsatisfactory, the system can automatically opt for further rounds. We put everything together in a retrieval augmented generation (RAG) setup, where an LLM generates a coherent response from accumulated search results. We demonstrate the superiority of our proposed system over several baselines on a knowledge graph of BMW automobiles.
Auteurs: Rishiraj Saha Roy, Chris Hinze, Joel Schlotthauer, Farzad Naderi, Viktor Hangya, Andreas Foltyn, Luzian Hahn, Fabian Kuech
Dernière mise à jour: Dec 25, 2024
Langue: English
Source URL: https://arxiv.org/abs/2412.17690
Source PDF: https://arxiv.org/pdf/2412.17690
Licence: https://creativecommons.org/licenses/by/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.