Optionele vectorexemplaren uit de opslag elimineren
Azure AI Search slaat meerdere kopieën van vectorvelden op die worden gebruikt in specifieke workloads. Als u geen specifiek gedrag hoeft te ondersteunen, zoals het retourneren van onbewerkte vectoren in een queryantwoord, kunt u eigenschappen instellen in de index die de opslag voor die workload weglaat.
Vereisten
- Vectorvelden in een zoekindex met een
vectorSearch
configuratie, met behulp van de HNSW-algoritmen (Hierarchical Navigable Small Worlds) of uitgebreide K-dichtstbijzijnde buren (KNN) en een nieuw vectorprofiel.
Hoe vectorvelden worden opgeslagen
Voor elk vectorveld kunnen er drie kopieën van de vectoren zijn, die elk een ander doel dienen:
Exemplaar | Gebruik | Beheerd met behulp van |
---|---|---|
Bronvectoren die de JSON opslaan die is ontvangen tijdens het indexeren van documenten | Wordt gebruikt voor incrementeel vernieuwen van gegevens met merge of mergeOrUpload tijdens het indexeren van documenten. Wordt ook gebruikt als u "ophaalbare" vectoren wilt retourneren in het queryantwoord. |
stored eigenschap op vectorvelden |
Oorspronkelijke vectoren met volledige precisie | In bestaande indexen worden deze gebruikt voor interne indexbewerkingen en voor uitgebreide KNN-zoekopdrachten. Voor vectoren die gebruikmaken van compressie, wordt deze ook gebruikt voor het rescoring (indien ingeschakeld) op een oversampled kandidaatset met resultaten van ANN-zoekopdracht op vectorvelden met behulp van scalaire of binaire kwantisatiecompressie . | rescoringOptions.rescoreStorageMethod eigenschap in vectorSearch.compressions . Voor niet-gecomprimeerde vectorvelden in indexen die zijn gemaakt met 2024-11-01-Preview API-versies en later, wordt dit standaard weggelaten zonder dat dit van invloed is op zoekactiviteiten of kwaliteit. |
Vectoren in de HNSW-grafiek voor het zoeken naar dichtstbijzijnde buren (ANN) | Wordt gebruikt voor het uitvoeren van ANN-query's. Bestaat uit volledige precisievectoren (wanneer er geen compressie wordt toegepast) of gekwantiseerde vectoren (wanneer compressie wordt toegepast) | Alleen van toepassing op HNSW. Deze gegevensstructuren zijn vereist voor efficiënte ANN-zoekopdrachten. |
U kunt eigenschappen instellen die de eerste twee exemplaren permanent uit vectoropslag verwijderen.
Het laatste exemplaar (vectoren en grafiek) is vereist voor het uitvoeren van ann vectorquery's. Als compressietechnieken zoals scalaire of binaire kwantisatie worden gebruikt, worden ze toegepast op deze set gegevens. Als u verliescompressie wilt compenseren, moet u het tweede exemplaar behouden om de kwaliteit van ann te verbeteren.
stored
De eigenschap instellen
De stored
eigenschap is een booleaanse eigenschap op een vectorvelddefinitie die bepaalt of opslag wordt toegewezen voor inhoud van het ophalenbare vectorveld (het bronexemplaren). De stored
eigenschap is standaard waar. Als u onbewerkte vectorinhoud niet nodig hebt in een queryantwoord, kunt u maximaal 50 procent opslag per veld besparen door over te schakelen stored
naar onwaar.
Overwegingen voor het instellen stored
op onwaar:
Omdat vectoren niet leesbaar zijn voor mensen, kunt u ze weglaten uit resultaten die in RAG-scenario's naar LLM's worden verzonden en uit resultaten die worden weergegeven op een zoekpagina. Bewaar ze echter als u vectoren gebruikt in een downstreamproces dat vectorinhoud verbruikt.
Als uw indexeringsstrategie echter gedeeltelijke documentupdates bevat, zoals 'samenvoegen' of 'mergeOrUpload' in een bestaand document, voorkomt u
stored=false
dat inhoudsupdates tijdens de samenvoegbewerking worden bijgewerkt. Bij elke bewerking 'samenvoegen' of 'mergeOrUpload' naar een zoekdocument moet u de vectorvelden in zijn geheel opgeven, samen met de niet-vectorvelden die u bijwerkt, of de vector wordt verwijderd.
Belangrijk
Het instellen van de stored=false
toeschrijving kan niet ongedaan worden. Deze eigenschap kan alleen worden ingesteld wanneer u de index maakt en alleen is toegestaan voor vectorvelden. Het bijwerken van een bestaande index met nieuwe vectorvelden kan deze eigenschap niet instellen op false
. Als u later de vectorinhoud wilt ophalen, moet u de index verwijderen en opnieuw opbouwen, of een nieuw veld maken en laden dat de nieuwe toeschrijving heeft.
Voor nieuwe vectorvelden in een zoekindex stelt u stored
in op false om permanent ophaalbare opslag voor het vectorveld te verwijderen. In het volgende voorbeeld ziet u een vectorvelddefinitie met de stored
eigenschap.
PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
{
"name": "demo-index",
"fields": [
{
"name": "vectorContent",
"type": "Collection(Edm.Single)",
"retrievable": false,
"stored": false,
"dimensions": 1536,
"vectorSearchProfile": "vectorProfile"
}
]
}
Samenvatting van de belangrijkste punten
Van toepassing op velden met een vectorgegevenstype.
Beïnvloedt de opslag op schijf, niet het geheugen en heeft geen invloed op query's. Bij het uitvoeren van query's wordt een afzonderlijke vectorindex gebruikt die niet wordt beïnvloed door de
stored
eigenschap, omdat die kopie van de vector altijd wordt opgeslagen.De
stored
eigenschap wordt ingesteld tijdens het maken van de index op vectorvelden en kan niet ongedaan worden gemaakt. Als u later inhoud wilt ophalen, moet u de index verwijderen en opnieuw opbouwen, of een nieuw veld maken en laden met de nieuwe toeschrijving.De standaardwaarden zijn
stored
ingesteld op waar enretrievable
ingesteld op onwaar. In een standaardconfiguratie wordt een ophaalbare kopie opgeslagen, maar deze wordt niet automatisch geretourneerd in de resultaten. Wanneerstored
is waar, kuntretrievable
u op elk gewenst moment schakelen tussen waar en onwaar zonder dat u een index opnieuw hoeft op te bouwen. Wanneerstored
onwaar is,retrievable
moet onwaar zijn en kan niet worden gewijzigd.
rescoreStorageMethod
De eigenschap instellen
Notitie
Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview wordt aangeboden zonder service level agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
De rescoreStorageMethod
eigenschap bepaalt de opslag van volledige precisievectoren wanneer compressie wordt gebruikt.
Voor niet-gecomprimeerde vectorvelden in indexen die zijn gemaakt met 2024-11-01-Preview
API-versies en later, wordt dit standaard weggelaten zonder dat dit van invloed is op zoekactiviteiten of kwaliteit. Voor bestaande vectorvelden die vóór deze API-versie zijn gemaakt, is er geen in-place mogelijkheid om deze kopie van gegevens te verwijderen.
Bij een vectorcompressie is de rescoreStorageMethod
eigenschap standaard ingesteld preserveOriginals
op, die volledige precisievectors behoudt vooroversampling- en rescoringmogelijkheden om het effect van lossycompressie op de HNSW-grafiek te verminderen. Als u deze mogelijkheden niet gebruikt, kunt u vectoropslag verminderen door in te stellen rescoreStorageMethod
op discardOriginals
.
Belangrijk
Het instellen van de rescoreStorageMethod
eigenschap kan niet ongedaan worden gehouden en heeft verschillende niveaus van verlies van zoekkwaliteit, afhankelijk van de compressiemethode. Dit kan worden ingesteld op indexen die zijn gemaakt met 2024-11-01-Preview
of later, hetzij tijdens het maken van de index of het toevoegen van nieuwe vectorvelden.
Als u scalaire of binaire kwantisatie wilt gebruiken, raden we u aan deze instelling te behouden rescoreStorageMethod
om preserveOriginals
de zoekkwaliteit te maximaliseren.
Deze eigenschap instellen:
Gebruik Rest API's maken of bijwerken van index 2024-11-01-preview of een bètapakket van Azure SDK dat de functie biedt.
Voeg een
vectorSearch
sectie toe aan uw index met profielen, algoritmen en compressies.Voeg onder compressies
rescoringOptions
toe metenableRescoring
ingesteld op true,defaultOversampling
stel in op een positief geheel getal enrescoreStorageMethod
stel deze in oppreserveOriginals
.PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2024-11-01-preview { "name": "demo-index", "fields": [. . . ], . . . "vectorSearch": { "profiles": [ { "name": "myVectorProfile", "algorithm": "myHnsw", "compression": "myScalarQuantization" } ], "algorithms": [ { "name": "myHnsw", "kind": "hnsw", "hnswParameters": { "metric": "cosine", "m": 4, "efConstruction": 400, "efSearch": 500 }, "exhaustiveKnnParameters": null } ], "compressions": [ { "name": "myScalarQuantization", "kind": "scalarQuantization", "rescoringOptions": { "enableRescoring": true, "defaultOversampling": 10, "rescoreStorageMethod": "preserveOriginals" }, "scalarQuantizationParameters": { "quantizedDataType": "int8" }, "truncationDimension": null } ] } }