Partager via


Qu’est-ce que l’extension azure_local_ai pour Azure Database pour PostgreSQL - Serveur flexible (préversion)

L’extension azure_local_ai pour le serveur flexible Azure Database pour PostgreSQL vous permet d’utiliser des modèles open source inscrits, pré-entraînés déployés localement sur votre serveur Azure Database pour PostgreSQL. Ces modèles peuvent être utilisés pour créer des incorporations de texte qui peuvent fournir un contexte à votre modèle de Génération augmentée de récupération (RAG) lorsque vous créez des applications d’IA générative enrichie.  L’extension azure_local_ai permet à la base de données d’appeler des modèles déployés localement pour créer des incorporations vectorielles à partir de données texte, ce qui simplifie le processus de développement et réduit la latence en supprimant la nécessité d’effectuer des appels d’API plus distants vers des modèles d’incorporation d’IA hébergés en dehors de la limite PostgreSQL. Dans cette version, l’extension déploie un modèle unique, multilingual-e5-small, sur votre instance de serveur flexible Azure Database pour PostgreSQL. D’autres modèles open source tiers peuvent devenir disponibles pour une installation en continu.

Les incorporations locales aident les clients à :

  • Réduire la latence de création d’incorporation.

  • Utiliser des modèles incorporés à un coût prévisible.

  • Conserver les données au sein de leur base de données, ce qui élimine la nécessité de transmettre des données à un point de terminaison distant.

Important

L’extension azure_local_ai est actuellement en préversion. Les modèles d’IA open source de Microsoft pour l’installation via l’extension azure_local_ai sont considérés comme des produits non-Microsoft en vertu des Conditions générales de produit Microsoft. L’utilisation par le client des modèles IA open source est régie par les termes du contrat de licence distincts fournis dans la documentation produit associée à ces modèles mis à disposition via l’extension azure_local_ai. Conditions d’utilisation supplémentaires : Services IA à accès limité (préversions)

Activer l’extension azure_local_ai (préversion)

Avant de pouvoir activer azure_local_ai sur votre instance de serveur flexible Azure Database pour PostgreSQL, vous devez l’ajouter à votre liste d’autorisation, comme décrit dans Comment utiliser les extensions PostgreSQL et vérifier qu’elle a été correctement ajoutée en exécutant l’instruction SQL suivante, SHOW azure.extensions;.

Important

L’hébergement de modèles de langage dans la base de données nécessite une grande empreinte mémoire. Pour prendre en charge cette exigence, azure_local_ai est uniquement pris en charge sur les SKU de machines virtuelles Azure en mémoire optimisée avec 4 vCores au minimum. Aujourd’hui, si vous utilisez une machine virtuelle qui ne répond pas aux exigences minimales, l’extension azure_local_ai n’apparaît pas dans la liste des extensions disponibles dans les Paramètres du serveur. Sélectionnez Paramètres du serveur dans la section Paramètres du menu Ressources dans la page du portail Azure serveur flexible d’Azure Database pour PostgreSQL.

Capture d’écran de la page des paramètres du serveur PostgreSQL.

Recherchez « extensions » ou « azure.extensions »

Capture d’écran des extensions disponibles pour la liste d'autorisation pour Azure Database pour Postgresql - Serveur flexible.

Sélectionnez AZURE_LOCAL_AI dans la liste des extensions.

Capture d’écran de la liste d’autorisation pour l’extension azure_local_ai.

Sélectionnez Enregistrer pour appliquer les modifications et commencer le processus de déploiement de la liste d’autorisation.

Capture d’écran des extensions enregistrées sur la liste d'autorisation pour l’extension azure_local_ai.

Vous pouvez surveiller ce déploiement via l’icône de cloche en haut du portail Azure.

Capture d’écran du statut de déploiement de la liste d’autorisation d’extensions pour l’extension azure_local_ai.

Une fois le déploiement de la liste d’autorisation terminé, vous pouvez poursuivre le processus d’installation.

Remarque

Lorsque vous activez la préversion d’Azure Local AI, le modèle multilingual-e5-small est déployé sur votre instance de serveur flexible Azure Database pour PostgreSQL. La documentation liée fournit les termes du contrat de licence de l’équipe e5. D’autres modèles open source tiers peuvent devenir disponibles pour une installation en continu.

Maintenant, vous pouvez installer l’extension en vous connectant à votre base de données cible et en exécutant la commande CREATE EXTENSION. Vous devez répéter la commande séparément pour chaque base de données dans laquelle vous souhaitez que l’extension soit disponible.

Les extensions de liste sont autorisées sur la base de données à partir du portail Azure - page de Paramètres du serveur.

SHOW azure.extensions;

Créez l’extension dans la base de données.

CREATE EXTENSION azure_local_ai;

L’installation de l’extension azure_local_ai crée le schéma suivant :

  • azure_local_ai : schéma principal dans lequel l’extension crée des tables, des fonctions et tout autre objet lié à SQL dont elle a besoin pour implémenter et exposer ses fonctionnalités.

Important

Il convient d’activer l’extension vectorielle, car elle est nécessaire pour stocker des incorporations de texte dans votre base de données PostgreSQL.

Fonctions fournies par l’extension azure_local_ai

L’extension azure_local_ai fournit un ensemble de fonctions. Ces fonctions vous permettent de créer des incorporations de vecteurs à partir de données de texte, facilitant ainsi le développement d’applications d’IA générative. L’extension offre des fonctions pour créer des incorporations, obtenir des paramètres, etc. En utilisant ces fonctions, vous pouvez simplifier le processus de développement et réduire la latence en éliminant la nécessité d’effectuer des appels d’API distants supplémentaires vers des modèles d’incorporation d’IA hébergés en dehors de la limite PostgreSQL.

schéma Nom Type de données de résultat Types de données d’argument
azure_local_ai create_embeddings TABLE(embedding real[]) model_uri text, inputs text[], batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000
azure_local_ai create_embeddings real[] model_uri text, input text, timeout_ms integer DEFAULT 3600000
azure_local_ai get_setting jsonb keys text[] DEFAULT ARRAY[]::text[], timeout_ms integer DEFAULT 3600000
azure_local_ai get_setting texte key text, timeout_ms integer DEFAULT 3600000
azure_local_ai model_metadata jsonb model_uri text

Ceux-ci peuvent être affichés via la commande PSQL,

\df azure_local_ai.*

azure_local_ai.create_embeddings

L’extension azure_local_ai vous permet de créer et de mettre à jour des incorporations au format scalaire et par lots, en appelant le LLM déployé localement.

azure_local_ai.create_embeddings(model_uri text, input text, batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);
azure_local_ai.create_embeddings(model_uri text, array[inputs [text]], batch_size bigint DEFAULT 128, timeout_ms integer DEFAULT 3600000);

Arguments

model_uri

text : nom du modèle d’incorporation de texte appelé pour créer l’incorporation.

input

text ou text[] Texte unique ou tableau de textes, en fonction de la surcharge de la fonction utilisée, pour laquelle les incorporations sont créées.

batch_size

bigint DEFAULT 128 Nombre d’enregistrements à traiter à la fois (disponible uniquement pour la surcharge de la fonction pour laquelle le paramètre input est de type text[]).

timeout_ms

Délai d’expiration de integer DEFAULT 3600000 en millisecondes après lequel l’opération est arrêtée.

Exemples d’incorporations de création simples :

SELECT azure_local_ai.create_embeddings('model_uri TEXT', 'query: input TEXT');
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', 'query: Vector databases are awesome');
SELECT azure_local_ai.create_embeddings('model_uri TEXT', array['input TEXT', 'input TEXT']);
SELECT azure_local_ai.create_embeddings('multilingual-e5-small:v1', array['Hello', 'World']);

Vérifier la version de l’extension azure_local_ai

SELECT * FROM pg_available_extensions
WHERE NAME ='azure_local_ai';

Configuration d’ONNX Runtime

azure_local_ai.get_setting

Permet d’obtenir les valeurs actuelles des options de configuration.

SELECT azure_local_ai.get_setting(key TEXT)

L’extension azure_local_ai prend en charge l’examen des paramètres de configuration du pool de threads ONNX Runtime dans le service ONNX Runtime. Les modifications ne sont pas autorisées pour le moment. Consultez le réglage des performances d’ONNX Runtime.

Arguments

Clé

Les valeurs valides pour la key sont les suivantes :

  • intra_op_parallelism : définit le nombre total de threads utilisés pour la parallélisation d’un opérateur unique par le pool de threads ONNX Runtime. Par défaut, nous maximisons autant que possible le nombre de threads intra-ops, ce qui améliore considérablement le débit global (tous les processeurs disponibles par défaut).
  • inter_op_parallelism : définit le nombre total de threads utilisés pour le calcul de plusieurs opérateurs en parallèle par le pool de threads ONNX Runtime. Par défaut, nous le définissons sur le nombre minimum de threads possible, à savoir 1. Toute augmentation nuit souvent aux performances en raison des changements de contexte fréquents entre les threads.
  • spin_control : active la rotation du pool de threads ONNX Runtime pour les requêtes. Lorsque cette option est désactivée, la latence augmente en raison de la réduction du nombre de processeurs utilisés. Par défaut, cette option est définie sur true (activée).

Type renvoyé

TEXT représentant la valeur actuelle du paramètre sélectionné.