HyperAIHyperAI

Command Palette

Search for a command to run...

Accélérer la Conversion Texte-vers-SQL sur Vanna avec NVIDIA NIM pour des Analyses Plus Rapides

La génération de requêtes inefficaces à partir d'entrées en langage naturel peut considérablement ralentir le processus de prise de décision. Cela amène souvent les analystes et les utilisateurs professionnels à dépendre des équipes de données, ce qui retarde l'obtention d'insights et réduit l'agilité. La technologie Text-to-SQL change cette dynamique en permettant aux utilisateurs d'interroger des bases de données structurées directement en langage naturel. Ce procédé est particulièrement utile lorsqu'on déploie un modèle spécifique à un domaine pour des industries spécialisées. Cependant, l'utilisation à grande échelle de ces modèles pour des charges de travail analytiques présente des défis en termes de latence et de performances. Dans ce tutoriel, nous montrons comment optimiser la solution text-to-SQL de Vanna en utilisant les microservices NVIDIA NIM, qui fournissent des endpoints optimisés pour les modèles d'IA génératifs. La solution text-to-SQL open-source de Vanna est déjà adoptée par de nombreuses organisations en raison de sa flexibilité, de sa sécurité et de son adaptabilité. Vous apprendrez comment : Télécharger et prétraiter le jeu de données Steam. Initialiser Vanna avec NVIDIA NIM et NeMo Retriever. Créer et peupler une base de données SQLite. Entraîner Vanna avec des données. Générer des requêtes SQL. 1. Télécharger et prétraiter le jeu de données Steam Pour suivre ce tutoriel, clonez le dépôt situé à /NVIDIA/GenerativeAIExamples et ouvrez le notebook Vanna_with_NVIDIA dans la section communauté. Les étapes de prétraitement sont inspirées d'un excellent notebook Kaggle et se trouvent dans la section « Data Preparation » du notebook Vanna with NVIDIA. Les principales étapes de prétraitement incluent : Téléchargement des jeux de données Steam de Kaggle. Nettoyage et transformation des données pour une utilisation optimale dans les requêtes analytiques. À la fin de ce processus, vous obtiendrez trois fichiers CSV : games.csv : contient des métadonnées générales sur les jeux. categories.csv : contient les catégories associées à chaque jeu. tags.csv : contient les étiquettes et leur fréquence associative pour chaque jeu. 2. Initialiser Vanna avec NVIDIA NIM et NeMo Retriever Pour initialiser une instance Vanna, vous avez besoin d'une connexion à une base de données vectorielle, d'un embedder et d'un endpoint de modèle linguistique (LLM). Nous utilisons la base de données vectorielle Milvus qui dispose de capacités d'accélération GPU, ainsi que le modèle d'embedding NeMo (llama-3.2-nv-embedqa-1b-v2) et le microservice Llama 3.1 70B NIM d'NVIDIA. Les microservices NIM permettent d'exécuter votre modèle d'inférence sur l'infrastructure accélérée NVIDIA, offrant des temps de réponse plus rapides et une meilleure efficacité budgétaire pour les déploiements en production. NVIDIA NIM, inclus dans la licence logicielle NVIDIA AI Enterprise, peut être exécuté n'importe où, ce qui vous donne le contrôle total sur vos personnalisations et votre propriété intellectuelle (IP). Consultez la documentation NVIDIA NIM pour obtenir des instructions de configuration sur les endpoints NIM. Figure 1. Pipeline Vanna accéléré par NVIDIA Dans les sections suivantes, nous expliquons l'initialisation de Vanna avec des composants accélérés par NVIDIA. 3. Créer et peupler la base de données SQLite Pour créer et peupler une base de données SQLite, vous pouvez utiliser le code Python suivant : ```python import sqlite3 import pandas as pd Spécifiez le chemin vers la base de données SQLite sqlite_path = 'steam_data.db' Connectez-vous à la base de données SQLite sql_connect = sqlite3.connect(sqlite_path) c = sql_connect.cursor() Créez les tables init_sqls = """ CREATE TABLE IF NOT EXISTS games ( app_id INTEGER PRIMARY KEY, name TEXT, release_date TEXT, price REAL, short_description TEXT, positive INTEGER, negative INTEGER, min_owners INTEGER, max_owners INTEGER, hltb_single REAL ); CREATE TABLE IF NOT EXISTS categories ( app_id INTEGER, categories TEXT, FOREIGN KEY (app_id) REFERENCES games(app_id) ); CREATE TABLE IF NOT EXISTS tags ( app_id INTEGER, tags TEXT, tag_frequencies TEXT, FOREIGN KEY (app_id) REFERENCES games(app_id) ); """ for sql in init_sqls.split(";"): c.execute(sql) Lisez les fichiers CSV games_df = pd.read_csv('processed_dataset/games.csv') categories_df = pd.read_csv('processed_dataset/categories.csv') tags_df = pd.read_csv('processed_dataset/tags.csv') Insérez les données dans les tables games_df.to_sql('games', sql_connect, if_exists='append', index=False) categories_df.to_sql('categories', sql_connect, if_exists='append', index=False) tags_df.to_sql('tags', sql_connect, if_exists='append', index=False) sql_connect.commit() ``` 4. Entraîner avec des données Vanna fonctionne mieux lorsque elle dispose de contexte sur les données interrogées et la terminologie spécifique à l'entreprise. Pour cela, vous devez entraîner le modèle avec des exemples de requêtes et leurs traductions SQL correspondantes. Cela aidera Vanna à comprendre la structure de vos données et le vocabulaire utilisé au sein de votre organisation. 5. Générer des requêtes SQL Une fois que vous avez configuré Vanna avec NVIDIA NIM et chargé des données d'entraînement, vous êtes prêt à générer des requêtes SQL à partir de questions posées en langage naturel. Les microservices NVIDIA NIM optimisent la performance de l'inférence, rendant les requêtes plus rapides et plus précises. Conclusion Ce tutoriel vous a montré comment accélérer l'inférence text-to-SQL sur Vanna en utilisant NVIDIA NIM. Grâce à une structure de base de données propre, une source de données réelle et un endpoint d'inférence optimisé, le système est bien positionné pour offrir des analyses plus réactives à partir des requêtes des utilisateurs. Pour aller plus loin : Expérimentez avec différents ensembles de données d'entraînement pour améliorer davantage la génération de SQL. Consultez la documentation détaillée sur NVIDIA NIM et Vanna pour explorer davantage les possibilités d'optimisation. Participez à la communauté Vanna et NVIDIA pour partager vos expériences et recevoir des retours constructifs.

Liens associés