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.
Pesquisa de IA do Azure dá suporte ao tipo binário Collection(Edm.Byte) empacotado para reduzir ainda mais o volume de armazenamento e memória dos dados de vetor. Você pode usar esse tipo de dados para a saída de modelos como os modelos de inserção binária Embed v3 do Cohere ou qualquer outro modelo de inserção ou processo que produz vetores como bytes binários.
Há três etapas para configurar um índice para vetores binários:
- Adicionar um algoritmo de pesquisa de vetor que especifica a distância de Hamming para comparação de vetor binário
- Adicionar um perfil de vetor que aponta para o algoritmo
- Adicione um campo de vetor do tipo
Collection(Edm.Byte)e atribua a Distância de Hamming.
Este artigo usa as APIs REST para ilustração, mas você também pode usar um SDK do Azure ou o portal Azure para adicionar um campo binário a um índice. Atribua o tipo de dados binário aos campos usando os Índices – Criar ou Índices – Criar ou Atualizar APIs REST.
Dica
Se você estiver investigando o suporte a vetores binários devido ao seu menor espaço necessário, também poderá considerar os recursos de quantização de vetores e redução de armazenamento no Pesquisa de IA do Azure . As entradas são inserções float32 ou float16. Os dados de saída são armazenados em um formato muito mais compacto. Para obter mais informações, consulte Compactar usando a quantização binária ou escalar e atribuir tipos de dados estreitos.
Pré-requisitos
Familiaridade com a criação de um índice e a adição de campos de vetor.
Vetores binários, com um bit por dimensão, empacotados em valores uint8 com oito bits por valor. Você pode obter esses vetores usando modelos que geram diretamente vetores binários empacotados ou quantificando vetores em vetores binários em seu aplicativo cliente durante a indexação e a recuperação.
Limitações
Não há suporte Azure portal no assistente Import data.
Não há suporte para campos binários na habilidade AML usada para vetorização integrada de modelos do catálogo de modelos do Microsoft Foundry.
Adicionar um algoritmo de pesquisa de vetor e um perfil de vetor
Algoritmos de pesquisa de vetor criam as estruturas de navegação de consulta durante a indexação. Para campos de vetor binário, o sistema usa a métrica de distância hamming para executar comparações de vetor.
Para configurar a pesquisa de vetor para vetores binários:
Configurar uma solicitação de Índices – Criar ou Atualizar (API REST).
No esquema de índice, adicione uma
vectorSearchseção que especifica perfis e algoritmos.Adicione um ou mais algoritmos de pesquisa de vetor que usam uma métrica de similaridade de
hamming. O algoritmo Hierarchical Navigable Small Worlds (HNSW) é comum, mas você também pode usar a distância de Hamming com os KNN (Vizinhos K-Mais Próximos) exaustivos.Adicione um ou mais perfis de vetor que especifiquem o algoritmo.
O exemplo a seguir mostra uma configuração básica vectorSearch .
"vectorSearch": {
"profiles": [
{
"name": "myHnswProfile",
"algorithm": "myHnsw",
"compression": null,
"vectorizer": null
}
],
"algorithms": [
{
"name": "myHnsw",
"kind": "hnsw",
"hnswParameters": {
"metric": "hamming"
}
},
{
"name": "myExhaustiveKnn",
"kind": "exhaustiveKnn",
"exhaustiveKnnParameters": {
"metric": "hamming"
}
}
]
}
Adicionar um campo binário a um índice
A coleção de campos de um índice deve incluir um campo para a chave do documento, campos de vetor e quaisquer outros campos necessários para cenários de pesquisa híbrida.
Os campos binários usam o tipo Collection(Edm.Byte) e contêm incorporações em forma compactada. Por exemplo, se a dimensão de inserção original for 1024, o comprimento do vetor binário empacotado será ceiling(1024 / 8) = 128. Você obtém a forma compactada definindo a vectorEncoding propriedade no campo.
Para adicionar um campo de vetor binário a um índice:
Adicione um campo à coleção de campos e dê-lhe um nome.
Defina o tipo de dados como
Collection(Edm.Byte).Definido
vectorEncodingcomopackedBitpara codificação binária.Definir
dimensionscomo1024. Especifique a dimensão de vetor original (descompactada).Defina
vectorSearchProfilepara o perfil que você definiu na etapa anterior.Definir
searchablecomotrue.
A definição de campo a seguir é um exemplo de um campo de vetor binário em um esquema de índice.
"fields": [
. . .
{
"name": "my-binary-vector-field",
"type": "Collection(Edm.Byte)",
"vectorEncoding": "packedBit",
"dimensions": 1024,
"vectorSearchProfile": "myHnswProfile",
"searchable": true
},
. . .
]
Conteúdo relacionado
Examine o repositório azure-search-vector-samples para fluxos de trabalho de ponta a ponta que incluem definição de esquema, vetorização, indexação e consultas.
Examine o código de demonstração de pesquisa de vetor para C#, Python e JavaScript.