Partilhar via


Fragmentação e incorporação de dados integrados na Pesquisa de IA do Azure

A vetorização integrada é uma extensão dos pipelines de indexação e consulta no Azure AI Search. Ele adiciona os seguintes recursos:

  • Fragmentação de dados durante a indexação
  • Conversão de texto em vetor durante a indexação
  • Conversão de texto em vetor durante consultas

A fragmentação de dados não é um requisito difícil, mas a menos que seus documentos brutos sejam pequenos, a fragmentação é necessária para atender aos requisitos de entrada de token dos modelos de incorporação.

As conversões vetoriais são unidirecionais: texto para vetor. Não há conversão vetorial em texto para consultas ou resultados (por exemplo, não é possível converter um resultado vetorial em uma cadeia de caracteres legível por humanos).

A fragmentação e vetorização de dados integradas acelera o desenvolvimento e minimiza 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. Esta capacidade está agora disponível em geral.

Usando vetorização integrada durante a indexação

Para fragmentação de dados e conversões de texto para vetor, você depende dos seguintes componentes:

Usando vetorização integrada em consultas

Para conversão de texto em vetor durante consultas, você depende destes componentes:

Diagrama de componentes

O diagrama a seguir mostra os componentes da vetorização integrada.

Diagrama de componentes em um fluxo de trabalho de vetorização integrado.

O fluxo de trabalho é um pipeline de indexador. Os indexadores recuperam dados de fontes de dados com suporte e iniciam o enriquecimento de dados (ou IA aplicada) chamando serviços do Azure OpenAI ou Azure AI ou código personalizado para conversões de texto para 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 níveis. No entanto, se você estiver usando o Azure OpenAI e as habilidades e vetorizadores do Azure AI, verifique se sua conta multisserviço do Azure AI está disponível nas mesmas regiões que o Azure AI Search.

Se você estiver usando uma habilidade personalizada e um mecanismo de hospedagem do Azure (como um aplicativo de função do Azure, o Aplicativo Web do Azure e o Kubernetes do Azure), verifique a página do produto do Azure por região para saber a disponibilidade do recurso.

A fragmentação de dados (habilidade Divisão de Texto) é gratuita e está disponível em todos os serviços de IA do Azure em todas as regiões.

Nota

Alguns serviços de pesquisa mais antigos criados antes de 1º de janeiro de 2019 são implantados em infraestruturas que não suportam cargas de trabalho vetoriais. Se você tentar adicionar um campo vetorial a um esquema e receber um erro, isso é resultado de serviços desatualizados. Nessa situação, você deve criar um novo serviço de pesquisa para experimentar o recurso de vetor.

Que cenários a vetorização integrada pode suportar?

  • Subdivida documentos grandes em partes, útil para cenários vetoriais e não vetoriais. Para vetores, os blocos ajudam a atender às restrições de entrada dos modelos de incorporação. Para cenários não vetoriais, você pode ter um aplicativo de pesquisa no estilo de bate-papo onde a GPT está montando respostas de partes indexadas. Você pode usar blocos vetorizados ou não vetorizados para pesquisa no estilo de chat.

  • Crie um repositório vetorial onde 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 de vetores para recuperar IDs de 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 suportados pela pesquisa vetorial.

Quando usar vetorização integrada

Recomendamos usar o suporte interno de vetorização do Azure AI Studio. Se essa abordagem não atender às suas necessidades, você poderá criar indexadores e conjuntos de habilidades que invocam vetorização integrada usando as interfaces programáticas do Azure AI Search.

Como usar a vetorização integrada

Para vetorização somente consulta:

  1. Adicione um vetorizador a um índice. Deve ser o mesmo modelo de incorporação usado para gerar vetores no índice.
  2. Atribua o vetorizador a um perfil vetorial e, em seguida, atribua um perfil vetorial ao campo vetorial.
  3. Formule uma consulta vetorial que especifique a cadeia de caracteres de texto a ser vetorizada.

Um cenário mais comum - fragmentação e vetorização de dados durante a indexação:

  1. Crie uma conexão de fonte de dados com uma fonte de dados suportada para indexação baseada em indexador.
  2. Crie um conjunto de habilidades que chame a habilidade Divisão de Texto para fragmentação e AzureOpenAIEmbeddingModel ou outra habilidade de incorporação para vetorizar as partes.
  3. Crie um índice que especifique um vetorizador para o tempo de consulta e atribua-o a campos vetoriais.
  4. Crie um indexador para conduzir tudo, desde a recuperação de dados até a execução do conjunto de habilidades, passando pela indexação. Recomendamos executar o indexador em um cronograma para pegar documentos alterados ou quaisquer 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 fragmentado em outro índice. Os índices Chunked (ou índices secundários) são úteis para aplicativos RAG.

Gorjeta

Experimente o novo assistente Importar e vetorizar dados no portal do Azure para explorar a vetorização integrada antes de escrever qualquer código.

Conexões seguras com vetorizadores e modelos

Se sua arquitetura exigir conexões privadas que ignorem a Internet, você poderá criar uma conexão de link privado compartilhado para os modelos de incorporação usados pelas habilidades durante a indexação e vetorizadores no momento da consulta.

Os links privados compartilhados só funcionam para conexões Azure-to-Azure. Se você estiver se conectando ao OpenAI ou outro modelo externo, a conexão deve ser pela internet pública.

Para cenários de vetorização, você usaria:

  • openai_account para incorporar modelos hospedados em um recurso do Azure OpenAI.

  • sitespara incorporar modelos acessados como uma habilidade personalizada ou vetorizador personalizado. A sites ID de grupo é para serviços de aplicativo e funções do Azure, que você pode usar para hospedar um modelo de incorporação que não seja um dos modelos de incorporação do Azure OpenAI.

Limitações

Certifique-se de conhecer as cotas e limites do Azure OpenAI para incorporar modelos. O Azure AI Search tem políticas de repetição, mas se a cota estiver esgotada, as tentativas falharão.

Os limites de token por minuto do Azure OpenAI são por modelo, por assinatura. Lembre-se disso se estiver usando um modelo de incorporação para cargas de trabalho de consulta e indexação. Se possível, siga as melhores práticas. Tenha um modelo de incorporaçã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

Aqui estão alguns dos principais benefícios da vetorização integrada:

  • Nenhum pipeline separado de fragmentação e vetorização de dados. O código é mais simples de escrever e manter.

  • Automatize a indexação de ponta a ponta. Quando os dados são alterados na origem (como no Armazenamento do Azure, no Azure SQL ou no Cosmos DB), o indexador pode mover essas atualizações por todo o pipeline, desde a recuperação até a quebra de documentos, por meio de enriquecimento de IA opcional, fragmentação de dados, vetorização e indexação.

  • A lógica de envio em lote e repetição é incorporada (não configurável). O Azure AI Search tem políticas internas de repetição para erros de limitação que surgem devido ao ponto de extremidade do Azure OpenAI atingir o máximo de cotas de token para o modelo de incorporação. Recomendamos colocar o indexador em um cronograma (por exemplo, a cada 5 minutos) para que o indexador possa processar quaisquer chamadas que foram limitadas pelo ponto de extremidade do Azure OpenAI, apesar das políticas de repetição.

  • Projeção de conteúdo fragmentado em índices secundários. Os índices secundários são criados como você faria com qualquer índice de pesquisa (um esquema com campos e outras construções), 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 campos em índices primários e secundários durante a mesma execução de indexação.

    Os índices secundários destinam-se a aplicações de perguntas e respostas ou de estilo 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, supondo um PDF grande como um 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.

Próximos passos