Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Exerça a capacidade de usar menos dimensões em modelos text-embedding-3. No Azure OpenAI, os modelos de incorporação de texto-3 são re-treinados na técnica Matryoshka Representation Learning (MRL) que produz várias representações de vetor em diferentes níveis de compactação. Essa abordagem produz pesquisas mais rápidas e redução dos custos de armazenamento com perda mínima de informações semânticas.
Na Pesquisa de IA do Azure, o MRL dá suporte a suplementos de quantização escalar e binária. Ao usar qualquer método de quantização, você pode especificar uma truncationDimension propriedade em seus campos de vetor para reduzir a dimensionalidade das inserções de texto.
A compactação multinível de MRL economiza no armazenamento de vetores e melhora os tempos de resposta da consulta para consultas vetoriais com base em inserções de texto. No Pesquisa de IA do Azure, o suporte à MRL só é oferecido junto com outro método de quantização. O uso de quantização binária com MRL fornece a redução máxima do tamanho do índice vetor. Para obter a redução máxima de armazenamento, use a quantização binária com MRL e defina stored como false.
Aviso
Se você definir stored como false, os dados de vetor serão perdidos durante atualizações parciais de documento, a menos que você forneça todo o vetor em cada atualização. Defina stored para true para evitar esse problema. Para obter mais informações, consulte Eliminar instâncias de vetor opcionais do armazenamento.
Pré-requisitos
Um modelo text-embedding-3, como text-embedding-3-small ou text-embedding-3-large.
Novos campos de vetor do tipo
Edm.HalfouEdm.Single. Você não pode adicionar compactação MRL a um campo existente.Quantização escalar ou binária. As dimensões truncadas só podem ser definidas quando a quantização escalar ou binária é configurada. Recomendamos a quantização binária para compactação de MRL.
Clientes com suporte
Você pode usar as APIs REST ou os pacotes do SDK do Azure para implementar a compactação MRL. No momento, não há suporte ao portal do Azure nem ao Azure AI Foundry.
- Verifique os logs de alterações para cada pacote do SDK do Azure para obter suporte a recursos: Python, .NET, Java, JavaScript.
Usar inserções de texto estendidas por MRL
O MRL é integrado ao modelo de inserção de texto que você já está usando. Para usar recursos de MRL no Azure AI Search:
Use Criar ou Atualizar Índice ou uma API equivalente para especificar o esquema de índice.
Adicionar campos de vetor à definição de índice.
Especifique um objeto
vectorSearch.compressionsem sua definição de índice.Inclua um método de quantização, escalar ou binário (recomendado).
Inclua o
truncationDimensionparâmetro e defina-o como 512. Se você estiver usando o modelo text-embedding-3-large, pode defini-lo para um valor tão baixo quanto 256.Inclua um perfil de vetor que especifica o algoritmo HNSW e o objeto de compactação de vetor.
Atribua o perfil de vetor a um campo vetor do tipo
Edm.HalfouEdm.Singlena coleção de campos.
Não há modificações do lado da consulta para usar um modelo de inserção de texto compatível com MRL. O suporte a MRL não afeta a vetorização integrada, conversões de texto em consulta no momento da consulta, classificação semântica e outros recursos de aprimoramento de relevância, como o reclassificado com vetores originais e a sobrecarga.
Embora a indexação seja mais lenta devido às etapas extras, as consultas são mais rápidas.
Exemplo: configuração de pesquisa de vetor que dá suporte ao MRL
O exemplo a seguir ilustra uma configuração de busca em vetores que atende aos requisitos e recomendações do MRL.
truncationDimension é uma propriedade de compactação. Ela especifica o quanto reduzir o grafo de vetor na memória junto com um método de compactação, como compactação escalar ou binária. Recomendamos 1.024 ou superior para truncationDimension com quantização binária. Uma dimensionalidade inferior a 1.000 degradados a qualidade dos resultados da pesquisa ao usar o MRL e a compactação binária.
{
"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": "binaryQuantization",
"rescoringOptions": {
"enableRescoring": true,
"defaultOversampling": 10,
"rescoreStorageMethod": "preserveOriginals"
},
"truncationDimension": 1024
},
{
"name": "use-bq",
"kind": "binaryQuantization",
"rescoringOptions": {
"enableRescoring": true,
"defaultOversampling": 10,
"rescoreStorageMethod": "discardOriginals"
}
}
]
}
}
Aqui está um exemplo de uma definição de campo de vetor totalmente especificada que atenda aos requisitos de MRL. Lembre-se de que os campos de vetor devem:
Seja do tipo
Edm.HalfouEdm.Single.Tenha uma
vectorSearchProfilepropriedade que especifica as configurações de algoritmo e compactação.Tenha uma
dimensionspropriedade que especifica o número de dimensões para resultados de pontuação e classificação. Seu valor deve ser o limite de dimensões do modelo que você está usando (1.536 para 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": []
}