Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ricerca di intelligenza artificiale di Azure archivia più copie di campi vettoriali usati in carichi di lavoro specifici. Se gli scenari di ricerca non richiedono tutte queste copie, è possibile omettere l'archiviazione per tale carico di lavoro.
I casi d'uso in cui viene usata una copia aggiuntiva includono:
- Restituzione di vettori non elaborati in una risposta di query o supporto di aggiornamenti incrementali al contenuto vettoriale.
- Ricalibrazione dei vettori compressi (quantizzati) come tecnica di ottimizzazione delle query.
La rimozione dell'archiviazione è irreversibile e richiede la reindicizzazione, se necessario.
Prerequisiti
-
Campi vettoriali in un indice di ricerca, con una
vectorSearchconfigurazione che specifica l'algoritmo HNSW (Hierarchical Navigable Small Worlds) o L'algoritmo K-Nearest Neighbor (KNN) completo e un nuovo profilo vettoriale.
Modalità di archiviazione dei campi vettoriali
| Istanza | Utilizzo | Obbligatorio per la ricerca | Come è stato rimosso |
|---|---|---|---|
| Vettori nel grafo HNSW per la ricerca di Vicini Approssimati (ANN) o vettori per la ricerca esaustiva K-Vicini Più Prossimi (indice eKNN) | Usato per l'esecuzione di query. È costituito da vettori con precisione completa (quando non viene applicata alcuna compressione) o vettori quantizzati. | Essential | Non esistono parametri per la rimozione di questa istanza. |
| Vettori di origine ricevuti durante l'indicizzazione dei documenti (dati JSON) | Utilizzato per l'aggiornamento incrementale dei dati con merge o mergeOrUpload azioni di indicizzazione. Usato anche per restituire vettori "recuperabili" nella risposta della query. |
NO | Impostare stored la proprietà su false. |
| Vettori a precisione completa originali (dati binari) 1 | Per i vettori compressi, viene usato per il ricalcolo dei punteggi di preserveOriginals su un set di risultati candidato sovracampionato dalla ricerca ANN. Questo vale per i campi vettoriali che subiscono la quantizzazione scalare o binaria e si applica alle query che usano il grafo HNSW. Se si usa eKNN, tutti i vettori rientrano nell'ambito della query, pertanto il rescoring non ha alcun effetto e quindi non è supportato. |
NO | Impostare rescoringOptions.rescoreStorageMethod la proprietà su discardOriginals in vectorSearch.compressions. |
1 Questa copia è anche per operazioni di indice interne e per una ricerca KNN completa nelle versioni precedenti dell'API, sugli indici creati usando le API 2023. In indici più recenti, un campo configurato da eKNN è costituito da vettori con precisione completa, quindi non è necessaria alcuna copia aggiuntiva.
Rimuovere vettori di origine (dati JSON)
In una definizione di campo vettoriale è stored una proprietà booleana che determina se l'archiviazione viene allocata per il contenuto vettoriale recuperabile ottenuto durante l'indicizzazione (istanza di origine). Per impostazione predefinita, stored è impostato su true. Se non è necessario contenuto vettoriale non elaborato in una risposta di query, la modifica stored in false può salvare fino a 50% spazio di archiviazione per campo.
Considerazioni sull'impostazione di "stored": false:
Poiché i vettori non sono leggibili dall'utente, in genere è possibile ometterli dai risultati inviati a LLMs in scenari RAG o dai risultati visualizzati in una pagina di ricerca. È tuttavia consigliabile mantenerli se si usano vettori in un processo downstream che utilizza il contenuto vettoriale.
Se la strategia di indicizzazione usa aggiornamenti parziali dei documenti, ad esempio
mergeomergeOrUploadin un documento esistente, l'impostazione"stored": falseimpedisce gli aggiornamenti del contenuto a tali campi durante l'unione. In ogni operazione di reindicizzazione è necessario includere l'intero campo vettoriale (e i campi non vettoriali che stai aggiornando). In caso contrario, i dati vettoriali vengono persi senza errori o avvisi. Per evitare completamente questo rischio, impostare"stored": true.
Importante
L'impostazione dell'attribuzione "stored": false è irreversibile. Questa proprietà può essere impostata solo quando si crea l'indice ed è consentita solo nei campi vettoriali. L'aggiornamento di un indice esistente con nuovi campi vettoriali non può impostare questa proprietà su false. Se si vuole recuperare il contenuto vettoriale in un secondo momento, è necessario eliminare e ricompilare l'indice o creare e caricare un nuovo campo con la nuova attribuzione.
Per i nuovi campi vettoriali in un indice di ricerca, impostare "stored": false per rimuovere definitivamente l'archiviazione recuperabile per il campo vettore. Nell'esempio seguente viene illustrata una definizione di campo vettoriale con la stored proprietà .
PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2025-09-01@search.rerankerBoostedScore
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"
}
]
}
Riepilogo dei punti chiave
Si applica ai campi con un tipo di dati vettoriale.
Influisce sull'archiviazione su disco, non sulla memoria e non ha alcun effetto sulle query. L'esecuzione di query usa un indice vettoriale separato non interessato dalla
storedproprietà perché tale copia del vettore viene sempre archiviata.La proprietà
storedviene impostata durante la creazione dell'indice nei campi vettoriali ed è irreversibile. Se si vuole recuperare il contenuto in un secondo momento, è necessario eliminare e ricompilare l'indice o creare e caricare un nuovo campo con la nuova attribuzione.Le impostazioni predefinite sono
"stored": truee"retrievable": false. In una configurazione predefinita, una copia recuperabile viene archiviata ma non viene restituita automaticamente nei risultati. Quandostoredètrue, è possibile alternareretrievabletrueefalsein qualsiasi momento senza dover ricompilare un indice. Quandostoredèfalse,retrievabledeve esserefalsee non può essere modificato.
Rimuovi vettori a precisione totale
I vettori di massima precisione originali vengono utilizzati nelle operazioni di ricalcolo sui vettori compressi (quantizzati). Lo scopo della rivalutazione è mitigare la perdita di informazioni dovuta alla compressione. L'effetto di un ricalcolo è il recupero di un set più ampio di documenti candidati dall'indice compresso, con ricalcolo dei punteggi di somiglianza usando i vettori originali o il prodotto scalare. Affinché il rescoring funzioni, i vettori originali devono essere conservati nell'archiviazione per determinati scenari. Di conseguenza, mentre la quantizzazione riduce l'utilizzo della memoria (utilizzo delle dimensioni dell'indice vettoriale), aumenta leggermente i requisiti di archiviazione perché vengono archiviati sia i vettori compressi che originali. L'archiviazione aggiuntiva è approssimativamente uguale alla dimensione dell'indice compresso.
Requisiti di ricalcolo del punteggio in base all'approccio di quantizzazione:
La registrazione dei vettori quantizzati scalari richiede la conservazione dei vettori a precisione completa originali.
La registrazione dei vettori binari quantizzati può usare i vettori originali di massima precisione o il prodotto punto dell'incorporamento binario, che produce risultati di ricerca di alta qualità, senza dover fare riferimento a vettori di massima precisione nell'indice.
Elementi consigliati per il ricalcolo del punteggio:
Per la quantizzazione scalare, mantenere i vettori originali con precisione completa nell'indice perché sono necessari per il ricalcolo del punteggio.
Per la quantizzazione binaria, mantenere i vettori originali di massima precisione per la qualità più elevata del ricalcolo del punteggio o rimuovere i vettori di massima precisione se si vuole ricalcolare in base al prodotto scalare degli incorporamenti binari.
La rescoreStorageMethod proprietà controlla se i vettori con precisione completa vengono archiviati. In vectorSearch.compressions, la proprietà rescoreStorageMethod è impostata su preserveOriginals per impostazione predefinita, che mantiene i vettori a precisione completa per l'oversampling e le funzionalità di riscoring per ridurre l'effetto della compressione della perdita nel grafico HNSW. Se non hai bisogno della riesecuzione, o se hai utilizzato la quantizzazione binaria e il prodotto scalare per la riesecuzione, è possibile ridurre l'archiviazione vettoriale impostando rescoreStorageMethod su discardOriginals.
Importante
L'impostazione della rescoreStorageMethod proprietà è irreversibile e può influire negativamente sulla qualità della ricerca, anche se il grado dipende dal metodo di compressione e dalle eventuali mitigazioni applicate.
Per impostare questa proprietà:
Usare le API REST Creare Indice, Creare o Aggiornare Indice o l'SDK di Azure.
Aggiungere una
vectorSearchsezione all'indice con profili, algoritmi e compressione.In
vectorSearch.compressionsaggiungererescoringOptionsconenableRescoringimpostato su true,defaultOversamplingimpostare su un numero intero positivo erescoreStorageMethodimpostare sudiscardOriginalsper la quantizzazione binaria epreserveOriginalsper la quantizzazione scalare.PUT https://[service-name].search.windows.net/indexes/demo-index?api-version=2025-09-01 { "name": "demo-index", "fields": [. . . ], . . . "vectorSearch": { "profiles": [ { "name": "myVectorProfile-1", "algorithm": "myHnsw", "compression": "myScalarQuantization" }, { "name": "myVectorProfile-2", "algorithm": "myHnsw", "compression": "myBinaryQuantization" } ], "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 }, { "name": "myBinaryQuantization", "kind": "binaryQuantization", "rescoringOptions": { "enableRescoring": true, "defaultOversampling": 10, "rescoreStorageMethod": "discardOriginals" }, "truncationDimension": null } ] } }
Nota
Le strategie di archiviazione vettoriale sono state in continua evoluzione nelle ultime versioni. La data di creazione dell'indice e la versione dell'API determinano le opzioni di archiviazione. Ad esempio, in 2024-11-01-preview, se si imposta discardOriginals per rimuovere i vettori di massima precisione, non è stato effettuato alcun ricalcolo per la quantizzazione binaria perché l'approccio del prodotto scalare non era disponibile. È consigliabile usare le API più recenti per le migliori opzioni di mitigazione.