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.
Pesquisa de IA do Azure suporta o tipo binário empacotado Collection(Edm.Byte) para reduzir ainda mais o armazenamento e a pegada de memória dos dados vetoriais. Pode usar este tipo de dados para a saída de modelos como os modelos binários Embed v3 da Cohere , ou qualquer outro modelo ou processo de embedding que produza vetores como bytes binários.
Existem três passos para configurar um índice para vetores binários:
- Adicionar um algoritmo de pesquisa vetorial que especifica a distância de Hamming para comparação vetorial binária
- Adicionar um perfil vetorial que aponte para o algoritmo
- Adicione um campo vetorial de tipo
Collection(Edm.Byte)e atribua a distância de Hamming
Este artigo utiliza as APIs REST para ilustração, mas também pode usar um SDK do Azure ou o portal Azure para adicionar um campo binário a um índice. Atribui o tipo de dados binário aos campos usando as APIs REST Indexes - Create ou Indexes - Create Or Update.
Dica
Se estiveres a investigar suporte a vetores binários para a sua pegada mais pequena, podes também considerar as funcionalidades de quantização vetorial e redução de armazenamento no Pesquisa de IA do Azure. As entradas são incorporações float32 ou float16. A saída é armazenada num formato significativamente menor. Para mais informações, consulte Comprimir usando quantização binária ou escalar e Atribuir tipos de dados restritos.
Pré-requisitos
Familiaridade com a criação de um índice e a adição de campos vetoriais.
Vetores binários, com um bit por dimensão, embalados em valores uint8 com oito bits por valor. Pode obter estes vetores usando modelos que geram diretamente vetores binários empacotados ou quantizando vetores em vetores binários na sua aplicação cliente durante a indexação e recuperação.
Limitações
Não há suporte para portais Azure no assistente Importar dados.
Não há suporte para campos binários na habilidade AML usada para vetorização integrada de modelos do catálogo de modelos Microsoft Foundry.
Adicionar um algoritmo de pesquisa vetorial e um perfil vetorial
Algoritmos de pesquisa vetorial criam as estruturas de navegação de consultas durante a indexação. Para campos vetoriais binários, o sistema utiliza a métrica de distância de Hamming para realizar comparações vetoriais.
Para configurar a pesquisa vetorial para vetores binários:
Configurar um pedido Indexes - Criar ou Atualizar (API REST).
No esquema do índice, adicione uma
vectorSearchsecção que especifique perfis e algoritmos.Adicione um ou mais algoritmos de pesquisa vetorial que utilizem uma métrica de similaridade de
hamming. O algoritmo Hierárquico de Pequenos Mundos Navegáveis (HNSW) é amplamente utilizado, mas também pode utilizar a distância de Hamming com K-Vizinhos Mais Próximos exaustivos (KNN).Adicione um ou mais perfis vetoriais que especifiquem o algoritmo.
O exemplo seguinte 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 vetoriais e quaisquer outros campos que precise para cenários de pesquisa híbrida.
Os campos binários usam o tipo Collection(Edm.Byte) e contêm embeddings em formato compactado. Por exemplo, se a dimensão original de embedding for 1024, o comprimento do vetor binário empacotado é ceiling(1024 / 8) = 128. Obtém a forma compactada ao definir a propriedade vectorEncoding no campo.
Para adicionar um campo vetorial binário a um índice:
Adiciona um campo à coleção de campos e dá-lhe um nome.
Defina o tipo de dado para
Collection(Edm.Byte).Defina
vectorEncodingcomopackedBitpara codificação binária.Definir
dimensionspara1024. Especifique a dimensão vetorial original (não empacotada).Define
vectorSearchProfilepara um perfil que definiste no passo anterior.Definir
searchableparatrue.
A seguinte definição de campo é um exemplo de campo vetorial binário num esquema de índice.
"fields": [
. . .
{
"name": "my-binary-vector-field",
"type": "Collection(Edm.Byte)",
"vectorEncoding": "packedBit",
"dimensions": 1024,
"vectorSearchProfile": "myHnswProfile",
"searchable": true
},
. . .
]
Conteúdo relacionado
Consulte o repositório azure-search-vector-samples para fluxos de trabalho de ponta a ponta que incluem definição de esquemas, vetorização, indexação e consultas.
Revise o código demo de pesquisa vetorial para C#, Python e JavaScript.