La mise en œuvre d'une architecture de données moderne fournit une méthode évolutive pour intégrer des données provenant de sources disparates. En organisant les données par domaines d'activité plutôt que par infrastructure, chaque domaine peut choisir des outils adaptés à ses besoins. Les organisations peuvent maximiser la valeur de leur architecture de données moderne avec des solutions d'IA génératives tout en innovant en permanence.
Les fonctionnalités de langage naturel permettent aux utilisateurs non techniques d'interroger des données via un anglais conversationnel plutôt qu'un langage SQL complexe. Cependant, pour en tirer pleinement parti, il faut surmonter certains défis. Les modèles d'IA et de langage doivent identifier les sources de données appropriées, générer des requêtes SQL efficaces et produire des réponses cohérentes avec des résultats intégrés à grande échelle. Ils ont également besoin d'une interface utilisateur pour les questions en langage naturel.
Dans l'ensemble, la mise en œuvre d'une architecture de données moderne et de techniques d'IA génératives avec AWS est une approche prometteuse pour glaner et diffuser des informations clés à partir de données diverses et volumineuses à l'échelle de l'entreprise. La dernière offre d'IA générative d'AWS est Socle amazonien, qui est un service entièrement géré et le moyen le plus simple de créer et de mettre à l'échelle des applications d'IA génératives avec des modèles de base. AWS propose également des modèles de base via Amazon SageMaker JumpStart as Amazon Sage Maker points de terminaison. La combinaison de grands modèles de langage (LLM), y compris la facilité d'intégration qu'offre Amazon Bedrock, et une infrastructure de données évolutive et orientée domaine positionne cela comme une méthode intelligente d'exploitation des informations abondantes contenues dans diverses bases de données d'analyse et lacs de données.
Dans cet article, nous présentons un scénario dans lequel une entreprise a déployé une architecture de données moderne avec des données résidant sur plusieurs bases de données et API telles que des données juridiques sur Service de stockage simple Amazon (Amazon S3), ressources humaines sur Service de base de données relationnelle Amazon (Amazon RDS), ventes et marketing sur Redshift d'Amazon, des données de marché financier sur une solution d'entrepôt de données tierce sur Flocon, et les données produit sous forme d'API. Cette mise en œuvre vise à améliorer la productivité des analystes commerciaux, des propriétaires de produits et des experts du domaine d'activité de l'entreprise. Tout cela grâce à l'utilisation de l'IA générative dans cette architecture de maillage de domaine, qui permet à l'entreprise d'atteindre ses objectifs commerciaux plus efficacement. Cette solution a la possibilité d'inclure les LLM de JumpStart en tant que point de terminaison SageMaker ainsi que des modèles tiers. Nous fournissons aux utilisateurs de l'entreprise un moyen de poser des questions factuelles sans avoir une connaissance sous-jacente des canaux de données, en éliminant ainsi les complexités de l'écriture de requêtes SQL simples à complexes.
Vue d'ensemble de la solution
Une architecture de données moderne sur AWS applique l'intelligence artificielle et le traitement du langage naturel pour interroger plusieurs bases de données d'analyse. En utilisant des services tels qu'Amazon Redshift, Amazon RDS, Snowflake, Amazone Athénaet une Colle AWS, il crée une solution évolutive pour intégrer des données provenant de diverses sources. En utilisant LangChaîne, une bibliothèque puissante pour travailler avec les LLM, y compris les modèles de base d'Amazon Bedrock et JumpStart dans Amazon SageMakerStudio Notebooks, un système est construit où les utilisateurs peuvent poser des questions commerciales en anglais naturel et recevoir des réponses avec des données tirées des bases de données pertinentes.
Le diagramme suivant illustre l'architecture.
L'architecture hybride utilise plusieurs bases de données et LLM, avec des modèles de base d'Amazon Bedrock et JumpStart pour l'identification des sources de données, la génération SQL et la génération de texte avec des résultats.
Le schéma suivant illustre les étapes spécifiques du flux de travail pour notre solution.
Les étapes sont les suivantes :
- Un utilisateur professionnel fournit une invite de question en anglais.
- Un robot d'exploration AWS Glue est programmé pour s'exécuter à intervalles fréquents pour extraire les métadonnées des bases de données et créer des définitions de table dans le Catalogue de données AWS Glue. Le catalogue de données est entré dans la séquence de chaîne 1 (voir le schéma précédent).
- LangChain, un outil pour travailler avec les LLM et les invites, est utilisé dans les blocs-notes Studio. LangChain nécessite la définition d'un LLM. Dans le cadre de la séquence de chaîne 1, l'invite et les métadonnées du catalogue de données sont transmises à un LLM, hébergé sur un point de terminaison SageMaker, pour identifier la base de données et la table pertinentes à l'aide de LangChain.
- L'invite et la base de données et la table identifiées sont transmises à la séquence de chaîne 2.
- LangChain établit une connexion à la base de données et exécute la requête SQL pour obtenir les résultats.
- Les résultats sont transmis au LLM pour générer une réponse en anglais avec les données.
- L'utilisateur reçoit une réponse en anglais à son invite, interrogeant les données de différentes bases de données.
Les sections suivantes expliquent certaines des étapes clés avec le code associé. Pour approfondir la solution et le code pour toutes les étapes présentées ici, reportez-vous au GitHub repo. Le schéma suivant montre la séquence des étapes suivies :
Pré-requis
Vous pouvez utiliser toutes les bases de données compatibles avec SQLAlchemy pour générer des réponses des LLM et de LangChain. Cependant, ces bases de données doivent avoir leurs métadonnées enregistrées avec le catalogue de données AWS Glue. De plus, vous devrez avoir accès aux LLM via JumpStart ou des clés API.
Connectez-vous aux bases de données à l'aide de SQLAlchemy
LangChain utilise SQLAlchemy pour se connecter aux bases de données SQL. Nous initialisons la fonction SQLDatabase de LangChain en créant un moteur et en établissant une connexion pour chaque source de données. Voici un exemple de connexion à un Édition compatible Amazon Aurora MySQL base de données sans serveur et inclure uniquement la table des employés :
Ensuite, nous créons des invites utilisées par Chain Sequence 1 pour identifier la base de données et le nom de la table en fonction de la question de l'utilisateur.
Générer des modèles d'invites dynamiques
Nous utilisons le catalogue de données AWS Glue, qui est conçu pour stocker et gérer les informations de métadonnées, pour identifier la source de données pour une requête utilisateur et créer des invites pour la séquence de chaîne 1, comme détaillé dans les étapes suivantes :
- Nous construisons un catalogue de données en explorant les métadonnées de plusieurs sources de données à l'aide du Connexion jdbc utilisé dans la démonstration.
- Avec la bibliothèque Boto3, nous construisons une vue consolidée du catalogue de données à partir de plusieurs sources de données. Voici un exemple sur la façon d'obtenir les métadonnées de la table des employés à partir du catalogue de données pour la base de données Aurora MySQL :
Un catalogue de données consolidé contient des détails sur la source de données, tels que le schéma, les noms de table et les noms de colonne. Voici un exemple de la sortie du catalogue de données consolidé :
- Nous passons le catalogue de données consolidé au modèle d'invite et définissons les invites utilisées par LangChain :
Séquence de chaîne 1 : Détecter les métadonnées source pour la requête de l'utilisateur à l'aide de LangChain et d'un LLM
Nous transmettons le modèle d'invite généré à l'étape précédente à l'invite, ainsi que la requête de l'utilisateur au modèle LangChain, pour trouver la meilleure source de données pour répondre à la question. LangChain utilise le modèle LLM de notre choix pour détecter les métadonnées source.
Utilisez le code suivant pour utiliser un LLM de JumpStart ou de modèles tiers :
Le texte généré contient des informations telles que la base de données et les noms de table sur lesquels la requête de l'utilisateur est exécutée. Par exemple, pour la requête utilisateur "Nommez tous les employés avec une date de naissance ce mois-ci", generated_text
a les informations database == rdsmysql
et les database.table == rdsmysql.employees
.
Ensuite, nous transmettons les détails du domaine des ressources humaines, de la base de données Aurora MySQL et de la table des employés à la séquence de chaîne 2.
Séquence de chaîne 2 : Récupérer les réponses des sources de données pour répondre à la requête de l'utilisateur
Ensuite, nous exécutons la chaîne de base de données SQL de LangChain pour convertir le texte en SQL et exécutons implicitement le SQL généré sur la base de données pour récupérer les résultats de la base de données dans un langage simple et lisible.
Nous commençons par définir un modèle d'invite qui demande au LLM de générer du SQL dans un dialecte syntaxiquement correct, puis de l'exécuter sur la base de données :
Enfin, nous transmettons le LLM, la connexion à la base de données et l'invite à la chaîne de base de données SQL et exécutons la requête SQL :
Par exemple, pour la requête utilisateur "Nommez tous les employés avec une date de naissance ce mois-ci", la réponse est la suivante :
Nettoyer
Après avoir exécuté l'architecture de données moderne avec l'IA générative, assurez-vous de nettoyer toutes les ressources qui ne seront pas utilisées. Arrêtez et supprimez les bases de données utilisées (Amazon Redshift, Amazon RDS, Snowflake). De plus, supprimez les données dans Amazon S3 et arrêtez toutes les instances de bloc-notes Studio pour ne pas encourir de frais supplémentaires. Si vous avez utilisé JumpStart pour déployer un LLM en tant que point de terminaison en temps réel SageMaker, supprimez le point de terminaison via la console SageMaker ou Studio.
Conclusion
Dans cet article, nous avons intégré une architecture de données moderne avec une IA générative et des LLM au sein de SageMaker. Cette solution utilise divers modèles de base de texte à texte de JumpStart ainsi que des modèles tiers. Cette approche hybride identifie les sources de données, écrit des requêtes SQL et génère des réponses avec les résultats des requêtes. Il utilise Amazon Redshift, Amazon RDS, Snowflake et LLM. Pour améliorer la solution, vous pouvez ajouter plus de bases de données, une interface utilisateur pour les requêtes en anglais, une ingénierie rapide et des outils de données. Cela pourrait devenir un moyen intelligent et unifié d'obtenir des informations à partir de plusieurs magasins de données. Pour approfondir la solution et le code présenté dans cet article, consultez le GitHub repo . Reportez-vous également à Socle amazonien pour les cas d'utilisation sur l'IA générative, les modèles de base et les grands modèles de langage.
Appendice
Exemples d'invites
Domaine | Base de données/API | Prompt | SQL (Généré par LLM) | Sortie |
Ventes & Marketing | Amazon RedShift | Combien y a-t-il de ventes de billets ? | SELECT COUNT(*) AS total_sales FROM tickit.sales; |
There are 172,456 ticket sales. |
Ventes & Marketing | Amazon RedShift | Quelle était la commission totale sur les ventes de billets en 2008 ? | SELECT SUM(commission) AS total_commission FROM tickit.sales WHERE EXTRACT(YEAR FROM saletime) = 2008 |
The total commission for ticket sales in the year 2008 was $16,614,814.65. |
Légal | S3 | Combien de fraudes se sont produites en 2023 ? | SELECT count(*) FROM claims WHERE extract(year from write_time) = 2023 AND fraud = 1; |
There were 164 fraud claims in 2023. |
Légal | S3 | Combien de polices ont été réclamées cette année? | SELECT count(*) FROM claims; |
There were 5000 claims made this year. |
Ressources Humaines | Amazon Aurora MySQL | Nommez tous les employés avec une date de naissance ce mois-ci | SELECT * FROM employees WHERE MONTH(birth_date) = MONTH(CURRENT_DATE()); |
The employees with birthdays this month are: Christian Koblick Tzvetan Zielinski Kazuhito Cappelletti Yinghua Dredge |
Ressources Humaines | Amazon Aurora MySQL | Combien d'employés ont été embauchés avant 1990? | SELECT COUNT(*) AS 'Number of employees hired before 1990' FROM employees WHERE hire_date < '1990-01-01' |
29 employees were hired before 1990. |
Finance et investissements | Flocon | Quelle action a le mieux et le moins bien performé en mai 2013 ? | SELECT name, MAX(close) AS max_close, MIN(close) AS min_close FROM all_stocks_5yr WHERE date BETWEEN '2013-05-01' AND '2013-05-31' GROUP BY name ORDER BY max_close DESC, min_close ASC |
The stock that performed the best in May 2013 was AnySock1 (ASTOCK1) with a maximum closing price of $842.50. The stock that performed the worst was AnySock2 (ASTOCK2) with a minimum closing price of $3.22. |
Finance et investissements | Flocon | Quel est le volume moyen des actions échangées en juillet 2013 ? | SELECT AVG(volume) AS average_volume FROM all_stocks_5yr WHERE date BETWEEN '2013-07-01' AND '2013-07-31' |
The average volume of stocks traded in July 2013 was 4,374,177 |
Produit – Météo | API | Quel temps fait-il en ce moment à New York en degrés Fahrenheit ? |
À propos des auteurs
Navneet Tuteja est spécialiste des données chez Amazon Web Services. Avant de rejoindre AWS, Navneet a travaillé en tant que facilitateur pour des organisations cherchant à moderniser leurs architectures de données et à mettre en œuvre des solutions complètes d'IA/ML. Elle est titulaire d'un diplôme d'ingénieur de l'Université Thapar, ainsi que d'une maîtrise en statistiques de l'Université Texas A&M.
Sovik Kumar Nath est un architecte de solution AI/ML avec AWS. Il possède une vaste expérience dans la conception de solutions d'apprentissage automatique et d'analyse commerciale de bout en bout dans les domaines de la finance, des opérations, du marketing, de la santé, de la gestion de la chaîne d'approvisionnement et de l'IdO. Sovik a publié des articles et détient un brevet sur la surveillance des modèles ML. Il est titulaire d'un double master de l'Université de Floride du Sud, de l'Université de Fribourg, en Suisse, et d'un baccalauréat de l'Institut indien de technologie de Kharagpur. En dehors du travail, Sovik aime voyager, faire des promenades en ferry et regarder des films.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Financement EVM. Interface unifiée pour la finance décentralisée. Accéder ici.
- Groupe de médias quantiques. IR/PR amplifié. Accéder ici.
- PlatoAiStream. Intelligence des données Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/reinventing-the-data-experience-use-generative-ai-and-modern-data-architecture-to-unlock-insights/
- :possède
- :est
- :ne pas
- :où
- $3
- $UP
- 1
- 100
- 11
- 12
- 13
- 16
- 2008
- 2013
- 2023
- 22
- 32
- 50
- 5000
- 7
- 8
- 9
- a
- abondant
- accès
- atteindre
- atteint
- ajouter
- ajout
- En outre
- à opposer à
- AI
- AI / ML
- vise
- Tous
- permettre
- le long de
- aussi
- Amazon
- Amazon RDS
- Redshift d'Amazon
- Amazon Web Services
- an
- analytique
- et les
- répondre
- réponses
- tous
- api
- CLÉS API
- Apis
- applications
- une approche
- approprié
- architecture
- SONT
- sur notre blog
- artificiel
- intelligence artificielle
- AS
- associé
- At
- Aurora
- moyen
- AWS
- Colle AWS
- basé
- BE
- devenez
- before
- ci-dessous
- avantages.
- LES MEILLEURS
- jusqu'à XNUMX fois
- construire
- construit
- la performance des entreprises
- by
- CAN
- capacités
- cas
- catalogue
- chaîne
- globaux
- Voies
- des charges
- vérifier
- le choix
- Selectionnez
- Ville
- revendiqué
- prétentions
- Fermer
- fermeture
- code
- COHÉRENT
- Colonne
- Colonnes
- combinaison
- commission
- Société
- compatible
- complexe
- complexités
- complet
- NOUS CONTACTER
- connexion
- Console
- contiennent
- contient
- continuellement
- de la conversation
- convertir
- correct
- Correspondant
- pourriez
- chenilles
- engendrent
- crée des
- La création
- données
- infrastructure de données
- Base de données
- bases de données
- Date
- profond
- défini
- définir
- définitions
- Degré
- déployer
- déployé
- un
- conception
- détaillé
- détails
- différent
- disparate
- plusieurs
- domaine
- domaines
- double
- down
- tiré
- Dynamic
- chacun
- facilité
- plus facile
- Efficace
- efficacement
- non plus
- intégré
- employés
- permet
- end-to-end
- Endpoint
- Moteur
- ENGINEERING
- Anglais
- de renforcer
- Entreprise
- établit
- établissement
- exemple
- expansif
- d'experience
- de santé
- Expliquer
- les
- Une vaste expérience
- extrait
- Facilitateur
- finance
- la traduction de documents financiers
- Marché financier
- Trouvez
- Prénom
- Floride
- suivi
- Abonnement
- suit
- Pour
- Fondation
- fraude
- fréquent
- De
- plein
- d’étiquettes électroniques entièrement
- fonction
- plus
- générer
- généré
- génère
- génération
- génératif
- IA générative
- obtenez
- Donner
- donné
- arrivé
- Vous avez
- ayant
- he
- la médecine
- Tenue
- ici
- détient
- organisé
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- humain
- Ressources Humaines
- Hybride
- Identification
- identifié
- identifie
- identifier
- if
- illustre
- Mettre en oeuvre
- la mise en oeuvre
- la mise en œuvre
- améliorer
- in
- comprendre
- Y compris
- Indian
- d'information
- Infrastructure
- innover
- contribution
- idées.
- plutôt ;
- Institut
- intégrer
- des services
- l'intégration
- Intelligence
- Intelligent
- Interfaces
- développement
- IOT
- IT
- SES
- joindre
- jpg
- Juillet
- ACTIVITES
- clés
- spécialisées
- langue
- gros
- Nouveautés
- apprentissage
- Légal
- Bibliothèque
- comme
- LLM
- Style
- click
- machine learning
- LES PLANTES
- a prendre une
- gérer
- gérés
- gestion
- de nombreuses
- Marché
- Données du marché
- Stratégie
- maîtrise
- Maximisez
- maximales
- Mai..
- signifier
- moyenne
- engrener
- Métadonnées
- méthode
- minimum
- ML
- modèle
- numériques jumeaux (digital twin models)
- Villas Modernes
- moderniser
- Stack monitoring
- Mois
- PLUS
- Films
- plusieurs
- must
- mysql
- prénom
- noms
- Nature
- Traitement du langage naturel
- Besoin
- Besoins
- Nouveauté
- New York
- New York City
- non technique
- cahier
- maintenant
- nombre
- objectifs
- of
- offrant
- Offres Speciales
- on
- uniquement
- Opérations
- Option
- or
- organisations
- l'organisation
- nos
- ande
- sortie
- au contrôle
- propriétaires
- partie
- pass
- passé
- brevet
- effectué
- Platon
- Intelligence des données Platon
- PlatonDonnées
- politiques
- positions
- Post
- solide
- précédent
- prix
- traitement
- produire
- Produit
- productivité
- prometteur
- fournir
- fournit
- publié
- requêtes
- question
- fréquemment posées
- plutôt
- en temps réel
- réalisation
- vraiment
- recevoir
- reçoit
- inscrit
- pertinent
- a besoin
- Resources
- réponse
- réponses
- Résultats
- retourner
- bon
- Courir
- sagemaker
- vente
- Épargnez
- évolutive
- Escaliers intérieurs
- scénario
- prévu
- les sections
- sur le lien
- recherche
- Séquence
- Sans serveur
- service
- Services
- elle
- vitrine
- montré
- Spectacles
- arrêter
- étapes
- sur mesure
- Solutions
- quelques
- Quelqu'un
- Identifier
- Sources
- Région Sud
- Sud de la Floride
- spécialiste
- groupe de neurones
- Commencer
- statistiques
- étapes
- Étapes
- stock
- Actions
- Arrêter
- storage
- Boutique
- STORES
- studio
- tel
- Combinaison
- la quantité
- chaîne d'approvisionnement
- gestion de la chaîne logistique
- Suisse
- combustion propre
- table
- prise
- techniques
- Technologie
- modèle
- Texas
- que
- qui
- Le
- les informations
- La Source
- leur
- puis
- Là.
- ainsi
- Ces
- l'ont
- des tiers.
- données de tiers
- this
- cette année
- Avec
- billet
- la vente de billets
- à
- outil
- les outils
- Total
- échangés
- Voyages
- ui
- sous-jacent
- unifiée
- université
- ouvrir
- utilisé
- d'utiliser
- Utilisateur
- Interface utilisateur
- utilisateurs
- Usages
- en utilisant
- utilisé
- Plus-value
- divers
- Voir
- le volume
- était
- personne(s) regarde(nt) cette fiche produit
- Façon..
- we
- Météo
- web
- services Web
- WELL
- ont été
- qui
- tout en
- sera
- comprenant
- dans les
- sans
- activités principales
- travaillé
- workflow
- de travail
- pire
- écriture
- an
- york
- Vous n'avez
- Votre
- zéphyrnet