Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.
Exercice de la possibilité d’utiliser moins de dimensions sur les modèles text-embedding-3. Sur Azure OpenAI, les modèles d’incorporation de texte-3 sont réentraînés sur la technique MRL ( Matryoshka Representation Learning ) qui produit plusieurs représentations vectorielles à différents niveaux de compression. Cette approche produit des recherches plus rapides et réduit les coûts de stockage avec une perte minimale d’informations sémantiques.
Dans Recherche Azure AI, MRL prend en charge les suppléments la quantification scalaire et binaire. Lorsque vous utilisez l’une ou l’autre méthode de quantisation, vous pouvez spécifier une truncationDimension propriété sur vos champs vectoriels pour réduire la dimensionnalité des incorporations de texte.
La compression multiniveau de MRL économise du stockage vectoriel et améliore les temps de réponse des requêtes pour les requêtes vectorielles basées sur des incorporations de texte. Dans Recherche Azure AI, la prise en charge de MRL est offerte seulement en combinaison avec une autre méthode de quantification. L’utilisation de la quantification binaire avec MRL permet une réduction maximale de la taille de l’index vectoriel. Pour obtenir une réduction maximale du stockage, utilisez la quantisation binaire avec MRL et définie sur storedfalse.
Avertissement
Si vous définissez stored sur false, les données vectorielles sont perdues lors des mises à jour partielles du document, sauf si vous fournissez l’intégralité du vecteur à chaque mise à jour. Définissez stored sur true pour éviter ce problème. Pour plus d’informations, consultez Éliminer les instances vectorielles facultatives du stockage.
Prérequis
Modèle text-embedding-3, tel que text-embedding-3-small ou text-embedding-3-large.
Nouveaux champs vectoriels de type
Edm.HalfouEdm.Single. Vous ne pouvez pas ajouter de compression MRL à un champ existant.Quantification scalaire ou binaire. Les dimensions tronquées ne peuvent être définies que lorsque la quantification scalaire ou binaire est configurée. Nous vous recommandons la quantification binaire pour la compression MRL.
Clients pris en charge
Vous pouvez utiliser les API REST ou les packages du Kit de développement logiciel (SDK) Azure pour implémenter la compression MRL. Actuellement, il n’existe aucun portail Azure ni prise en charge par Microsoft Foundry.
- Vérifiez les journaux des modifications pour chaque package du Kit de développement logiciel (SDK) Azure pour la prise en charge des fonctionnalités : Python, .NET, JavaScript.
Utiliser des incorporations de texte étendues par MRL
MRL est intégré au modèle d’incorporation de texte que vous utilisez déjà. Pour utiliser des fonctionnalités MRL dans Recherche IA Azure :
Utilisez Créer ou mettre à jour un index ou une API équivalente pour spécifier le schéma d’index.
Ajouter des champs vectoriels à la définition d’index.
Spécifiez un objet
vectorSearch.compressionsdans votre définition d’index.Incluez une méthode de quantification, scalaire ou binaire (recommandée).
Incluez le paramètre et définissez-le
truncationDimensionsur 512. Si vous utilisez le modèle text-embedding-3-large, vous pouvez le définir aussi bas que 256.Incluez un profil vectoriel qui spécifie l’algorithme HNSW et l’objet de compression vectorielle.
Affectez le profil vectoriel à un champ vectoriel de type
Edm.HalfouEdm.Singledans la collection de champs.
Aucune modification des requêtes n’est nécessaire pour utiliser un modèle d’incorporation de texte compatible MRL. La prise en charge de MRL n'affecte pas la vectorisation intégrée, les conversions de texte en requête au moment de l'exécution de la requête, le classement sémantique et d'autres fonctionnalités d'amélioration de la pertinence, telles que le réordonnancement avec les vecteurs d'origine et le suréchantillonnage.
Bien que l’indexation soit plus lente en raison des étapes supplémentaires, les requêtes sont plus rapides.
Exemple : Configuration de la recherche vectorielle qui prend en charge MRL
L’exemple suivant illustre une configuration de recherche vectorielle qui répond aux exigences et aux recommandations de MRL.
truncationDimension est une propriété de compression. Il spécifie la quantité de réduction du graphique vectoriel en mémoire avec une méthode de compression telle que scalaire ou compression binaire. Nous vous recommandons d’utiliser 1 024 ou plus pour truncationDimension avec la quantification binaire. Une dimensionnalité inférieure à 1 000 dégrade la qualité des résultats de la recherche lors de l’utilisation de MRL et de la compression binaire.
{
"vectorSearch": {
"profiles": [
{
"name": "use-bq-with-mrl",
"compression": "use-bq-with-truncation",
"algorithm": "use-hnsw"
}
],
"algorithms": [
{
"name": "use-hnsw",
"kind": "hnsw",
"hnswParameters": {
"m": 4,
"efConstruction": 400,
"efSearch": 500,
"metric": "cosine"
}
}
],
"compressions": [
{
"name": "use-bq-with-truncation",
"kind": "binaryQuantization",
"rescoringOptions": {
"enableRescoring": true,
"defaultOversampling": 10,
"rescoreStorageMethod": "preserveOriginals"
},
"truncationDimension": 1024
}
]
}
}
Le code JSON suivant montre la définition de champ vectoriel qui utilise ce profil :
Le type de données est soit
Collection(Edm.Half)Collection(Edm.Single).Le champ a une
vectorSearchProfilepropriété qui spécifie les paramètres d’algorithme et de compression.Le champ a une
dimensionspropriété qui spécifie le nombre de dimensions pour le scoring et les résultats de classement. Sa valeur doit être la limite de dimensions du modèle que vous utilisez (1 536 pour l’incorporation de texte-3-small).
{
"name": "text_vector",
"type": "Collection(Edm.Single)",
"searchable": true,
"filterable": false,
"retrievable": false,
"stored": false,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"normalizer": null,
"dimensions": 1536,
"vectorSearchProfile": "use-bq-with-mrl",
"vectorEncoding": null,
"synonymMaps": []
}