Gerar inserções para consultas de pesquisa e documentos
O IA do Azure Search não hospeda modelos de vetorização, portanto, um dos seus desafios é criar inserções para entradas e saídas de consulta. Você pode usar qualquer modelo de inserção com suporte, mas este artigo pressupõe modelos de inserção do OpenAI do Azure para as etapas.
Recomendamos a vetorização integrada, que fornece agrupamento e vetorização internos de dados. A vetorização integrada assume uma dependência de indexadores, conjuntos de habilidades e habilidades personalizadas ou internas que aponta para um modelo que é executado externamente da Pesquisa de IA do Azure.
Se você quiser lidar com o agrupamento de dados e a vetorização por conta própria, fornecemos demonstrações no repositório de exemplo que mostram como se integrar a outras soluções de comunidade.
Como os modelos de inserção são usados em consultas de vetor
As entradas de consulta são vetores ou texto ou imagens que são convertidas em vetores durante o processamento de consulta. A solução interna na Pesquisa de IA do Azure é usar um vetorizador.
Como alternativa, você também pode lidar com a conversão por conta própria passando a entrada de consulta para um modelo de inserção de sua escolha. Para evitar limitação de taxa, você pode implementar a lógica de repetição em sua carga de trabalho. Para a demonstração do Python, usamos tenacity.
As saídas de consulta são todos os documentos correspondentes encontrados em um índice de pesquisa. Seu índice de pesquisa deve ter sido carregado anteriormente com documentos com um ou mais campos de vetor com inserções. Seja qual for o modelo usado para indexação, use o mesmo modelo para consultas.
Criar recursos na mesma região
A vetorização integrada exige que os recursos estejam na mesma região:
Para dar suporte a consultas híbridas que incluem classificação semântica ou se você quiser experimentar a integração de modelos de machine learning usando uma habilidade personalizada em um pipeline de enriquecimento de IA, selecione uma região da Pesquisa de IA do Azure que fornece esses recursos.
Gerar uma inserção para uma consulta improvisada
O código Python a seguir gera uma incorporação que você pode colar na propriedade "valores" de uma consulta vetorial.
!pip install openai
import openai
openai.api_type = "azure"
openai.api_key = "YOUR-API-KEY"
openai.api_base = "https://YOUR-OPENAI-RESOURCE.openai.azure.com"
openai.api_version = "2024-02-01"
response = openai.Embedding.create(
input="How do I use Python in VSCode?",
engine="text-embedding-ada-002"
)
embeddings = response['data'][0]['embedding']
print(embeddings)
A saída é uma matriz de vetores de 1.536 dimensões.
Dicas e recomendações para a integração de modelos de inserção
Identificar casos de uso: avalie os casos de uso específicos em que a integração de modelo de inserção para recursos de busca em vetores pode agregar valor à solução de pesquisa. Isso pode incluir conteúdo de imagem multimodal ou correspondente com conteúdo de texto, pesquisa multilíngue ou pesquisa de similaridade.
Criar uma estratégia de agrupamento: os modelos de inserção têm limites no número de tokens que eles podem aceitar, o que introduz um requisito de agrupamento de dados para arquivos grandes. Para obter mais informações, consulte Dividir documentos grandes em partes para soluções de busca em vetores.
Otimizar o custo e o desempenho: a busca em vetores pode fazer uso intensivo de recursos e está sujeita a limites máximos, portanto, considere apenas a vetorização dos campos que contêm significado semântico. Reduza o tamanho do vetor para que você possa armazenar mais vetores pelo mesmo preço.
Escolher o modelo de inserção correto: selecione um modelo apropriado para seu caso de uso específico, como inserções de palavras para pesquisas baseadas em texto ou inserções de imagem para pesquisas visuais. Considere o uso de modelos pré-treinados, como text-embedding-ada-002 do OpenAI ou a API REST de Recuperação de Imagem da Pesquisa Visual Computacional da IA do Azure.
Normalizar os comprimentos do vetor: verifique se os comprimentos do vetor são normalizados antes de armazená-los no índice de pesquisa para melhorar a precisão e o desempenho da pesquisa de similaridade. A maioria dos modelos pré-treinados já está normalizada, mas não todos.
Ajustar o modelo: se necessário, ajuste o modelo selecionado em seus dados específicos do domínio para melhorar seu desempenho e relevância para seu aplicativo de pesquisa.
Testar e iterar: teste e refine continuamente sua integração de modelo de inserção para obter o desempenho de pesquisa desejado e a satisfação do usuário.