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.
Importante
Questa funzionalità è disponibile in anteprima pubblica in Condizioni supplementari per l'utilizzo. Per questa funzionalità è consigliabile usare la versione più recente dell'API REST di anteprima .
Esercizio della possibilità di usare un minor numero di dimensioni nei modelli di incorporamento del testo-3. In Azure OpenAI, i modelli text-embedding-3 vengono sottoposti nuovamente a training sulla tecnica matryoshka Representation Learning (MRL) che produce più rappresentazioni vettoriali a diversi livelli di compressione. Questo approccio produce ricerche più veloci e costi di archiviazione ridotti con una perdita minima di informazioni semantiche.
In Ricerca di intelligenza artificiale di Azure il supporto MRL integra la quantizzazione scalare e binaria. Quando si usa uno dei metodi di quantizzazione, è possibile specificare una truncationDimension
proprietà nei campi vettoriali per ridurre la dimensionalità degli incorporamenti di testo.
La compressione multilivello MRL consente di risparmiare sull'archiviazione vettoriale e di migliorare i tempi di risposta delle query vettoriali in base agli incorporamenti di testo. In Ricerca di intelligenza artificiale di Azure il supporto mrl viene offerto solo insieme a un altro metodo di quantizzazione. L'uso della quantizzazione binaria con MRL fornisce la riduzione massima delle dimensioni dell'indice vettoriale. Per ottenere la riduzione massima dello spazio di archiviazione, usare la quantizzazione binaria con MRL e impostare su stored
false.
Prerequisiti
Modello text-embedding-3, ad esempio text-embedding-3-small o text-embedding-3-large.
Cliente supportato.
Nuovi campi vettoriali di tipo
Edm.Half
oEdm.Single
. Non è possibile aggiungere la compressione MRL a un campo esistente.Algoritmo gerarchico Navigable Small World (HNSW). Questa anteprima non supporta l'esaustivo KNN.
Quantizzazione scalare o binaria. Le dimensioni troncate possono essere impostate solo quando è configurata la quantizzazione scalare o binaria. È consigliabile la quantizzazione binaria per la compressione MRL.
Client supportati
È possibile usare le API REST o i pacchetti beta di Azure SDK per implementare la compressione MRL. Al momento non è disponibile alcun portale di Azure o il supporto di Azure AI Foundry.
API REST 2024-09-01-preview o versione successiva. È consigliabile usare l'API di anteprima più recente.
Controllare i log delle modifiche per ogni pacchetto beta di Azure SDK: Python, .NET, Java, JavaScript.
Usare gli "MRL-extended text embeddings"
MRL è integrato nel modello di incorporamento del testo già in uso. Per usare le funzionalità MRL in Ricerca di intelligenza artificiale di Azure:
Usare Crea o Aggiorna indice (anteprima) o un'API equivalente per specificare lo schema dell'indice.
Aggiungere campi vettoriali alla definizione dell'indice.
Specificare un
vectorSearch.compressions
oggetto nella definizione dell'indice.Includere un metodo di quantizzazione, scalare o binario (scelta consigliata).
Includere il
truncationDimension
parametro e impostarlo su 512. Se si utilizza il modello text-embedding-3-large, è possibile impostarlo a un valore basso come 256.Includere un profilo vettoriale che specifica l'algoritmo HNSW e l'oggetto di compressione vettoriale.
Assegnare il profilo vettoriale a un campo vettore di tipo
Edm.Half
oEdm.Single
nella raccolta campi.
Non sono state apportate modifiche sul lato query per l'uso di un modello di incorporamento di testo che supporta MRL. Il supporto di MRL non influisce sulla vettorializzazione integrata, sulle conversioni da testo a query durante l'elaborazione della query, sulla classificazione semantica e su altre caratteristiche di miglioramento della pertinenza, come la riclassificazione con vettori originali e il sovracampionamento.
Anche se l'indicizzazione è più lenta a causa dei passaggi aggiuntivi, le query sono più veloci.
Esempio: configurazione di ricerca vettoriale che supporta MRL
L'esempio seguente illustra una configurazione di ricerca vettoriale che soddisfa i requisiti e le raccomandazioni di MRL.
truncationDimension
è una proprietà di compressione. Specifica quanto compattare il grafico vettoriale in memoria insieme a un metodo di compressione, ad esempio la compressione scalare o binaria. È consigliabile usare 1.024 o superiore per con truncationDimension
quantizzazione binaria. Una dimensionalità inferiore a 1.000 riduce la qualità dei risultati della ricerca quando si usa MRL e compressione binaria.
{
"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
}
]
}
}
Di seguito è riportato un esempio di definizione di campo vettoriale completamente specificato che soddisfa i requisiti per MRL. Tenere presente che i campi vettoriali devono:
Essere di tipo
Edm.Half
oEdm.Single
.Disporre di una
vectorSearchProfile
proprietà che specifica l'algoritmo e le impostazioni di compressione.Disporre di una
dimensions
proprietà che specifica il numero di dimensioni per l'assegnazione dei punteggi e i risultati della classificazione. Il valore deve essere il limite di dimensioni del modello in uso (1.536 per text-embedding-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": []
}