Enriquecimento de IA na Pesquisa de IA do Azure

Na Pesquisa de IA do Azure, o enriquecimento de IA refere-se à integração com os serviços de IA do Azure para processar conteúdo que não é pesquisável em sua forma bruta. Através do enriquecimento, a análise e a inferência são usadas para criar conteúdo e estrutura pesquisáveis onde antes não existiam.

Como o Azure AI Search é uma solução de pesquisa de texto e vetorial, o objetivo do enriquecimento de IA é melhorar a utilidade do seu conteúdo em cenários relacionados à pesquisa. O conteúdo de origem deve ser textual (você não pode enriquecer vetores), mas o conteúdo criado por um pipeline de enriquecimento pode ser vetorizado e indexado em um índice vetorial usando habilidades como a habilidade Text Split para fragmentação e a habilidade AzureOpenAIEmbedding para codificação.

O enriquecimento da IA baseia-se nas competências.

Habilidades internas tocam em Serviços de IA do Azure. Eles aplicam as seguintes transformações e processamento ao conteúdo bruto:

  • Tradução e deteção de línguas para pesquisa multilingue
  • Reconhecimento de entidades para extrair nomes de pessoas, lugares e outras entidades de grandes blocos de texto
  • Extração de frases-chave para identificar e produzir termos importantes
  • Reconhecimento ótico de caracteres (OCR) para reconhecer texto impresso e manuscrito em arquivos binários
  • Análise de imagem para descrever o conteúdo da imagem e produzir as descrições como campos de texto pesquisáveis

Habilidades personalizadas executam seu código externo. As habilidades personalizadas podem ser usadas para qualquer processamento personalizado que você queira incluir no pipeline.

O enriquecimento de IA é uma extensão de um pipeline de indexador que se conecta a fontes de dados do Azure. Um pipeline de enriquecimento tem todos os componentes de um pipeline de indexador (indexador, fonte de dados, índice), além de um conjunto de habilidades que especifica as etapas de enriquecimento atômico.

O diagrama a seguir mostra a progressão do enriquecimento da IA:

Diagrama de um pipeline de enriquecimento.

A importação é o primeiro passo. Aqui, o indexador se conecta a uma fonte de dados e extrai conteúdo (documentos) para o serviço de pesquisa. O Armazenamento de Blobs do Azure é o recurso mais comum usado em cenários de enriquecimento de IA, mas qualquer fonte de dados com suporte pode fornecer conteúdo.

O Enrich & Index cobre a maior parte do pipeline de enriquecimento de IA:

  • O enriquecimento começa quando o indexador "quebra documentos" e extrai imagens e texto. O tipo de processamento que ocorre a seguir depende dos seus dados e das habilidades que você adicionou a um conjunto de habilidades. Se você tiver imagens, elas podem ser encaminhadas para habilidades que executam o processamento de imagens. O conteúdo de texto é enfileirado para processamento de texto e linguagem natural. Internamente, as habilidades criam um "documento enriquecido" que coleta as transformações à medida que ocorrem.

  • O conteúdo enriquecido é gerado durante a execução do conjunto de habilidades e é temporário, a menos que você o salve. Você pode habilitar um cache de enriquecimento para persistir documentos quebrados e saídas de habilidades para reutilização subsequente durante execuções futuras do conjunto de habilidades.

  • Para inserir conteúdo em um índice de pesquisa, o indexador deve ter informações de mapeamento para enviar conteúdo enriquecido para o campo de destino. Mapeamentos de campo (explícitos ou implícitos) definem o caminho de dados dos dados de origem para um índice de pesquisa. Os mapeamentos de campo de saída definem o caminho de dados de documentos enriquecidos para um índice.

  • A indexação é o processo pelo qual o conteúdo bruto e enriquecido é ingerido nas estruturas físicas de dados de um índice de pesquisa (seus arquivos e pastas). A análise lexical e a tokenização ocorrem nesta etapa.

A exploração é o último passo. A saída é sempre um índice de pesquisa que pode consultar a partir de uma aplicação cliente. Opcionalmente, a saída pode ser um repositório de conhecimento que consiste em blobs e tabelas no Armazenamento do Azure que são acessados por meio de ferramentas de exploração de dados ou processos downstream. Se você estiver criando um armazenamento de conhecimento, as projeções determinarão o caminho de dados para conteúdo enriquecido. O mesmo conteúdo enriquecido pode aparecer em índices e armazenamentos de conhecimento.

Quando usar o enriquecimento de IA

O enriquecimento é útil se o conteúdo bruto for texto não estruturado, conteúdo de imagem ou conteúdo que precise de deteção e tradução de idioma. A aplicação da IA através das habilidades incorporadas pode desbloquear este conteúdo para pesquisa de texto completo e aplicações de ciência de dados.

Você também pode criar habilidades personalizadas para fornecer processamento externo. Código de código aberto, de terceiros ou primário pode ser integrado ao pipeline como uma habilidade personalizada. Modelos de classificação que identificam características salientes de vários tipos de documentos se enquadram nessa categoria, mas qualquer pacote externo que acrescente valor ao seu conteúdo pode ser usado.

Casos de uso para habilidades incorporadas

As habilidades internas são baseadas nas APIs de serviços de IA do Azure: Azure AI Computer Vision and Language Service. A menos que sua entrada de conteúdo seja pequena, espere anexar um recurso faturável de serviços de IA do Azure para executar cargas de trabalho maiores.

Um conjunto de habilidades montado usando habilidades internas é adequado para os seguintes cenários de aplicativos:

Casos de uso para habilidades personalizadas

As habilidades personalizadas executam o código externo que você fornece e encapsulam na interface da Web de habilidades personalizadas. Vários exemplos de habilidades personalizadas podem ser encontrados no repositório do GitHub azure-search-power-skills .

As habilidades personalizadas nem sempre são complexas. Por exemplo, se você tiver um pacote existente que forneça correspondência de padrão ou um modelo de classificação de documento, poderá envolvê-lo em uma habilidade personalizada.

Armazenando a saída

No Azure AI Search, um indexador salva a saída que cria. Uma única execução de indexador pode criar até três estruturas de dados que contêm saída enriquecida e indexada.

Arquivo de dados Necessário Location Description
índice pesquisável Necessário Serviço de pesquisa Usado para pesquisa de texto completo e outros formulários de consulta. Especificar um índice é um requisito do indexador. O conteúdo do índice é preenchido a partir de saídas de habilidades, além de quaisquer campos de origem que são mapeados diretamente para campos no índice.
armazenamento de conhecimento Opcional Armazenamento do Azure Usado para aplicativos downstream, como mineração de conhecimento ou ciência de dados. Um repositório de conhecimento é definido dentro de um conjunto de habilidades. Sua definição determina se seus documentos enriquecidos são projetados como tabelas ou objetos (arquivos ou blobs) no Armazenamento do Azure.
cache de enriquecimento Opcional Armazenamento do Azure Usado para enriquecimento de cache para reutilização em execuções subsequentes de conjunto de habilidades. O cache armazena conteúdo importado e não processado (documentos pirateados). Ele também armazena os documentos enriquecidos criados durante a execução do conjunto de habilidades. O cache é útil se você estiver usando análise de imagem ou OCR e quiser evitar o tempo e as despesas de reprocessamento de arquivos de imagem.

Índices e armazenamentos de conhecimento são totalmente independentes uns dos outros. Embora você deva anexar um índice para satisfazer os requisitos do indexador, se seu único objetivo for um armazenamento de conhecimento, você poderá ignorar o índice depois que ele for preenchido.

Explorar conteúdo

Depois de definir e carregar um índice de pesquisa ou um repositório de conhecimento, você pode explorar seus dados.

Consultar um índice de pesquisa

Execute consultas para acessar o conteúdo enriquecido gerado pelo pipeline. O índice é como qualquer outro que você possa criar para o Azure AI Search: você pode complementar a análise de texto com analisadores personalizados, invocar consultas de pesquisa difusas, adicionar filtros ou experimentar perfis de pontuação para ajustar a relevância da pesquisa.

Usar ferramentas de exploração de dados em um repositório de conhecimento

No Armazenamento do Azure, um repositório de conhecimento pode assumir as seguintes formas: um contêiner de blob de documentos JSON, um contêiner de blob de objetos de imagem ou tabelas no Armazenamento de Tabela. Você pode usar o Gerenciador de Armazenamento, o Power BI ou qualquer aplicativo que se conecte ao Armazenamento do Azure para acessar seu conteúdo.

  • Um contêiner de blob captura documentos enriquecidos em sua totalidade, o que é útil se você estiver criando um feed para outros processos.

  • Uma tabela é útil se você precisar de fatias de documentos enriquecidos ou se quiser incluir ou excluir partes específicas da saída. Para análise no Power BI, as tabelas são a fonte de dados recomendada para exploração e visualização de dados no Power BI.

Disponibilidade e preços

O enriquecimento está disponível em regiões que têm serviços de IA do Azure. Você pode verificar a disponibilidade de enriquecimento na página Produtos do Azure disponíveis por região .

A faturação segue um modelo de preços pré-pagos. Os custos de usar habilidades internas são repassados quando uma chave de serviços de IA do Azure de várias regiões é especificada no conjunto de habilidades. Também há custos associados à extração de imagens, conforme medido pelo Azure AI Search. Extração de texto e habilidades de utilidade, no entanto, não são faturáveis. Para obter mais informações, consulte Como você é cobrado pelo Azure AI Search.

Lista de verificação: um fluxo de trabalho típico

Um pipeline de enriquecimento consiste em indexadores que têm conjuntos de habilidades. Após a indexação, você pode consultar um índice para validar seus resultados.

Comece com um subconjunto de dados em uma fonte de dados suportada. O design de indexadores e conjuntos de habilidades é um processo iterativo. O trabalho é mais rápido com um pequeno conjunto de dados representativo.

  1. Crie uma fonte de dados que especifique uma conexão com seus dados.

  2. Crie um conjunto de habilidades. A menos que seu projeto seja pequeno, você deve anexar um recurso multisserviço da IA do Azure. Se você estiver criando uma loja de conhecimento, defina-a dentro do conjunto de habilidades.

  3. Crie um esquema de índice que defina um índice de pesquisa.

  4. Crie e execute o indexador para reunir todos os componentes acima. Esta etapa recupera os dados, executa o conjunto de habilidades e carrega o índice.

    Um indexador também é onde você especifica mapeamentos de campo e mapeamentos de campo de saída que configuram o caminho de dados para um índice de pesquisa.

    Opcionalmente, habilite o cache de enriquecimento na configuração do indexador. Esta etapa permite que você reutilize enriquecimentos existentes mais tarde.

  5. Execute consultas para avaliar resultados ou inicie uma sessão de depuração para resolver quaisquer problemas do conjunto de habilidades.

Para repetir qualquer uma das etapas acima, redefina o indexador antes de executá-lo. Ou exclua e recrie os objetos em cada execução (recomendado se você estiver usando a camada gratuita). Se você habilitou o cache, o indexador extrai do cache se os dados estiverem inalterados na origem e se suas edições no pipeline não invalidarem o cache.

Próximos passos