O que é inferência em lote?

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.

Definição de inferência em lote

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.

Principais características da inferência em lote

  • Processamento assíncrono : as previsões são geradas em uma programação predefinida (por exemplo, a cada hora, diariamente) ou sob demanda, não em tempo real à medida que novos dados chegam
  • Alta capacidade de processamento : o sistema é otimizado para processar um grande número de pontos de dados em uma única execução, o que o torna altamente eficiente
  • Custo-benefício: ao executar seguindo uma programação, você pode usar recursos de computação quando estiverem mais disponíveis ou menos caros, reduzindo significativamente os custos operacionais
  • Tolerância à latência: a principal suposição é que o aplicativo que consome as previsões não precisa de uma resposta imediata. Um atraso de minutos ou horas entre a coleta de dados e a geração de previsões é aceitável.

Inferência em lote x inferência on-line

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.

Como funciona a inferência em lote?

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.

Etapa 1: coleta e armazenamento de dados

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.

Etapa 2: acionamento do job em lote

O pipeline de inferência é iniciado por um gatilho. O gatilho pode ser:

  • Baseado em tempo : um programador (como um cron job) inicia o job em um intervalo regular, como todos os dias às 1h.
  • Baseado em eventos: o job começa em resposta a um evento específico, como a chegada de um novo arquivo de dados em um bucket do Cloud Storage

Etapa 3: pré-processamento dos dados

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.

Etapa 4: gerar previsões

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.

Etapa 5: armazenar os resultados

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.

Etapa 6: consumir as previsões

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.

Benefícios da inferência em lote

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.

Casos de uso da inferência em lote

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.

Como configurar a inferência em lote na Vertex AI

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.

Prepare seus recursos.

Antes de começar, você precisa de três coisas principais:

  • Um modelo treinado, que deve ser enviado para o Vertex AI Model Registry
  • Seus dados de entrada, formatados conforme exigido pelo modelo. Esses dados devem estar no Google Cloud Storage (por exemplo, como arquivos JSON ou CSV) ou em uma tabela do BigQuery
  • Um local de destino para a saída, que também será um bucket do Cloud Storage ou uma tabela do BigQuery

Criar um job de predição em lote.

É 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:

  • O modelo específico do Model Registry que você quer usar
  • O caminho para seus dados de entrada e o local dos resultados de saída
  • O tipo de máquina e o acelerador (por exemplo, GPU) que você quer usar no job. Isso permite equilibrar custo e desempenho.

Executar e monitorar o job.

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.

Acessar e usar as previsões.

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.

Resolva seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.

Como configurar a inferência em lote no GKE

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.

  • Escreva um script (por exemplo, em Python) que carregue o modelo treinado, leia os dados de uma fonte, realize a inferência e grave os resultados em um destino
  • Crie um Dockerfile. Esse arquivo define as etapas para criar o contêiner, incluindo a especificação de uma imagem de base, a instalação de dependências (como tensorflow ou pandas) e a cópia do arquivo modelo e do script de inferência na imagem.
  • Criar a imagem e enviá-la para um registro de contêineres como o Artifact Registry

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:

  • A imagem de contêiner a ser usada no Artifact Registry
  • Os recursos de computação necessários (CPU, memória, GPUs)
  • Todas as configurações necessárias, como variáveis de ambiente para caminhos de arquivos ou secrets para credenciais de banco de dados

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).

Qual problema você está tentando resolver?
What you'll get:
Guia explicativo
Arquitetura de referência
Soluções pré-criadas disponíveis
Este serviço foi criado com a Vertex AI. Você precisa ter 18 anos ou mais para usá-lo. Não insira informações sensíveis, confidenciais ou pessoais.

Outros recursos

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud