Este artigo descreve as soluções do Azure para criar, treinar, implantar e usar modelos de processamento de documentos personalizados. Esses serviços do Azure também oferecem funcionalidades de interface do usuário para fazer rotulagem ou marcação destinadas ao processamento de texto.
Arquitetura
Baixe um Arquivo Visio dessa arquitetura.
Fluxo de dados
Orquestradores como os Aplicativos Lógicos do Azure, o Azure Data Factory ou o Azure Functions ingerem mensagens e anexos de servidores de email e arquivos de servidores FTP ou aplicativos Web.
O Azure Functions e os Aplicativos Lógicos habilitam cargas de trabalho sem servidor. O serviço escolhido depende da sua preferência por funcionalidades de serviço, como desenvolvimento, conectores, gerenciamento e contexto de execução. Para obter mais informações, consulte Comparar Azure Functions e Aplicativos Lógicos do Azure.
Considere o uso do Azure Data Factory para movimentação de dados em massa.
Os orquestradores enviam os dados ingeridos para o Armazenamento de Blobs do Azure ou o Data Lake Storage, organizando os dados em armazenamentos de dados de acordo com características como extensões de arquivo ou clientes.
O Estúdio do Reconhecimento de Formulários, o Language Studio ou o Estúdio do Azure Machine Learning rotulam e marcam dados textuais e criam os modelos personalizados. Você pode usar esses três serviços de maneira independente ou em várias combinações para lidar com diferentes casos de uso.
Se o documento exigir a extração de pares chave-valor ou a criação de uma tabela personalizada de um formato de imagem ou PDF, use o Estúdio do Reconhecimento de Formulários para marcar os dados e treinar o modelo personalizado.
Na classificação de documentos com base no conteúdo ou na extração de entidades específicas do domínio, treine uma classificação de textos personalizada ou um modelo NER (Reconhecimento de Entidade Nomeada) no Language Studio.
O Estúdio do Azure Machine Learning também pode fazer a rotulagem para classificação de textos ou extração de entidades com estruturas de código aberto como o PyTorch ou o TensorFlow.
Para implantar os modelos personalizados e usá-los para inferência:
O Reconhecimento de Formulários tem a implantação de modelo interna. Use os SDKs do Reconhecimento de Formulários ou a API REST a fim de aplicar modelos personalizados para inferência. Inclua a ID do modelo ou o nome do modelo personalizado na URL de solicitação do Reconhecimento de Formulários, conforme a versão da API. O Reconhecimento de Formulários não exige etapas de implantação adicionais.
O Language Studio fornece uma opção para implantar modelos de linguagem personalizados. Obtenha a URL de previsão do ponto de extremidade REST selecionando o modelo a ser implantado. Faça a inferência de modelos usando o ponto de extremidade REST ou as bibliotecas de clientes SDK do Azure.
O Azure Machine Learning pode implantar modelos personalizados em pontos de extremidade online ou em lote gerenciados pelo Azure Machine Learning. Você também pode implantá-los no AKS (Serviço de Kubernetes do Azure) como um serviço Web usando o SDK do Azure Machine Learning.
Componentes
Os Aplicativos Lógicos fazem parte dos Serviços de integração do Azure. Os Aplicativos Lógicos criam fluxos de trabalho automatizados que integram aplicativos, dados, serviços e sistemas. Com os conectores gerenciados para serviços como o Armazenamento do Azure e o Office 365, você pode disparar fluxos de trabalho quando um arquivo chega à conta de armazenamento ou quando um email é recebido.
O Data Factory é um serviço de nuvem gerenciado de ETL (extração, transformação e carregamento) para integração e transformação de dados. O Data Factory pode adicionar atividades de transformação a um pipeline, que incluem invocar um ponto de extremidade REST ou executar um notebook nos dados ingeridos.
O Azure Functions é um serviço de computação sem servidor que pode hospedar cargas de trabalho controladas por eventos com processos de curta duração.
O Armazenamento de Blobs é a solução de armazenamento de objetos para arquivos brutos neste cenário. O Armazenamento de Blobs dá suporte a bibliotecas para várias linguagens, como o .NET, o Node.js e o Python. Os aplicativos podem acessar arquivos no Armazenamento de Blobs por meio de HTTP/HTTPS. O Armazenamento de Blobs conta com camadas de acesso frequente, esporádico e aos arquivos para dar suporte à otimização de custos a fim de armazenar grandes volumes de dados.
O Data Lake Storage é um conjunto de funcionalidades criadas no Armazenamento de Blobs do Azure para análise de Big Data. O Data Lake Storage mantém o custo/benefício do Armazenamento de Blobs e fornece recursos como segurança em nível de arquivo e semântica do sistema de arquivos com o namespace hierárquico.
O Reconhecimento de Formulários, parte dos Serviços de IA Aplicada do Azure, traz funcionalidades internas de análise de documentos para extrair textos impressos e manuscritos, tabelas e pares chave-valor. O Reconhecimento de Formulários tem modelos predefinidos para extrair dados de faturas, documentos, recibos, carteiras de identidade e cartões de visita. Ele também pode treinar e implantar modelos personalizados por meio de um modelo de formulário de modelo personalizado ou de um modelo de documento neural personalizado.
O Estúdio do Reconhecimento de Formulários fornece uma interface do usuário para explorar os recursos e os modelos do Reconhecimento de Formulários e para criar, marcar, treinar e implantar modelos personalizados.
O Serviço Cognitivo do Azure para Linguagem consolida os serviços de processamento de linguagem natural do Azure. O pacote oferece opções predefinidas e personalizáveis. Para obter mais informações, confira os recursos disponíveis do Serviço Cognitivo para Linguagem.
O Language Studio fornece uma interface do usuário para explorar e analisar os recursos do Serviço Cognitivo do Azure para Linguagem. O Language Studio também fornece opções para criar, marcar, treinar e implantar modelos personalizados.
O Azure Machine Learning é uma plataforma aberta para gerenciar o desenvolvimento e a implantação de modelos de machine learning em escala.
- O Estúdio do Azure Machine Learning fornece opções de rotulagem de dados para imagens e textos.
- Exporte os dados rotulados como COCO ou conjuntos de dados do Azure Machine Learning. Use os conjuntos de dados para treinar e implantar modelos em notebooks do Azure Machine Learning.
- Implante modelos no AKS como um serviço Web para inferência em tempo real em escala ou como pontos de extremidade gerenciados para inferência em tempo real e em lote.
Alternativas
Adicione mais fluxos de trabalho a este cenário de acordo com casos de uso específicos.
Se o documento estiver no formato PDF ou de imagem, extraia os dados usando a Pesquisa Visual Computacional do Azure, a API de Leitura do Reconhecimento de Formulários ou as bibliotecas de código aberto.
Faça a sumarização de conversas e documentos usando o modelo predefinido do Serviço Cognitivo do Azure para Linguagem.
Use o código de pré-processamento para executar etapas de processamento de texto, como limpeza, remoção de palavras irrelevantes (stop words), lematização e sumarização de texto em dados extraídos, de acordo com os requisitos de processamento de documentos. Você pode expor o código como APIs REST para automação. Execute essas etapas manualmente ou automatize-as com a integração aos Aplicativos Lógicos ou ao processo de ingestão do Azure Functions.
Detalhes do cenário
O processamento de documentos é uma área ampla. Pode ser difícil atender a todas as suas necessidades de processamento de documentos com os modelos predefinidos disponíveis no Reconhecimento de Formulários do Azure e no Serviço Cognitivo do Azure para Linguagem. Talvez seja necessário criar modelos personalizados para automatizar o processamento de documentos para diferentes aplicativos e domínios.
Os principais desafios na personalização de modelo incluem:
- Rotular ou marcar dados de texto com entidades de par chave-valor relevantes para classificar o texto para extração.
- Implantar modelos com segurança em escala para facilitar a integração aos aplicativos de consumo.
Possíveis casos de uso
Os seguintes casos de uso podem aproveitar os modelos personalizados para o processamento de documentos:
- Criar modelos de classificação de textos e NER personalizados com base em estruturas de código aberto.
- Extrair valores-chave personalizados de documentos para várias verticais do setor, como seguros e serviços de saúde.
- Marcar e extrair entidades específicas dependentes do domínio, além dos modelos NER predefinidos para domínios como segurança ou finanças.
- Criar tabelas personalizadas com base em documentos.
- Extrair assinaturas.
- Rotular e classificar emails ou outros documentos com base no conteúdo.
Considerações
Estas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.
Para este exemplo de carga de trabalho, a implementação de cada pilar depende da configuração e do uso ideal de cada componente do serviço do Azure.
Confiabilidade
A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, confira Visão geral do pilar de confiabilidade.
Disponibilidade
Confira os SLAs (Contratos de Nível de Serviço) de disponibilidade para cada componente do serviço do Azure:
- Reconhecimento de Formulários do Azure – SLA dos Serviços de IA Aplicada do Azure.
- Serviço Cognitivo do Azure para Linguagem – SLA dos Serviços Cognitivos do Azure.
- Azure Functions – SLA do Azure Functions.
- Serviço de Kubernetes do Azure – SLA do AKS (Serviço de Kubernetes do Azure).
- Armazenamento do Azure – SLA das contas de armazenamento.
Para ver as opções de configuração para criar aplicativos de alta disponibilidade com as contas de armazenamento do Azure, confira Usar a redundância geográfica para criar aplicativos altamente disponíveis.
Resiliência
Lide com os modos de falha de serviços individuais, como o Azure Functions e o Armazenamento do Azure, para garantir a resiliência dos serviços de computação e dos armazenamentos de dados neste cenário. Para obter mais informações, confira Lista de verificação de resiliência para serviços específicos do Azure.
Para o Reconhecimento de Formulários, faça o backup e a recuperação dos seus modelos do Reconhecimento de Formulários.
Para a classificação de textos personalizada com os Serviços Cognitivos para Linguagem, faça o backup e a recuperação dos seus modelos de classificação de textos personalizada.
Para o NER personalizado nos Serviços Cognitivos para Linguagem, faça o backup e a recuperação dos seus modelos NER personalizado.
O Azure Machine Learning depende de serviços constituintes, como o Armazenamento de Blobs, os serviços de computação e o AKS. A fim de fornecer resiliência ao Azure Machine Learning, configure cada um desses serviços para serem resilientes. Para obter mais informações, confira Failover para continuidade dos negócios e recuperação de desastres.
Segurança
A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.
Implemente as recomendações de proteção de dados, gerenciamento de identidade e acesso e segurança de rede para o Armazenamento de Blobs, os Serviços Cognitivos para Reconhecimento de Formulários e Language Studio e o Azure Machine Learning.
O Azure Functions pode acessar recursos em uma rede virtual por meio da integração de rede virtual.
Otimização de custo
A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.
O custo total da implementação dessa solução depende do preço dos serviços escolhidos.
Os principais custos dessa solução são:
O custo de computação envolvido no treinamento do Azure Machine Learning. Escolha o tipo de nó, o tamanho do cluster e o número de nós certos para ajudar a otimizar os custos. O Azure Machine Learning fornece opções para definir o número mínimo de nós como zero e definir o tempo ocioso antes da redução vertical. Para obter mais informações, confira Gerenciar e otimizar os custos do Azure Machine Learning.
Duração e atividades de orquestração de dados. Para o Azure Data Factory, os preços das atividades de cópia no runtime de integração do Azure são baseados no número de DIUs (Unidades de Integração de Dados) usadas e na duração da execução. As execuções de atividades de orquestração adicionadas também são cobradas, com base no número.
Os planos de preços dos Aplicativos Lógicos dependem dos recursos criados e usados. Os seguintes artigos podem ajudar você a escolher o plano certo para casos de uso específicos:
Para obter mais informações sobre preços de componentes específicos, confira os seguintes recursos:
- Preço do Reconhecimento de Formulários do Azure
- Preços do Azure Functions
- Preços de Aplicativos Lógicos
- Preços do Azure Data Factory
- Preços do Armazenamento de Blobs do Azure
- Preço de Serviço de Linguagem
- Preços do Azure Machine Learning
Use a calculadora de preços do Azure para adicionar as opções de componentes selecionadas e estimar o custo geral da solução.
Eficiência de desempenho
A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.
Escalabilidade
Para escalar o Azure Functions automática ou manualmente, escolha o plano de hospedagem certo.
Por padrão, o Reconhecimento de Formulários dá suporte a 15 solicitações simultâneas por segundo. Para solicitar uma cota maior, crie um tíquete de suporte do Azure.
Para os modelos personalizados do Azure Machine Learning hospedados como serviços Web no AKS, o front-end azureml-fe é escalado automaticamente conforme necessário. Esse componente também roteia as solicitações de inferência de entrada para os serviços implantados.
Para as implantações como pontos de extremidade gerenciados, dê suporte ao dimensionamento automático integrando-as ao recurso de dimensionamento automático do Azure Monitor.
Os limites do serviço de API no NER personalizado e na classificação de textos personalizada para inferência são de 20 solicitações GET ou POST por minuto.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi escrito originalmente pelos colaboradores a seguir.
Autor principal:
- Jyotsna Ravi | Engenheiro sênior de clientes
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
- Introdução: Estúdio do Reconhecimento de Formulários
- Usar os SDKs ou a API REST do Reconhecimento de Formulários
- Início Rápido: Introdução ao Language Studio
- O que é OCR (reconhecimento óptico de caracteres)?
- Como configurar o Azure Functions com uma rede virtual