Melhoramento de IA no Azure Cognitive Search

Na Pesquisa Cognitiva, o melhoramento de IA é a aplicação de modelos de machine learning em conteúdos que não são pesquisáveis em texto completo na sua forma não processada. Através do melhoramento, a análise e a inferência são utilizados para criar conteúdo e estrutura pesquisáveis onde nenhum existia anteriormente.

Uma vez que Azure Cognitive Search é uma solução de pesquisa de texto completo, o objetivo do melhoramento de IA é melhorar o utilitário do seu conteúdo em cenários relacionados com a pesquisa:

  • Aplicar tradução e deteção de idioma para pesquisa multilinngue
  • Aplicar o reconhecimento de entidades para extrair nomes de pessoas, locais e outras entidades de grandes segmentos de texto
  • Aplicar extração de expressões-chave para identificar e produzir termos importantes
  • Aplicar o Reconhecimento Ótico de Carateres (OCR) para reconhecer texto impresso e manuscrito em ficheiros binários
  • Aplicar a análise de imagens para descrever o conteúdo da imagem e exportar as descrições como campos de texto pesquisáveis

O melhoramento de IA é uma extensão de um pipeline de indexador que se liga às origens de dados do Azure. Um pipeline de melhoramento tem todos os componentes de um pipeline de indexador (indexador, origem de dados, índice), além de um conjunto de competências que especifica passos de melhoramento atómico.

O diagrama seguinte mostra a progressão do melhoramento da IA:

Diagrama de um pipeline de melhoramento.

Importar é o primeiro passo. Aqui, o indexador liga-se a uma origem de dados e extrai conteúdo (documentos) para o serviço de pesquisa. Armazenamento de Blobs do Azure é o recurso mais comum utilizado em cenários de melhoramento de IA, mas qualquer origem de dados suportada pode fornecer conteúdo.

Melhorar & O índice abrange a maior parte do pipeline de melhoramento de IA:

  • O melhoramento começa quando o indexador "quebra documentos" e extrai imagens e texto. O tipo de processamento que ocorre a seguir dependerá dos seus dados e das competências que adicionou a um conjunto de competências. Se tiver imagens, estas podem ser reencaminhadas para competências que executam o processamento de imagens. O conteúdo do texto está em fila de espera para processamento de texto e linguagem natural. Internamente, as competências criam um "documento melhorado" que recolhe as transformações à medida que ocorrem.

  • O conteúdo melhorado é gerado durante a execução do conjunto de competências e é temporário, a menos que o guarde. Pode permitir que uma cache de melhoramento persista em documentos rachados e saídas de competências para reutilização subsequente durante futuras execuções de conjuntos de competências.

  • Para colocar conteúdo num índice de pesquisa, o indexador tem de ter informações de mapeamento para enviar conteúdo melhorado para o campo de destino. Os mapeamentos de campos (explícitos ou implícitos) definem o caminho dos dados de origem para um índice de pesquisa. Os mapeamentos de campos de saída definem o caminho dos dados de documentos melhorados para um índice.

  • A indexação é o processo em que os conteúdos não processados e melhorados são ingeridos nas estruturas de dados físicas de um índice de pesquisa (os respetivos ficheiros e pastas). A análise lexical e a tokenização ocorrem neste passo.

A exploração é o último passo. O resultado é sempre um índice de pesquisa que pode consultar a partir de uma aplicação cliente. Opcionalmente, a saída pode ser um arquivo de conhecimento composto por blobs e tabelas no Armazenamento do Azure que são acedidos através de ferramentas de exploração de dados ou processos a jusante. Se estiver a criar um arquivo de conhecimento, as projeções determinam o caminho de dados para conteúdos melhorados. O mesmo conteúdo melhorado pode aparecer nos índices e nos arquivos de conhecimento.

Quando utilizar o melhoramento de IA

O melhoramento é útil se o conteúdo não processado for texto não estruturado, conteúdo de imagem ou conteúdo que necessite de deteção e tradução de idiomas. A aplicação de IA através das competências incorporadas pode desbloquear este conteúdo para aplicações de pesquisa de texto completo e de ciência de dados.

Também pode criar competências personalizadas para fornecer processamento externo. O código open source, de terceiros ou de terceiros pode ser integrado no pipeline como uma competência personalizada. Os modelos de classificação que identificam características importantes de vários tipos de documentos enquadram-se nesta categoria, mas qualquer pacote externo que adicione valor ao seu conteúdo pode ser utilizado.

Casos de utilização para competências incorporadas

As competências incorporadas baseiam-se nas APIs dos serviços de IA do Azure: Azure AIComputer Vision and Language Service. A menos que a entrada de conteúdo seja pequena, espere anexar um recurso de serviços do Azure AI faturável para executar cargas de trabalho maiores.

Um conjunto de competências montado com competências incorporadas é adequado para os seguintes cenários de aplicações:

Casos de utilização para competências personalizadas

As competências personalizadas executam código externo que fornece e encapsulam na interface Web de competências personalizadas. Pode encontrar vários exemplos de competências personalizadas no repositório do GitHub azure-search-power-skills .

As competências personalizadas nem sempre são complexas. Por exemplo, se tiver um pacote existente que forneça uma correspondência de padrões ou um modelo de classificação de documentos, pode encapsula-lo numa competência personalizada.

A armazenar a saída

No Azure Cognitive Search, um indexador guarda o resultado que cria. Uma única execução de indexador pode criar até três estruturas de dados que contêm saídas melhoradas e indexadas.

Arquivo de dados Necessário Localização Description
índice pesquisável Necessário Serviço de pesquisa Utilizado para pesquisa em 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 competências, além de quaisquer campos de origem mapeados diretamente para campos no índice.
arquivo de conhecimento Opcional Storage do Azure Utilizado para aplicações a jusante, como extração de conhecimentos ou ciência de dados. Um arquivo de conhecimento é definido dentro de um conjunto de competências. A definição determina se os seus documentos melhorados são projetados como tabelas ou objetos (ficheiros ou blobs) no Armazenamento do Azure.
cache de melhoramento Opcional Storage do Azure Utilizado para melhorar a colocação em cache para reutilização em execuções de conjuntos de competências subsequentes. A cache armazena conteúdo importado e não processado (documentos rachados). Também armazena os documentos melhorados criados durante a execução do conjunto de competências. A colocação em cache é particularmente útil se estiver a utilizar a análise de imagens ou o OCR e quiser evitar o tempo e a despesa de reprocessamento de ficheiros de imagem.

Os índices e os arquivos de conhecimento são totalmente independentes uns dos outros. Embora tenha de anexar um índice para satisfazer os requisitos do indexador, se o seu único objetivo for um arquivo de conhecimento, pode ignorar o índice depois de ser preenchido. No entanto, evite eliminá-lo. Se quiser executar novamente o indexador e o conjunto de competências, precisará do índice para que o indexador seja executado.

Explorar conteúdo

Depois de definir e carregar um índice de pesquisa ou um arquivo de conhecimento, pode explorar os respetivos dados.

Consultar um índice de pesquisa

Execute consultas para aceder ao conteúdo melhorado gerado pelo pipeline. O índice é como qualquer outro que possa criar para Azure Cognitive Search: pode complementar a análise de texto com analisadores personalizados, invocar consultas de pesquisa difusas, adicionar filtros ou experimentar perfis de classificação para otimizar a relevância da pesquisa.

Utilizar ferramentas de exploração de dados num arquivo de conhecimento

No Armazenamento do Azure, um arquivo de conhecimento pode assumir os seguintes formulários: um contentor de blobs de documentos JSON, um contentor de blobs de objetos de imagem ou tabelas no Armazenamento de Tabelas. Pode utilizar Explorador de Armazenamento, o Power BI ou qualquer aplicação que se ligue ao Armazenamento do Azure para aceder aos seus conteúdos.

  • Um contentor de blobs captura documentos melhorados na totalidade, o que é útil se estiver a criar um feed noutros processos.

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

Disponibilidade e preços

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

A faturação segue um modelo de preços pay as you go. Os custos de utilização de competências incorporadas são transmitidos quando uma chave de serviços do Azure AI de várias regiões é especificada no conjunto de competências. Também existem custos associados à extração de imagens, conforme medido pelo Cognitive Search. No entanto, as competências de extração de texto e utilidade não são faturáveis. Para obter mais informações, veja Como lhe são cobradas Azure Cognitive Search.

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

Um pipeline de melhoramento consiste em indexadores que têm conjuntos de competências. Após a indexação, pode consultar um índice para validar os resultados.

Comece com um subconjunto de dados numa origem de dados suportada. O design do indexador e do conjunto de competências é um processo iterativo. O trabalho é mais rápido com um pequeno conjunto de dados representativos.

  1. Crie uma origem de dados que especifique uma ligação aos seus dados.

  2. Crie um conjunto de competências. A menos que o seu projeto seja pequeno, vai querer anexar um recurso multi-serviço de IA do Azure. Se estiver a criar um arquivo de conhecimento, defina-o no conjunto de competências.

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

  4. Crie e execute o indexador para reunir todos os componentes acima. Este passo obtém os dados, executa o conjunto de competências e carrega o índice.

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

    Opcionalmente, ative a colocação em cache de melhoramento na configuração do indexador. Este passo permite-lhe reutilizar melhoramentos existentes mais tarde.

  5. Execute consultas para avaliar resultados ou iniciar uma sessão de depuração para resolver quaisquer problemas do conjunto de competências.

Para repetir qualquer um dos passos acima, reponha o indexador antes de o executar. Em alternativa, elimine e recrie os objetos em cada execução (recomendado se estiver a utilizar o escalão gratuito). Se tiver ativado a colocação em cache, o indexador irá solicitar da cache se os dados não forem alterados na origem e se as edições ao pipeline não invalidarem a cache.

Passos seguintes