Dimensies afkappen met MRL-compressie (preview)
Belangrijk
Deze functie is beschikbaar als openbare preview onder aanvullende gebruiksvoorwaarden. De preview-REST API ondersteunt deze functie.
Oefen de mogelijkheid om minder dimensies te gebruiken voor modellen met tekst insluiten-3. In Azure OpenAI worden modellen met tekst insluiten-3 opnieuw getraind op de Matryoshka Representation Learning-techniek (MRL) die meerdere vectorweergaven produceert op verschillende niveaus van compressie. Deze benadering produceert snellere zoekopdrachten en lagere opslagkosten, met minimaal verlies van semantische informatie.
In Azure AI Search ondersteunt MRL scalaire en binaire kwantisatie. Wanneer u een van beide kwantisatiemethoden gebruikt, kunt u ook een truncationDimension
eigenschap opgeven voor uw vectorvelden om de dimensionaliteit van tekst insluitingen te verminderen.
MRL multilevel compressie bespaart op vectoropslag en verbetert de reactietijden van query's voor vectorquery's op basis van tekst insluitingen. In Azure AI Search wordt MRL-ondersteuning alleen aangeboden in combinatie met een andere methode voor kwantisatie. Het gebruik van binaire kwantisatie met MRL biedt de maximale vermindering van de grootte van vectorindexen. Als u maximale opslagreductie wilt bereiken, gebruikt u binaire kwantisatie met MRL en stored
stelt u deze in op onwaar.
Deze functie is beschikbaar als preview-versie. Het is beschikbaar in 2024-09-01-preview
en in bèta-SDK-pakketten die gericht zijn op die preview-API-versie.
Vereisten
Tekst-insluiten-3-modellen, zoals Tekst-insluiten-3-klein of Tekst-insluiten-3-groot (alleen tekstinhoud).
Nieuwe vectorvelden van het type
Edm.Half
ofEdm.Single
(u kunt MRL-compressie niet toevoegen aan een bestaand veld).Hierarchical Navigable Small World (HNSW)-algoritme (geen ondersteuning voor uitgebreide KNN in deze preview).
Scalaire of binaire kwantisatie. Afgekapte dimensies kunnen alleen worden ingesteld wanneer scalaire of binaire kwantisatie is geconfigureerd. We raden binaire kwantisatie aan voor MRL-compressie.
Ondersteunde clients
U kunt de REST API's of Bètapakketten van Azure SDK gebruiken om MRL-compressie te implementeren.
Controleer de wijzigingslogboeken voor elk bètapakket van Azure SDK: Python, .NET, Java, JavaScript.
Er is momenteel geen ondersteuning voor Azure Portal of Azure AI Studio.
MRL-uitgebreide tekst insluiten gebruiken
MRL is een mogelijkheid die is ingebouwd in het insluitmodel voor tekst dat u al gebruikt. Volg deze stappen om te profiteren van deze mogelijkheden in Azure AI Search.
Gebruik de index maken of bijwerken (preview) of een equivalente API om het indexschema op te geven.
Voeg vectorvelden toe aan de indexdefinitie.
Geef een
vectorSearch.compressions
object op in de indexdefinitie.Neem een kwantisatiemethode op, scalaire of binaire methode (aanbevolen).
Neem de
truncationDimension
parameter op die is ingesteld op 512 of zo laag als 256 als u het model tekst-insluiten-3 gebruikt.Geef een vectorprofiel op dat het HNSW-algoritme en het vectorcompressieobject aangeeft.
Wijs het vectorprofiel toe aan een vectorveld van het type
Edm.Half
ofEdm.Single
in de verzameling velden.
Er zijn geen wijzigingen aan de queryzijde voor het gebruik van een model voor het insluiten van tekst dat geschikt is voor MRL. Geïntegreerde vectorisatie, conversies van tekst-naar-query's tijdens query's, semantische classificatie en andere functies voor relevantieverbetering, zoals opnieuw rangschikken met oorspronkelijke vectoren en oversampling, worden niet beïnvloed door MRL-ondersteuning.
Indexering is langzamer vanwege de extra stappen, maar query's zijn sneller.
Voorbeeld van een vectorzoekconfiguratie die MRL ondersteunt
In het volgende voorbeeld ziet u een vectorzoekconfiguratie die voldoet aan de vereisten en aanbevelingen van MRL.
truncationDimension
is een compressie-eigenschap. Hiermee geeft u op hoeveel de vectorgrafiek in het geheugen moet worden verkleind met een compressiemethode zoals scalaire of binaire compressie. We raden 1024 of hoger aan voor truncationDimension
met binaire kwantisatie. Een dimensionaliteit van minder dan 1000 verslechtert de kwaliteit van zoekresultaten bij het gebruik van MRL en binaire compressie.
{
"vectorSearch": {
"profiles": [
{
"name": "use-bq-with-mrl",
"compression": "use-mrl,use-bq",
"algorithm": "use-hnsw"
}
],
"algorithms": [
{
"name": "use-hnsw",
"kind": "hnsw",
"hnswParameters": {
"m": 4,
"efConstruction": 400,
"efSearch": 500,
"metric": "cosine"
}
}
],
"compressions": [
{
"name": "use-mrl",
"kind": "truncation",
"rerankWithOriginalVectors": true,
"defaultOversampling": 10,
"truncationDimension": 1024
},
{
"name": "use-bq",
"kind": "binaryQuantization",
"rerankWithOriginalVectors": true,
"defaultOversampling": 10
}
]
}
}
Hier volgt een voorbeeld van een volledig opgegeven vectorvelddefinitie die voldoet aan de vereisten voor MRL.
Zoals u weet, moeten vectorvelden van het type Edm.Half
zijn of Edm.Single
. Vectorvelden moeten een vectorSearchProfile
eigenschap hebben waarmee de algoritme- en compressie-instellingen worden bepaald. Vectorvelden hebben een dimensions
eigenschap die wordt gebruikt voor het opgeven van het aantal dimensies voor score- en classificatieresultaten. De waarde moet een dimensielimiet zijn van het model dat u gebruikt (1536 voor tekst-insluiten-3-klein).
{
"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": []
}