Delen via


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 en retrievable ingesteld op onwaar. In een standaardconfiguratie wordt een ophaalbare kopie opgeslagen, maar deze wordt niet automatisch geretourneerd in de resultaten. Wanneer stored is waar, kunt retrievable u op elk gewenst moment schakelen tussen waar en onwaar zonder dat u een index opnieuw hoeft op te bouwen. Wanneer stored 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:

  1. Gebruik Rest API's maken of bijwerken van index 2024-11-01-preview of een bètapakket van Azure SDK dat de functie biedt.

  2. Voeg een vectorSearch sectie toe aan uw index met profielen, algoritmen en compressies.

  3. Voeg onder compressies rescoringOptions toe met enableRescoring ingesteld op true, defaultOversampling stel in op een positief geheel getal en rescoreStorageMethod stel deze in op preserveOriginals.

    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
                }
            ]
        }
    }