Agrupamento e inserção de dados integrados no Azure AI Search
A vetorização integrada é uma extensão dos pipelines de indexação e consulta na Pesquisa de IA do Azure. Ela acrescenta os seguintes recursos:
- Agrupamento de dados durante a indexação
- Conversão de texto em vetor durante a indexação
- Conversão de texto em vetor durante consultas
O agrupamento de dados não é um requisito difícil, mas, a menos que seus documentos brutos sejam pequenos, o agrupamento é necessário para atender aos requisitos de entrada de token de modelos de inserção.
As conversões de vetor são unidirecionais: texto em vetor. Não há conversão de vetor em texto para consultas ou resultados (por exemplo, você não pode converter um resultado de vetor em uma cadeia de caracteres legível para os usuários).
O agrupamento e a vetorização de dados integrados aceleram o desenvolvimento e minimizam as tarefas de manutenção durante a ingestão de dados e o tempo de consulta, pois há menos componentes externos para configurar e gerenciar. Essa funcionalidade já está em disponibilidade geral.
Usar a vetorização integrada durante a indexação
Para conversões de agrupamento de dados e de texto para vetor, você está usando uma dependência dos seguintes componentes:
Um indexador, que recupera dados brutos de uma fonte de dados com suporte e serve como o mecanismo de pipeline.
Um índice de vetor para receber o conteúdo em partes e vetorizado.
Um conjunto de habilidades configurado para:
Habilidade de Divisão de Texto, usada para agrupar os dados.
Uma habilidade de inserção, usada para gerar matrizes de vetor, que pode ser qualquer uma das seguintes:
Habilidade AzureOpenAIEmbedding, anexada a text-embedding-ada-002,text-embedding-3-small, text-embedding-3-large no Serviço OpenAI do Azure.
Habilidade personalizada que aponta para outro modelo de inserção no Azure ou em outro site.
Habilidade de Visão de IA do Azure (versão prévia) que aponta para a API multimodal para a Visão de IA do Azure.
Habilidade de AML apontando para o catálogo de modelos no Estúdio de IA do Azure que aponta para modelos selecionados no catálogo de modelos.
Usar a vetorização integrada em consultas
Para conversão de texto em vetor durante consultas, você usa uma dependência destes componentes:
Uma consulta que especifica um ou mais campos de vetor.
Uma cadeia de caracteres de texto convertida em um vetor no momento da consulta.
Um vetorizador, definido no esquema de índice, atribuído a um campo de vetor e usado automaticamente no momento da consulta para converter uma consulta de texto em um vetor. O vetorizador configurado deve corresponder ao modelo de inserção usado para codificar seu conteúdo.
Diagrama de componente
O diagrama a seguir mostra os componentes da vetorização integrada.
O fluxo de trabalho é um pipeline do indexador. Os indexadores recuperam dados de fontes de dados com suporte e iniciam o enriquecimento de dados (ou a IA aplicada) chamando o Azure OpenAI, os serviços de IA do Azure ou código personalizado para conversões de texto em vetor ou outro processamento.
O diagrama se concentra na vetorização integrada, mas sua solução não está limitada a esta lista. Você pode adicionar mais habilidades para enriquecimento de IA, criar um repositório de conhecimento, adicionar classificação semântica, adicionar ajuste de relevância e outros recursos de consulta.
Disponibilidade e preços
A vetorização integrada está disponível em todas as regiões e camadas. No entanto, se você estiver usando as habilidades e vetores do OpenAI do Azure e da IA do Azure, verifique se sua conta de vários serviços de IA do Azure está disponível nas mesmas regiões da Pesquisa de IA do Azure.
Se você estiver usando uma habilidade personalizada e um mecanismo de hospedagem do Azure (como um aplicativo de funções do Azure, o Aplicativo Web do Azure e o Kubernetes do Azure), verifique a página Produto do Azure por região para ver a disponibilidade de recursos.
O agrupamento de dados (habilidade Divisão de Texto) é gratuito e está disponível em todos os serviços de IA do Azure em todas as regiões.
Observação
Alguns serviços de pesquisa mais antigos criados antes de 1º de janeiro de 2019 são implantados na infraestrutura que não dá suporte a cargas de trabalho vetoriais. Se você tentar adicionar um campo vetorial a um esquema e receber um erro, ele será resultado de serviços desatualizados. Nessa situação, você deve criar um novo serviço de pesquisa para experimentar o recurso vetorial.
Quais cenários podem ser compatíveis com a vetorização integrada?
Subdivide documentos grandes em partes, úteis para cenários de vetor e não de vetor. Para vetores, as partes ajudam você a atender às restrições de entrada de modelos de inserção. Para cenários de não vetor, você pode ter um aplicativo de pesquisa no estilo de chat em que o GPT está montando respostas de partes indexadas. Você pode usar partes vetorizadas ou não habilitadas para pesquisa no estilo de chat.
Crie um repositório de vetores em que todos os campos são campos vetoriais e a ID do documento (necessária para um índice de pesquisa) é o único campo de cadeia de caracteres. Consulte o repositório vetorial para recuperar as IDs do documento e, em seguida, envie os campos vetoriais do documento para outro modelo.
Combine campos vetoriais e de texto para pesquisa híbrida, com ou sem classificação semântica. A vetorização integrada simplifica todos os cenários compatíveis com a busca em vetores.
Quando usar a vetorização integrada
É recomendável usar o suporte de vetorização interna do Estúdio de IA do Azure. Se essa abordagem não atender às suas necessidades, você pode criar indexadores e conjuntos de habilidades que invocam a vetorização integrada usando as interfaces programáticas do Azure AI Search.
Como usar a vetorização integrada
Para vetorização somente de consulta:
- Adicione um vetorizador a um índice. Deve ser o mesmo modelo de inserção usado para gerar vetores no índice.
- Atribua o vetor a um perfil de vetor e atribua um perfil de vetor ao campo de vetor.
- Formule uma consulta de vetor que especifique a cadeia de caracteres de texto a ser vetorizada.
Um cenário mais comum: agrupamento de dados e vetorização durante a indexação:
- Crie uma conexão da fonte de dados com uma fonte de dados com suporte para indexação baseada em indexador.
- Crie um conjunto de habilidades que chame a habilidade Divisão de Texto e AzureOpenAIEmbeddingModel ou outra habilidade de inserção para vetorizar as partes.
- Crer um índice que especifica um vetorizador para o tempo de consulta e o atribui a campos vetoriais.
- Crie um indexador para conduzir tudo, desde a recuperação de dados até a execução do conjunto de habilidades, por meio da indexação. É recomendável executar o indexador em um agendamento para recuperar documentos alterados ou documentos que foram perdidos devido à limitação.
Opcionalmente, crie índices secundários para cenários avançados em que o conteúdo em partes está em um índice e não dividido em partes em outro índice. Índices em partes (ou índices secundários) são úteis para aplicativos de RAG.
Dica
Experimente o novo assistente Importar e vetorizar dados no portal do Azure para explorar a vetorização integrada, antes de gravar qualquer código.
Proteger conexões com vetores e modelos
Se a sua arquitetura exigir conexões privadas que ignorem a Internet, você poderá criar uma conexão de link privado compartilhado com os modelos de inserção usados pelas habilidades durante a indexação e pelos vetorizadores no momento da consulta.
Os links privados compartilhados funcionam apenas para conexões de Azure para Azure. Se você estiver se conectando ao OpenAI ou a outro modelo externo, a conexão deverá ser feita pela Internet pública.
Para cenários de vetorização, você usará:
openai_account
para inserir modelos hospedados em um recurso do OpenAI do Azure.sites
para inserir modelos acessados como uma habilidade personalizada ou um vetor personalizado. A ID do gruposites
destina-se aos serviços de aplicativo e funções do Azure, que você pode usar para hospedar um modelo de inserção que não seja um dos modelos de inserção do OpenAI do Azure.
Limitações
Verifique se você sabe as cotas e os limites do Azure OpenAI para inserir modelos. O Azure AI Search tem políticas de repetição, mas se a cota estiver esgotada, as repetições falharão.
Os limites de token por minuto do Azure OpenAI são por modelo, por assinatura. Tenha isso em mente se você estiver usando um modelo de inserção para cargas de trabalho de consulta e indexação. Se possível, siga as melhores práticas. Tenha um modelo de inserção para cada carga de trabalho e tente implantá-los em assinaturas diferentes.
No Azure AI Search, lembre-se de que há limites de serviço por camada e cargas de trabalho.
Benefícios da vetorização integrada
Estes são alguns dos principais benefícios da vetorização integrada:
Não há pipeline de agrupamento e vetorização de dados separados. O código é mais simples de gravar e manter.
Indexação automática de ponta a ponta. Quando os dados são alterados na origem (como no Armazenamento do Azure, no SQL do Azure ou no Cosmos DB), o indexador pode mover essas atualizações em todo o pipeline, desde a recuperação até a quebra de documentos, por meio de enriquecimento de IA opcional, agrupamento de dados, vetorização e indexação.
A lógica de repetição e envio em lote é interna (não configurável). A Pesquisa de IA do Azure tem políticas internas de repetição para erros de limitação que aparecerem devido ao ponto de extremidade do Serviço OpenAI do Azure ter atingido o limite máximo de cotas de token para o modelo de inserção. É recomendável colocar o indexador em um agendamento (por exemplo, a cada 5 minutos) para que o indexador possa processar todas as chamadas que foram limitadas pelo ponto de extremidade do Serviço OpenAI do Azure, apesar das políticas de repetição.
Projeção conteúdo em partes para índices secundários. Os índices secundários são criados como você faria com qualquer índice de pesquisa (um esquema com campos e outros constructos), mas eles são preenchidos em conjunto com um índice primário por um indexador. O conteúdo de cada documento de origem flui para os campos nos índices primários e secundários durante a mesma execução de indexação.
Os índices secundários destinam-se a aplicativos de estilo de perguntas e respostas ou de chat. O índice secundário contém informações granulares para correspondências mais específicas, mas o índice pai tem mais informações e geralmente pode produzir uma resposta mais completa. Quando uma correspondência é encontrada no índice secundário, a consulta retorna o documento pai do índice primário. Por exemplo, considerando um PDF grande como documento de origem, o índice primário pode ter informações básicas (título, data, autor, descrição), enquanto um índice secundário tem partes de conteúdo pesquisável.