Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nota
O Pesquisa de IA do Azure está disponível através do portal Azure, APIs REST e SDKs do Azure. Também sustenta o Foundry IQ, a camada de conhecimento gerida que transforma conteúdos empresariais em bases de conhecimento reutilizáveis e conscientes de permissões para agentes no portal Microsoft Foundry.
Uma maneira fácil de reduzir o tamanho do vetor é armazenar incorporações em um formato de dados menor. A maioria dos modelos de incorporação produz números de ponto flutuante de 32 bits. No entanto, se você quantificar seus vetores ou usar um modelo de incorporação que suporte nativamente a quantização, a saída pode ser float16, int16 ou int8, que são significativamente menores do que float32. Você pode acomodar esses tamanhos de vetor menores atribuindo um tipo de dados estreito a um campo vetorial. No índice vetorial, tipos de dados estreitos consomem menos armazenamento.
Atribuis tipos de dados aos campos numa definição de índice. Use o portal Azure, as APIs REST do Serviço de Pesquisa ou um pacote SDK do Azure que forneça a funcionalidade.
Pré-requisitos
- Um modelo de incorporação que gera formatos de dados compactos, como modelos de incorporação text-embedding-3 ou Cohere V3.
Tipos de dados estreitos suportados
Analise os tipos de dados usados para campos vetoriais para uso recomendado:
-
Collection(Edm.Single): Ponto flutuante de 32 bits (padrão) -
Collection(Edm.Half): ponto flutuante de 16 bits (estreito) -
Collection(Edm.Int16): inteiro com sinal de 16 bits (estreito) -
Collection(Edm.SByte): Inteiro com sinal de 8 bits (estreito) -
Collection(Edm.Byte): inteiro não assinado de 8 bits (permitido apenas com tipos de dados binários compactados)
-
Nessa lista, determine qual tipo de dados é válido para a saída do modelo de incorporação ou para vetores que passam por quantização personalizada.
A tabela seguinte fornece ligações para vários modelos de embedding que podem usar um tipo de dado restrito,
Collection(Edm.Half), sem quantização adicional. Podes converter de float32 para float16 utilizandoCollection(Edm.Half)sem qualquer esforço adicional.Modelo de incorporação Saída nativa Atribuir este tipo na Pesquisa de IA do Azure text-embedding-ada-002 Float32Collection(Edm.Single)ouCollection(Edm.Half)text-embedding-3-small Float32Collection(Edm.Single)ouCollection(Edm.Half)incorporação de texto-3-grande Float32Collection(Edm.Single)ouCollection(Edm.Half)Modelos de incorporação vetorial Cohere V3 com tipo de incorporação int8 Int8Collection(Edm.SByte)Você pode usar outros tipos de dados estreitos se o modelo emitir incorporações no formato de dados menor ou se tiver quantização personalizada que converte vetores em um formato menor.
Compreenda as desvantagens de um tipo de dado restrito.
Collection(Edm.Half)tem menos informações, o que resulta em menor resolução. Se seus dados forem homogêneos ou densos, perder detalhes ou nuances extras pode levar a resultados inaceitáveis no momento da consulta, porque há menos detalhes que podem ser usados para distinguir vetores próximos.
Atribuir o tipo de dados
Defina e construa um índice. Pode usar o portal Azure, Indexes - Create Or Update (API REST), ou um pacote SDK do Azure para esta etapa.
Esta definição de campo utiliza um tipo de dado restrito, Collection(Edm.Half), que aceita uma incorporação float32 armazenada como um valor float16. Como é verdade para todos os campos vetoriais, defina as dimensions propriedades e vectorSearchProfile . As especificidades do vectorSearchProfile são irrelevantes para o tipo de dados.
Define retrievable e stored para true se quiseres verificar visualmente os valores do campo. Numa reconstrução subsequente, pode alterar estas propriedades para falso para reduzir os requisitos de armazenamento.
{
"name": "nameEmbedding",
"type": "Collection(Edm.Half)",
"searchable": true,
"filterable": false,
"retrievable": true,
"sortable": false,
"facetable": false,
"key": false,
"indexAnalyzer": null,
"searchAnalyzer": null,
"analyzer": null,
"synonymMaps": [],
"dimensions": 1536,
"vectorSearchProfile": "myHnswProfile"
}
Lembre-se de que os campos de vetores não podem ser filtrados, ordenados nem sujeitos a facetas. Eles não podem ser usados como chaves e não usam analisadores ou mapas de sinônimos.
Trabalhar com um índice de produção
Atribuis tipos de dados aos novos campos quando são criados. Não é possível alterar o tipo de dados de um campo existente e não é possível soltar um campo sem reconstruir o índice. Para índices já estabelecidos em produção, uma solução comum é criar novos campos com as revisões desejadas e depois remover campos obsoletos durante uma reconstrução planeada do índice.
Ver resultados
Verifique se o conteúdo do campo corresponde ao tipo de dados. Assumindo que o campo vetorial está marcado como
retrievable, use o explorador de pesquisa ou Search - POST (REST API) para devolver o conteúdo do campo vetorial.Para verificar o tamanho do índice de vetor, consulte a coluna de tamanho do índice de vetor na página Índices de gerenciamento de > pesquisa no portal do Azure. Também pode usar o Indexes - Get Statistics (API REST) ou um método equivalente do SDK do Azure.
Nota
O tipo de dados do campo cria a estrutura física de dados. Para mudar um tipo de dado mais tarde, pode eliminar e reconstruir o índice ou criar um segundo campo com a nova definição.