Depois que um modelo de machine learning é treinado, a próxima etapa é usá-lo para fazer previsões sobre novos dados. Esse processo, conhecido como inferência, requer uma estratégia que depende muito dos requisitos de latência e capacidade de processamento do seu aplicativo. A inferência em lote, também chamada de inferência off-line ou processamento assíncrono, é um método eficiente e avançado para gerar previsões em um grande volume de dados quando respostas imediatas em tempo real não são necessárias.
A inferência em lote é o processo de usar um modelo de machine learning treinado para gerar previsões em um grande conjunto de observações, ou um "lote", de uma só vez.
Ao contrário da inferência on-line, em que as previsões são feitas em pontos de dados individuais à medida que chegam, a inferência em lote opera em dados que foram coletados durante um período de tempo. Essa abordagem prioriza a alta capacidade de processamento e a eficiência computacional em vez da baixa latência. Como o processamento é feito off-line e não em resposta direta a uma solicitação do usuário, ele também é conhecido como inferência estática: as previsões são geradas e armazenadas para uso posterior.
Escolher entre inferência em lote e on-line é uma decisão arquitetônica fundamental ao projetar um sistema de machine learning. Cada abordagem tem uma finalidade diferente e é otimizada para diferentes características de desempenho.
Recurso | Inferência em lote | Inferência on-line |
Processamento de dados | Processa uma grande coleção de pontos de dados juntos em um único job. | Processa um único ponto de dados ou um grupo muito pequeno de pontos de dados à medida que chegam. |
Otimização primária | Alta capacidade de processamento e eficiência de custos. | Baixa latência e capacidade de resposta imediata. |
Latência | Alta latência: as previsões não estão disponíveis imediatamente (demoram de minutos a horas). | Latência muito baixa; as previsões são retornadas em milissegundos. |
Invocação | Acionado em uma programação (por exemplo, cron job) ou sob demanda. | Acionada por uma solicitação direta do usuário ou um evento no sistema. |
Uso de computação | Podem usar recursos de computação avançados por um curto período e depois reduzir a escala para zero. | Exige que um servidor ou endpoint esteja em execução constante e pronto para aceitar solicitações. |
Exemplo de caso de uso: | Gerar recomendações diárias de produtos para todos os usuários de um site de e-commerce. | Prever se uma transação com cartão de crédito é fraudulenta no momento em que acontece. |
Termos sinônimos | Inferência off-line, processamento assíncrono, inferência estática. | Inferência em tempo real, processamento síncrono, inferência dinâmica. |
Recurso
Inferência em lote
Inferência on-line
Processamento de dados
Processa uma grande coleção de pontos de dados juntos em um único job.
Processa um único ponto de dados ou um grupo muito pequeno de pontos de dados à medida que chegam.
Otimização primária
Alta capacidade de processamento e eficiência de custos.
Baixa latência e capacidade de resposta imediata.
Latência
Alta latência: as previsões não estão disponíveis imediatamente (demoram de minutos a horas).
Latência muito baixa; as previsões são retornadas em milissegundos.
Invocação
Acionado em uma programação (por exemplo, cron job) ou sob demanda.
Acionada por uma solicitação direta do usuário ou um evento no sistema.
Uso de computação
Podem usar recursos de computação avançados por um curto período e depois reduzir a escala para zero.
Exige que um servidor ou endpoint esteja em execução constante e pronto para aceitar solicitações.
Exemplo de caso de uso:
Gerar recomendações diárias de produtos para todos os usuários de um site de e-commerce.
Prever se uma transação com cartão de crédito é fraudulenta no momento em que acontece.
Termos sinônimos
Inferência off-line, processamento assíncrono, inferência estática.
Inferência em tempo real, processamento síncrono, inferência dinâmica.
Um pipeline de inferência em lote é um fluxo de trabalho estruturado e automatizado que move os dados do estado bruto para previsões úteis. O processo pode ser dividido nestas etapas principais, que normalmente são orquestradas por um gerenciador de fluxo de trabalho ou sistema de programação.
O processo começa com o acúmulo de dados ao longo do tempo. Esses dados de entrada, que podem incluir registros de atividades do usuário, registros de transações ou leituras de sensores, são coletados de várias fontes e armazenados em um local centralizado. Geralmente, é um data lake criado em um serviço como o Google Cloud Storage ou um data warehouse como o BigQuery.
O pipeline de inferência é iniciado por um gatilho. O gatilho pode ser:
Depois de acionado, o job carrega todo o lote de dados brutos de entrada. Em seguida, ele realiza as etapas necessárias de pré-processamento e engenharia de atributos para transformar os dados no formato exato que o modelo de machine learning espera. Isso pode incluir tarefas como limpar valores ausentes, escalonar atributos numéricos e codificar variáveis categóricas.
O sistema recupera o modelo de machine learning treinado de um repositório central, como o Vertex AI Model Registry. O lote de dados pré-processados é então inserido no modelo, que executa a inferência em cada observação do conjunto para gerar uma previsão correspondente.
A saída do modelo, ou seja, a coleção de previsões, é gravada em um sistema de armazenamento. O destino é escolhido com base em como as previsões serão usadas. Os destinos comuns incluem o carregamento dos resultados em uma tabela do BigQuery para análise, um banco de dados do Cloud SQL para pesquisas rápidas por um aplicativo ou o salvamento deles como arquivos no Cloud Storage.
Com as previsões armazenadas e prontas, os sistemas downstream podem usá-las. Uma ferramenta de business intelligence pode consultar os resultados para criar um painel do comportamento previsto do cliente. O back-end de um aplicativo da Web pode carregar as recomendações de produtos pré-computadas para exibir aos usuários, ou uma plataforma de automação de marketing pode extrair uma lista de clientes com previsão de churn para segmentá-los com uma nova campanha.
Para muitos casos de uso corporativos, a inferência em lote pode oferecer vantagens significativas em relação ao processamento em tempo real.
Economia
O processamento em lote permite otimizar o uso dos recursos de computação. Você pode executar jobs grandes em hardware avançado por um curto período e depois desativar os recursos, evitando o custo de manter um servidor em execução contínua.
Alta capacidade de processamento e escalonabilidade
Os sistemas em lote são projetados para escalonar e processar terabytes de dados com eficiência. Isso torna possível aplicar modelos complexos a conjuntos de dados muito grandes, algo que pode ser muito lento ou caro para um sistema on-line.
Simplicidade das operações
Os pipelines de inferência em lote podem ser mais simples de criar e manter do que sistemas de inferência on-line de baixa latência e alta disponibilidade. Eles são geralmente mais resilientes a falhas temporárias e podem ser executados novamente com facilidade se um job falhar.
Permite a engenharia de atributos complexa
Como a inferência em lote não é limitada por requisitos de baixa latência, você pode realizar uma engenharia de atributos mais complexa e computacionalmente intensiva nos seus dados de entrada, o que geralmente leva a modelos mais precisos.
Melhor utilização dos recursos
Você pode programar a execução de jobs em lote durante os horários de pico, aproveitando a capacidade de computação ociosa e os preços de spot potencialmente mais baixos para máquinas virtuais.
A inferência em lote é o método preferido para muitos processos de negócios principais em que as previsões aprimoram um produto ou serviço sem precisar ser geradas em tempo real. Essa abordagem pode ser muito eficaz em vários setores para resolver problemas de dados em grande escala.
Setor | Problema a ser resolvido | Exemplo de solução |
E-commerce e varejo | Gere recomendações personalizadas de produtos para toda a base de usuários diariamente para garantir que estejam prontas para recuperação rápida quando os usuários visitarem o site. | As predições em lote da Vertex AI podem executar um modelo de recomendação e carregar os resultados em um banco de dados de pesquisa rápida, como o Cloud SQL ou o Bigtable. |
Telecomunicações e SaaS | Identificar quais clientes têm alto risco de desistir no próximo mês analisando padrões de uso em todo o banco de dados de clientes. | O BigQuery ML permite executar um modelo de classificação diretamente nos dados do cliente armazenados no data warehouse, com os resultados gravados em uma nova tabela para a equipe de retenção. |
Finanças e seguros | Prever tendências do mercado financeiro ou calcular pontuações de risco para um portfólio inteiro de ativos, o que é uma tarefa computacionalmente intensiva realizada periodicamente. | As previsões em lote da Vertex AI podem executar modelos complexos de série temporal em uma programação, fornecendo os dados necessários para relatórios e painéis estratégicos. |
Logística e cadeia de suprimentos | Otimize os níveis de inventário em centenas de armazéns executando uma simulação complexa de previsão de demanda com base em dados semanais de vendas e logística. | O Google Kubernetes Engine (GKE) oferece o ambiente personalizado e de alto desempenho necessário para executar modelos de simulação especializados com requisitos específicos de biblioteca e hardware. |
Saúde | Analisar um grande lote diário de imagens médicas (como raios X ou tomografias computadorizadas) para detectar possíveis anomalias para posterior revisão por um radiologista. | O GKE com aceleradores de GPU é ideal para executar modelos de visão computacional de aprendizado profundo em grandes conjuntos de imagens, oferecendo controle e desempenho máximos. |
Jurídico e compliance | Processar e classificar milhões de documentos para extrair entidades importantes, avaliar o sentimento e tornar todo o corpus pesquisável e analisável. | O Dataflow pode ser usado para criar um pipeline de PNL escalonável que pré-processa o texto e executa a inferência, enquanto o GKE pode ser usado para requisitos de modelo mais personalizados. |
Setor
Problema a ser resolvido
Exemplo de solução
E-commerce e varejo
Gere recomendações personalizadas de produtos para toda a base de usuários diariamente para garantir que estejam prontas para recuperação rápida quando os usuários visitarem o site.
As predições em lote da Vertex AI podem executar um modelo de recomendação e carregar os resultados em um banco de dados de pesquisa rápida, como o Cloud SQL ou o Bigtable.
Telecomunicações e SaaS
Identificar quais clientes têm alto risco de desistir no próximo mês analisando padrões de uso em todo o banco de dados de clientes.
O BigQuery ML permite executar um modelo de classificação diretamente nos dados do cliente armazenados no data warehouse, com os resultados gravados em uma nova tabela para a equipe de retenção.
Finanças e seguros
Prever tendências do mercado financeiro ou calcular pontuações de risco para um portfólio inteiro de ativos, o que é uma tarefa computacionalmente intensiva realizada periodicamente.
As previsões em lote da Vertex AI podem executar modelos complexos de série temporal em uma programação, fornecendo os dados necessários para relatórios e painéis estratégicos.
Logística e cadeia de suprimentos
Otimize os níveis de inventário em centenas de armazéns executando uma simulação complexa de previsão de demanda com base em dados semanais de vendas e logística.
O Google Kubernetes Engine (GKE) oferece o ambiente personalizado e de alto desempenho necessário para executar modelos de simulação especializados com requisitos específicos de biblioteca e hardware.
Saúde
Analisar um grande lote diário de imagens médicas (como raios X ou tomografias computadorizadas) para detectar possíveis anomalias para posterior revisão por um radiologista.
O GKE com aceleradores de GPU é ideal para executar modelos de visão computacional de aprendizado profundo em grandes conjuntos de imagens, oferecendo controle e desempenho máximos.
Jurídico e compliance
Processar e classificar milhões de documentos para extrair entidades importantes, avaliar o sentimento e tornar todo o corpus pesquisável e analisável.
O Dataflow pode ser usado para criar um pipeline de PNL escalonável que pré-processa o texto e executa a inferência, enquanto o GKE pode ser usado para requisitos de modelo mais personalizados.
A Vertex AI é a plataforma de machine learning gerenciada do Google Cloud e oferece uma abordagem simplificada e sem servidor para inferência em lote. O processo se concentra na configuração de um job e permite que a plataforma lide com a infraestrutura subjacente.
Antes de começar, você precisa de três coisas principais:
É possível iniciar o job pelo console do Google Cloud, pela ferramenta de linha de comando gcloud ou de forma programática usando o SDK da Vertex AI. Ao criar o job, você vai fornecer a seguinte configuração:
Depois de enviar o job, a Vertex AI assume o controle. Ela provisiona automaticamente os recursos de computação especificados, executa os dados de entrada no modelo, gera as previsões e as salva no local de saída designado. Após a conclusão do job, a Vertex AI reduz automaticamente todos os recursos para zero, para que você pague apenas pelo tempo de computação usado. É possível monitorar o progresso do job e visualizar os registros diretamente no console do Google Cloud.
Quando o status do job for "Concluído", suas previsões estarão prontas. Os arquivos de saída no Cloud Storage ou a nova tabela no BigQuery agora podem ser acessados pelos seus aplicativos downstream, ferramentas de análise ou painéis de BI.
Usar o Google Kubernetes Engine (GKE) para inferência em lote oferece o máximo de controle e portabilidade, o que o torna ideal para equipes com experiência em Kubernetes ou requisitos especializados. A configuração envolve a conteinerização da lógica de inferência e o gerenciamento da execução com recursos do Kubernetes.
Etapa 1: conteinerizar o aplicativo de inferência. A primeira etapa é empacotar o código de previsão em uma imagem de contêiner.
Etapa 2: definir um job do Kubernetes. Em vez de uma implantação de longa duração, você define a tarefa em lote usando um manifesto de Job ou CronJob do Kubernetes (um arquivo YAML). Esse arquivo especifica:
Etapa 3: executar o job no cluster do GKE. Você aplica o manifesto ao seu cluster do GKE usando o kubectl. O plano de controle do GKE agenda um pod para executar o contêiner de inferência em um nó adequado no cluster. Para tarefas recorrentes, um recurso CronJob cria automaticamente um novo job com base em uma programação predefinida (por exemplo, 0 2 * * * para 2h todos os dias).
Etapa 4: implementar o tratamento de dados e armazenar os resultados. Ao contrário da abordagem gerenciada da Vertex AI, o código do aplicativo dentro do contêiner é responsável por lidar com todas as E/S de dados. O script precisa incluir a lógica para se conectar e ler a fonte de dados (por exemplo, um bucket do Cloud Storage) e gravar as previsões finais no destino escolhido (por exemplo, um banco de dados do Cloud SQL).
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.