Repositório de conhecimento na IA do Azure Search

O repositório de conhecimento é o repositório secundário para conteúdo enriquecido com IA criado por um conjunto de habilidades na Pesquisa de IA do Azure. Na Pesquisa de IA do Azure, um trabalho de indexação sempre envia a saída para um índice de pesquisa, mas se você anexar um conjunto de habilidades a um indexador, poderá, opcionalmente, também enviar a saída enriquecida por IA para um contêiner ou tabela no Armazenamento do Microsoft Azure. Um repositório de conhecimento pode ser usado para análise independente ou processamento downstream em cenários que não são de pesquisa, como mineração de conhecimento.

Os dois resultados da indexação, um índice de pesquisa e um repositório de conhecimento, são produtos mutuamente exclusivos do mesmo pipeline. Eles são derivados das mesmas entradas e contêm os mesmos dados, mas seu conteúdo é estruturado, armazenado e usado em aplicativos diferentes.

Pipeline with skillset

Fisicamente, um repositório de conhecimento é um Armazenamento do Azure, que pode ser o Armazenamento de Tabelas do Azure, o Armazenamento de Blobs do Azure ou ambos. Qualquer ferramenta ou processo que pode se conectar ao Armazenamento do Azure pode consumir o conteúdo de um repositório de conhecimento. Não há suporte para consultas na Pesquisa de IA do Azure para recuperar conteúdo de um repositório de conhecimento.

Quando exibido por meio do portal do Azure, um repositório de conhecimento se parece com qualquer outra coleção de tabelas, objetos ou arquivos. A captura de tela a seguir mostra um repositório de conhecimento composto por três tabelas. Você pode adotar uma convenção de nomenclatura, como um prefixo kstore, para manter seu conteúdo unido.

Skills read and write from enrichment tree

Vantagens do repositório de dados de conhecimento

Os principais benefícios de um armazenamento de conhecimento são duplos: acesso flexível ao conteúdo e capacidade de moldar dados.

Ao contrário de um índice de pesquisa que só pode ser acessado por meio de consultas na Pesquisa de IA do Azure, um armazenamento de conhecimento é acessível a qualquer ferramenta, aplicativo ou processo que ofereça suporte a conexões com o Armazenamento do Microsoft Azure. Essa flexibilidade abre novos cenários para consumir o conteúdo analisado e enriquecido produzido por um pipeline de enriquecimento.

O mesmo conjunto de habilidades que enriquece os dados também pode ser usado para modelar os dados. Algumas ferramentas como o Power BI funcionam melhor com tabelas, enquanto uma carga de trabalho de ciência de dados pode exigir uma estrutura de dados complexa em formato de blob. Adicionar uma habilidade de Shaper a uma qualificação dá a você controle sobre a forma de seus dados. Você pode então passar essas formas para projeções, sejam tabelas ou blobs, para criar estruturas físicas de dados que se alinham com o uso pretendido dos dados.

O vídeo a seguir explica esses benefícios e muito mais.

Definição do repositório de conhecimento

Um repositório de conhecimento é definido dentro de uma definição de conjunto de habilidades e tem dois componentes:

  • Uma cadeia de conexão para o Armazenamento do Azure

  • Projeções que determinam se o armazenamento de conhecimento consiste em tabelas, objetos ou arquivos. O elemento de projeções é uma matriz. Você pode criar vários conjuntos de combinações de tabela-objeto-arquivo em um armazenamento de conhecimento.

    "knowledgeStore": {
        "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
        "projections":[
           {
              "tables":[ ],
              "objects":[ ],
              "files":[ ]
           }
        ]
    }
    

O tipo de projeção que você especificar nesta estrutura determinará o tipo de armazenamento usado pelo repositório de conhecimento, mas não sua estrutura. Campos em tabelas, objetos e arquivos são determinados pela saída de habilidade do Shaper, se você estiver criando o repositório de conhecimento programaticamente ou pelo assistente importar dados, se você estiver usando o portal.

  • tablesconteúdo aprimorado do projeto no Armazenamento de Tabelas. Defina uma projeção de tabela quando precisar de estruturas de relatório tabulares para entradas em ferramentas analíticas ou precisar exportar como quadros de dados para outros armazenamentos de dados. Você pode especificar vários tables na mesma projeção para obter um subconjunto ou uma seção transversal de documentos enriquecidos. No mesmo grupo de projeção, as relações de tabela são preservadas para que você possa trabalhar com todas elas.

    O conteúdo projetado não é agregado nem normalizado. A captura de tela a seguir mostra uma tabela, classificada por frase-chave, com o documento pai indicado na coluna adjacente. Ao contrário da ingestão de dados durante a indexação, não há análise linguística nem agregação de conteúdo. As formas plurais e as diferenças de letras maiúsculas/minúsculas são consideradas instâncias exclusivas.

    Screenshot of key phrases and documents in a table

  • objects documento JSON do projeto no armazenamento de Blob. A representação física de um object é uma estrutura de JSON hierárquica que representa um documento enriquecido.

  • files arquivos de imagem do projeto no armazenamento de Blob. Uma file é uma imagem extraída de um documento, transferida intacta para o Armazenamento de Blobs. Embora seja denominado "arquivos", ele aparece no Armazenamento de Blobs, e não no repositório de arquivos.

Criar um repositório de dados de conhecimento

Para criar um repositório de conhecimento, use o portal ou uma API.

Você precisará do Armazenamento do Microsoft Azure, de um conjunto de habilidades e um indexador. Como os indexadores exigem um índice de pesquisa, você também precisará fornecer uma definição de índice.

Adote a abordagem do portal para a rota mais rápida para um repositório de conhecimento concluído. Ou escolha a API REST para uma compreensão mais profunda de como os objetos são definidos e relacionados.

Crie seu primeiro repositório de conhecimento em quatro etapas usando o assistente Importar dados.

  1. Defina uma fonte de dados que contenha os dados que você deseja enriquecer.

  2. Defina um conjunto de habilidades. O conjunto de habilidades especifica as etapas de enriquecimento e o repositório de conhecimento.

  3. Defina um esquema de índice. Talvez você não precise, mas os indexadores exigem. O assistente pode inferir um índice.

  4. Conclua o assistente. A extração de dados, o enriquecimento e a criação do repositório de conhecimento ocorrem na última etapa.

O assistente automatiza várias tarefas. Especificamente, tanto a formatação quanto as projeções (definições de estruturas de dados físicos no Armazenamento do Microsoft Azure) são criadas para você.

Conectar com aplicativos

Após o conteúdo enriquecido estar no armazenamento, qualquer ferramenta ou tecnologia que se conecte ao Armazenamento do Azure poderá ser usada para explorar, analisar ou consumir o conteúdo. A lista a seguir é um começo:

  • Gerenciador de Armazenamento ou navegador Armazenamento (versão prévia) no portal do Azure para exibir a estrutura e o conteúdo do documento enriquecido. Considere isso como sua ferramenta de linha de base para visualizar o conteúdo do repositório de dados de conhecimento.

  • Power BI para relatórios e análise.

  • Azure Data Factory para manipular mais.

Ciclo de vida do conteúdo

Cada vez que você executar o indexador e o conjunto de habilidades, o repositório de conhecimento será atualizado se os dados de qualificações de origem ou de base tiverem sido alterados. Todas as alterações selecionadas pelo indexador são propagadas por meio do processo de enriquecimento para as projeções no repositório de conhecimento, garantindo que os dados projetados sejam uma representação atual do conteúdo na fonte de dados de origem.

Observação

Embora você possa editar os dados nas projeções, todas as edições serão substituídas na próxima invocação do pipeline, supondo que o documento nos dados de origem seja atualizado.

Alterações nos dados de origem

Para fontes de dados que dão suporte ao controle de alterações, um indexador processará documentos novos e alterados e ignorará os documentos existentes que já foram processados. As informações de carimbo de data/hora variam de acordo com a fonte de dados, mas em um contêiner de blob, o indexador examina a lastmodified data para determinar quais blobs precisam ser ingeridos.

Alterações em um conjunto de habilidades

Se estiver fazendo alterações em um conjunto de habilidades, habilite o cache de documentos enriquecidos para reutilizar os enriquecimentos existentes sempre que possível.

Sem o cache incremental, o indexador sempre processará documentos em ordem de marca d' água alta, sem retroceder. Para blobs, o indexador processaria os blobs classificados por lastModified, independente de quaisquer alterações nas configurações do indexador ou no conjunto de habilidades. Se você alterar um conjunto de habilidades, os documentos processados anteriormente não serão atualizados para refletir o novo conjunto de habilidades. Os documentos processados após a alteração do conjunto de habilidades usarão o novo conjunto de habilidades, resultando em documentos de índice que é uma mistura de conjuntos de habilidades antigos e novos.

Com o cache incremental e depois de uma atualização do conjunto de habilidades, o indexador reutilizará os enriquecimentos que não forem afetados pela alteração do conjunto de habilidades. Os enriquecimentos de upstream são extraídos do cache, assim como quaisquer enriquecimentos independentes e isolados da habilidade que foi alterada.

Exclusões

Embora um indexador crie e atualize estruturas e conteúdo no Armazenamento do Microsoft Azure, ele não os exclui. As projeções continuam existindo mesmo quando o indexador ou o conjunto de habilidades é excluído. Como proprietário da conta de armazenamento, você deverá excluir uma projeção se ela não for mais necessária.

Próximas etapas

O repositório de conhecimento oferece persistência de documentos enriquecidos, que é útil ao criar um conjunto de habilidades ou ao criar novas estruturas e conteúdo para consumo por qualquer aplicativo cliente capaz de acessar uma conta de Armazenamento do Azure.

A abordagem mais simples para criar documentos enriquecidos é por meio do portal, mas um cliente REST e as APIs REST podem fornecer mais informações sobre como os objetos são criados e referenciados programaticamente.