Générer et gérer des incorporations pour les charges de travail de base de données SQL
Après avoir conçu la façon dont les embeddings représentent vos données, vous devez les générer et les conserver synchronisées au fur et à mesure que les données changent.
SQL Server fournit des fonctions IA intégrées pour générer des incorporations à partir de texte stockés dans des colonnes de base de données. La génération d’intégrations ne constitue généralement pas une opération unique. Lorsque les données sources changent, les incorporations doivent peut-être être régénérées afin qu’elles continuent de refléter l’état actuel des données.
Génération d’incorporations avec SQL
SQL Server fournit la AI_GENERATE_EMBEDDINGS fonction permettant de générer des incorporations directement à partir du texte stocké dans les colonnes de base de données. Cette fonction utilise un modèle externe pour convertir du texte en vecteur qui peut être stocké et comparé ultérieurement.
Un modèle courant consiste à générer des incorporations pendant une charge initiale ou dans le cadre d’un processus de traitement par lots. Les vecteurs résultants sont stockés en même temps que les données sources ou dans une table associée afin qu’ils puissent être interrogés efficacement.
L’exemple suivant montre un modèle simple de bout en bout, de la définition de table à la génération d’incorporation.
Tout d’abord, créez une table qui stocke à la fois le texte source et son incorporation.
CREATE TABLE dbo.documents
(
id INT PRIMARY KEY,
description NVARCHAR(MAX),
embedding VECTOR(1536)
);
Ensuite, générez des incorporations à partir du texte et stockez-les dans le tableau.
UPDATE dbo.documents
SET embedding = AI_GENERATE_EMBEDDINGS(description USE MODEL my_embedding_model);
Dans cet exemple, la valeur de chaque ligne description est envoyée au modèle d'incorporation. La fonction retourne un vecteur, qui est stocké dans la embedding colonne. Ces vecteurs stockés peuvent être interrogés ou comparés ultérieurement sans les régénérer. Vous pouvez inclure une logique supplémentaire pour gérer la segmentation ou le filtrage en fonction de votre conception d’incorporation.
La génération d’intégration décide de la façon dont les vecteurs sont créés. Les stratégies de maintenance déterminent quand ces vecteurs doivent être actualisés.
Comprendre la maintenance de l’intégration
La maintenance de l'intégration conserve les encodages stockés alignés avec les changements des données sous-jacentes. Lorsque des valeurs de texte sont insérées, mises à jour ou supprimées, les incorporations correspondantes peuvent ne plus refléter le contenu actuel.
Différentes approches de maintenance peuvent être utilisées en fonction de la fréquence à laquelle les données changent, de la rapidité de mise à jour des incorporations et de l’emplacement d’exécution de la génération d’incorporation.
Choisir une méthode de maintenance d’intégration
Les incorporations doivent rester alignées avec le texte source à mesure que les données changent. Plusieurs options peuvent être utilisées pour détecter les modifications et décider quand des incorporations doivent être régénérées. Ces options diffèrent dans l’endroit où le travail se produit et la rapidité des modifications reflétées.
Déclencheurs de table
Les déclencheurs s’exécutent automatiquement lorsque les lignes sont insérées ou mises à jour. Pour la maintenance des embeddings, un déclencheur peut marquer les lignes qui nécessitent de nouveaux embeddings ou lancer la régénération immédiatement. Cette approche reflète rapidement les modifications, mais ajoute du travail aux opérations d’écriture.Suivi des modifications
Change Tracking enregistre qu’une ligne a changé depuis un point donné dans le temps. Un processus en arrière-plan peut utiliser ces informations pour identifier les lignes qui ont besoin de leurs incorporations actualisées et les traiter par lots. Cette approche équilibre la latence et les performances.Capture des données de changement (CDC)
CDC enregistre des informations détaillées sur les modifications de données, notamment les valeurs avant et après. La maintenance de l’incorporation peut utiliser des tables CDC pour identifier les valeurs de texte modifiées et régénérer les incorporations de manière asynchrone. Cette approche convient aux charges de travail à volume élevé.Azure Functions avec liaison de déclencheur SQL
Azure Functions peut réagir aux modifications de base de données à l’aide de liaisons de déclencheur SQL. Cette fonctionnalité permet à la génération d’incorporation de s’exécuter en dehors du moteur de base de données tout en répondant aux modifications de données. Cette approche réduit la charge de travail sur la base de données et peut être mise à l’échelle de manière indépendante.Azure Logic Apps
Logic Apps peut orchestrer les mises à jour incorporées dans le cadre d’un flux de travail. Par exemple, une application logique peut vérifier régulièrement les lignes modifiées et appeler un service d’incorporation, en coordonnant les mises à jour avec d’autres systèmes. Cette approche est à faible code et s’intègre bien avec d’autres services Azure.Modifier le streaming d’événements
Le flux d’événements de modification (CES) achemine les changements DML directement vers Azure Event Hubs en quasi-temps réel. Les systèmes en aval peuvent consommer ces événements et régénérer des incorporations à mesure que des modifications se produisent sans ajouter de travail aux transactions de base de données. Cette approche dissocie la génération d'embedding de la base de données et prend en charge plusieurs consommateurs traitant le même flux de changements.Microsoft Foundry
Microsoft Foundry peut être utilisé pour gérer et évaluer les modèles qui génèrent des incorporations. Dans un flux de travail de maintenance, Foundry prend généralement en charge la sélection de modèles ou l’hébergement, tandis qu’un autre processus gère la détection des modifications et les mises à jour de base de données. Cette approche centralise la gestion des modèles tandis que la création d'incorporations se produit en réponse aux changements de données.
Choisir une approche de maintenance appropriée
Il n’existe pas de méthode unique correcte pour maintenir les embeddings. La bonne approche dépend de facteurs tels que le volume de données, la fréquence de mise à jour, les exigences de latence et l’emplacement où la génération d’incorporation s’inscrit dans la solution globale.
Certaines solutions privilégient les mises à jour immédiates, tandis que d’autres hiérarchisent le traitement par lots ou externe. La compréhension de ces compromis vous aide à choisir une stratégie de maintenance qui correspond à votre application SQL.
Points clés à prendre
La génération d’incorporations avec AI_GENERATE_EMBEDDINGS n’est que la première étape. À mesure que les données sources changent, les vecteurs stockés peuvent tomber hors de synchronisation. Vous avez donc besoin d’une stratégie de maintenance. Les options vont des déclencheurs et du suivi des modifications pour les mises à jour étroitement couplées à la capture des données modifiées, à la diffusion en continu des événements de modification et à Azure Functions pour les approches asynchrones ou découplées. Le bon choix dépend de votre volume de données, des exigences de latence et de l’emplacement où la génération d’incorporation s’adapte à votre architecture globale.