O que é inferência de IA?

Inferência de IA, simplificada e explicada

No contexto de aprendizado de máquina, a inferência de IA é o ato de usar um modelo de IA treinado para fazer previsões sobre novos dados. Basicamente, qualquer instância de um modelo de inteligência artificial que realmente gere saídas ou tome decisões em uma aplicação de IA do mundo real constitui uma inferência de IA. Em termos simples, a inferência de IA envolve um modelo treinado aplicando os padrões aprendidos com seus dados de treinamento para inferir a saída correta para uma determinada entrada.

Todo o aprendizado de máquina, desde modelos de detecção de spam de e-mail até os sistemas de navegação que alimentam carros autônomos e a IA generativa, se resume ao reconhecimento de padrões. Os modelos são "treinados" para ter um bom desempenho em um conjunto de dados de amostras de tarefas ou pontos de dados. Durante o treinamento do modelo, os parâmetros do modelo (e hiperparâmetros) são ajustados até que a tomada de decisão do modelo "se ajuste" aos padrões dos dados de treinamento. A premissa fundamental do aprendizado de máquina é que, se os dados de treinamento forem suficientemente relevantes para o que o modelo encontrará nos cenários do mundo real, ele fará previsões precisas nesses casos de uso reais.

Embora muitos termos técnicos da IA sejam bastante específicos, "inferência de IA" é, na verdade, um termo literal e intuitivo.

  • Um modelo de previsão do mercado de ações não sabe como o preço de uma determinada ação irá mudar; ele infere, com base em como o histórico dessa ação se compara às tendências passadas de movimentação do preço das ações, o que acontecerá a seguir.

  • Um modelo de detecção de spam não sabe se um determinado e-mail é spam; ele infere, com base em quão semelhante esse e-mail é aos exemplos de spam vistos no treinamento, se é spam ou não.

  • Os grandes modelos de linguagem (LLM) inferem iterativamente qual será a próxima palavra, ou melhor, token, com base nos padrões linguísticos dos milhões de amostras de texto com as quais foram treinados.

  • As redes sociais inferem com que tipo de conteúdo você tem maior probabilidade de interagir, com base no conteúdo com o qual você e pessoas semelhantes a você interagiram anteriormente.

Enquanto o objetivo do treinamento em IA é alcançar a precisão e alinhamento do modelo, o objetivo da inferência em IA é implementar esse modelo treinado da maneira mais eficiente e econômica possível. O mesmo modelo de IA pode apresentar desempenhos diferentes em distintas estruturas de inferência.

Não existe uma única configuração "ideal" para inferência de IA. Existem muitas maneiras diferentes de dividir as cargas de trabalho, diferentes tipos de hardware (e algoritmos computacionais para usá-los) e diferentes ambientes nos quais acessar esse hardware. A configuração ideal para um determinado cenário dependerá da natureza do seu caso de uso e da sua carga de trabalho. Para as empresas, o desafio geralmente é identificar uma abordagem de inferência que equilibre o desejo por baixa latência com a necessidade de ser escalável e economicamente eficiente.

Inferência de IA vs. treinamento de IA

Tanto a inferência quanto o treinamento de IA envolvem um modelo que faz previsões sobre os dados de entrada. A diferença está nos seus respectivos objetivos e, no caso do treinamento da IA, nas etapas adicionais tomadas para atingir esse objetivo.

O treinamento é onde ocorre o "aprendizado" no aprendizado de máquina. No treinamento de modelos, um modelo de aprendizado de máquina faz previsões com base em um conjunto de exemplos de dados de treinamento. No aprendizado supervisionado, uma função de perda calcula o erro médio (ou "perda") de cada previsão, e um algoritmo de otimização é usado para atualizar os parâmetros do modelo de forma a reduzir a perda. Esse processo é repetido iterativamente até que a perda seja minimizada a um nível aceitável. O aprendizado por reforço funciona de forma semelhante, embora com o objetivo de maximizar uma função de recompensa em vez de minimizar uma função de perda.

Em resumo, o treinamento da IA normalmente envolve uma passagem direta, na qual o modelo gera uma produção em resposta a cada entrada, e uma passagem inversa, na qual são calculadas as potenciais melhorias para os parâmetros do modelo. Essas atualizações de parâmetros constituem o "conhecimento" de um modelo de aprendizado de máquina.

Na inferência de IA, o modelo treinado faz previsões com base em dados de input do mundo real. A inferência de IA funciona usando o que foi "aprendido", ou seja, as atualizações dos parâmetros do modelo que foram feitas para melhorar seu desempenho nos dados de treinamento, para inferir a resposta correta para os novos dados de input. Diferentemente do treinamento de modelos, a inferência envolve apenas uma passagem direta.

Embora o treinamento e a inferência sejam geralmente etapas separadas e distintas, vale ressaltar que elas não são totalmente excludentes. Por exemplo, o algoritmo de recomendação de uma plataforma de rede social já foi treinado com grandes conjuntos de dados sobre o comportamento do usuário antes mesmo de você entrar na plataforma, e realiza inferências cada vez que fornece sugestões de conteúdo para você. Mas esse modelo treinado também é continuamente ajustado com base em seus comportamentos individuais, refinando suas sugestões de acordo com a maneira como você interage pessoalmente com o conteúdo.

Tipos de inferência de IA

"Tipo" é uma palavra nebulosa: existem muitas maneiras de executar a inferência de IA e, portanto, muitas maneiras de delinear suas variantes. Mas as duas categorias mais fundamentais de estratégias de inferência de IA são a inferência em lote e a inferência online.

Inferência online

Na inferência online, um modelo treinado processa os dados de input imediatamente, um input por vez. A inferência online é apropriada para qualquer sistema de IA cuja produção seja sensível ao tempo (como veículos autônomos, lances em anúncios digitais ou preços dinâmicos) ou que exija interações em tempo real com os usuários (como chatbots ou tradução automática).

A inferência online geralmente acarreta maiores custos e complexidade, especialmente para as cargas de trabalho pesadas e as grandes redes neurais que alimentam os modelos de deep learning, mas geralmente é necessária para qualquer caso de uso do mundo real que exija a tomada de decisão em tempo real. Um chatbot ou carro autônomo deve processar dados em tempo real para evitar degradar a experiência do usuário. A utilidade de um sistema de IA que prevê se um determinado solicitante deve receber um empréstimo não é afetada por um pequeno atraso entre o input e a resposta, mas em um veículo autônomo, alguns milissegundos extras de atraso podem colocar os passageiros em risco.

Inferência em lote

Na inferência em lote, um modelo treinado processa um grande volume de entradas de forma assíncrona em grupos (ou "lotes"). Normalmente, cada lote é agendado para um determinado horário: por exemplo, uma empresa pode usar a inferência em lote para gerar relatórios noturnos sobre toda a atividade do dia. Isso permite maior flexibilidade e eficiência, tornando a inferência em lote a opção mais econômica. No entanto, isso só é prático em situações onde a rapidez não é importante.

A inferência em lote também permite um uso mais eficiente do hardware. Por exemplo, as GPUs contêm milhares de unidades de processamento (ou "núcleos"), cada uma das quais pode realizar cálculos simultaneamente em paralelo. Executar a inferência para uma única entrada que não utiliza todos esses núcleos é como deixar assentos vazios em um ônibus: pode ser necessário em situações sensíveis ao tempo, mas é um uso abaixo do ideal dos recursos. A inferência em lote permite executar a inferência somente quando seu hardware estiver "cheio", por assim dizer.

Além disso, os parâmetros do modelo, que, para os modelos de deep learning, muitas vezes compreendem bilhões de ponderações do modelo, devem ser carregados na memória do sistema toda vez que a inferência é realizada. Isso implica no uso e nos custos de energia. A inferência em lote reduz o número de vezes que as ponderações precisam ser carregadas na RAM, distribuindo o custo por todo o lote.

Microlote

O microlote é uma abordagem intermediária entre a inferência online e a inferência em lote: como o próprio nome sugere, envolve a execução da inferência em lotes pequenos.

Não existe um tamanho de lote claro e quantificável que diferencie o "microlote" do "lote". Em vez disso, as duas abordagens são diferenciadas principalmente por seus objetivos: o microlote visa aumentar o rendimento do modelo enquanto (principalmente) preserva a velocidade do modelo, enquanto a inferência em lote convencional visa maximizar a eficiência e geralmente não leva a latência em consideração. Na inferência em lote, uma entrada pode ser processada minutos ou até horas após ser recebida, mas o microlote geralmente visa um atraso de no máximo milissegundos a alguns segundos.

Talvez a aplicação mais proeminente do microlote seja na inferência de modelos de LLM baseados na nuvem por meio de plataformas importantes como o Claude da Anthropic ou o ChatGPT da OpenAI. Quando milhares de usuários interagem com um chatbot simultaneamente, esses serviços normalmente processam várias solicitações em paralelo, aumentando a eficiência sem atrasos perceptíveis para os usuários finais.

Ambientes de inferência de IA

Uma das considerações mais importantes no projeto de um ecossistema de IA é decidir onde a carga de trabalho de inferência será realmente executada. Em outras palavras, onde o hardware está localizado e como você acessará esse hardware.

Os ambientes de implementação geralmente se enquadram em uma das quatro categorias, cada uma com seus próprios pontos fortes e desvantagens.

  • No local

  • Nuvem

  • Implementação de borda

  • No dispositivo

Implementação local

Na implementação no local (ou "on-prem"), os modelos de IA são executados em um hardware físico que você (ou sua organização) possui e mantém por conta própria.

A implementação no local oferece o maior controle possível sobre as cargas de trabalho de IA, pois você tem autonomia sobre como e quando os dados são processados e os recursos computacionais são alocados. Isso é especialmente benéfico em setores altamente regulamentados, como saúde, finanças, governo e direito, onde a estrita observância dos requisitos de privacidade de dados e segurança é obrigatória.

Esse controle tem um custo e uma compensação em termos de mão de obra envolvidos. A implementação de locais, particularmente com o hardware necessário para as cargas de trabalho em escala empresarial e os modelos massivos tipicamente associados à IA generativa, implica um grande investimento inicial. E também implica a necessidade de profissionais de TI dedicados para gerenciar esses servidores.

Implementação na nuvem

Na implementação em nuvem, os modelos são executados em servidores remotos gerenciados por fornecedores terceirizados (como a IBM) em um grande data center. Isso permite que uma organização utilize hardware de IA de alta potência sem o grande investimento inicial necessário para comprá-lo ou trabalho contínuo de mantê-lo. Dessa forma, a implementação em nuvem normalmente representa o caminho mais rápido para a escalabilidade, especialmente em circunstâncias em que você precisa aumentar rapidamente seus recursos computacionais para atender a algum pico na demanda.

Essa flexibilidade e escalabilidade vem com uma compensação na soberania dos dados e, em alguns casos, na latência e nos custos no longo prazo. Os dados podem transitar entre os servidores em nuvem, o que pode afetar negativamente a velocidade de inferência (embora isso seja frequentemente compensado pelo hardware mais potente geralmente disponível nos principais provedores de nuvem). Isso também introduz complicações teóricas em relação à procedência dos dados, pois os dados são expostos a mais entidades do que estariam em cenários locais.

Implementação de edge

A implementação de edge refere-se à utilização de recursos computacionais que estão fisicamente próximos da fonte de dados, como por meio de dispositivos de Internet das coisas (IoT) e redes locais.

Em termos gerais, a implementação de edge pode ser entendida como algo semelhante a uma "nuvem no local". É mais benéfico quando os dados precisam ser agregados ou distribuídos para vários dispositivos (como sensores em uma linha de montagem de fábrica ou dispositivos de monitoramento em um hospital) e processados quase em tempo real. Nesses cenários, a execução de inferências por meio de dispositivos nos "edges" de uma rede local permite um processamento mais rápido e maior privacidade do que seria possível por meio da implementação na nuvem.

Esses benefícios são, até certo ponto, mitigados pelo fato de que o edge computing geralmente utiliza um hardware relativamente limitado em comparação com o que está disponível por meio dos provedores de nuvem. E à medida que as redes locais crescem, gerenciar atualizações em centenas ou milhares de "nós de edge" torna-se cada vez mais complexo.

Implementação no dispositivo

A implementação no dispositivo é a mais simples: a inferência de IA é executada diretamente no dispositivo do usuário final, como um notebook ou um smartphone.

A implementação no dispositivo é simples e segura e, teoricamente, proporciona a maior privacidade possível ao usuário. Naturalmente, isso é limitado pela capacidade de processamento do próprio dispositivo: a capacidade de processamento disponível em um smartphone, ou mesmo em um computador de consumo de alto desempenho, geralmente é muito inferior à de um hardware especializado. Particularmente em smartphones, a inferência no dispositivo normalmente é limitada a tarefas específicas, como filtros de câmera, reconhecimento facial ou Speech to Text.

AI Academy

Torne-se um especialista em IA

Adquira conhecimento para priorizar os investimentos em IA que estimulam o crescimento dos negócios. Comece a usar hoje mesmo a nossa AI Academy sem custo e lidere o futuro da IA na sua organização.

Hardware para inferência de IA

A inferência de IA é um processo complexo que envolve o treinamento de um modelo de IA em conjuntos de dados apropriados até que ele possa inferir respostas precisas. Esse é um processo altamente intensivo em termos de computação, que exige hardware e software especializados. Antes de examinar o processo de treinamento de modelos de IA para inferência de IA, vamos explorar alguns dos hardwares especializados que permitem isso:

Unidade de processamento gráfico (GPU)

As GPUs foram, como o próprio nome indica, originalmente projetadas para renderizar gráficos (como em videogames). A renderização de gráficos 3D, como a inferência em redes neurais profundas, exige multiplicações de matrizes em larga escala, por exemplo, para calcular os efeitos de luz e textura em milhares de pixels simultaneamente.

A capacidade de usar esse paralelismo para matemática (em vez de gráficos) deu um grande salto quando a NVIDIA introduziu a Compute Unified Device Architecture (CUDA), uma plataforma de software, API e modelo de programação que permite aos desenvolvedores escrever o código que é executado diretamente nos milhares de núcleos paralelos da GPU. Atualmente, as GPUs continuam sendo o hardware padrão do setor para o treinamento e execução de modelos deep learning.

Unidades de processamento de tensores (TPUs)

As TPUs são chips personalizados e proprietários do Google, desenvolvidos especificamente para a rede neural. Enquanto as GPUs são processadores paralelos e flexíveis de uso geral, as TPUs são projetadas exclusivamente para cálculos de matrizes de alta velocidade. Embora sejam menos versáteis que as GPUs, as TPUs oferecem maior velocidade e eficiência energética no processamento de grandes quantidades de dados de redes neurais.

Unidades de processamento neural (NPUs)

As unidades de processamento neural (NPUs), assim como as TPUs, foram projetadas explicitamente para processar os cálculos das redes neurais. Elas são normalmente usadas em smartphones e outros dispositivos móveis, pois seus recursos mais específicos reduzem o consumo de energia em relação ao das GPUs.

Matrizes de portas programáveis em campo

Matrizes de portas programáveis em campo (FPGAs) são um tipo de circuito integrado configurável que pode ser programado (e reprogramado) para atender às demandas de aplicações específicas, incluindo operações de inteligência artificial. Embora geralmente ofereçam menos poder do que as GPUs de maior nível, as FPGAs são vantajosas quando é necessária uma personalização extrema.

Circuitos integrados específicos de aplicações

Diferentemente dos FPGAs, os ASICs não podem ser personalizados ou reconfigurados. Eles são projetados especificamente para executar uma única tarefa com máxima eficiência. As TPUs do Google, por exemplo, são ASICs projetados para executar exclusivamente operações de redes neurais por meio do Tensorflow, PyTorch e JAX.

Inferência de IA distribuída

As cargas de trabalho de treinamento ou inferência de um grande modelo de IA generativa geralmente excederão a capacidade até mesmo do maior hardware acelerador. Quando sua carga de trabalho é muito grande para uma única GPU, ela pode ser distribuída entre vários processadores usando uma ou mais técnicas de paralelismo para dividir e distribuir o trabalho. Existem muitos paradigmas de paralelismo, mas os mais proeminentes são o paralelismo de dados, o paralelismo de tensor e o paralelismo de pipeline.

Os desenvolvedores geralmente podem usar frameworks de código aberto, como o vLLM, para otimizar e simplificar o processo de distribuição de inferência em vários dispositivos.

Paralelismo de dados

No paralelismo de dados, uma réplica do modelo completo é copiada em cada processador. O próprio conjunto de dados de entrada é, então, dividido em vários lotes (ou "fragmentos") e cada cópia do modelo, ou seja, cada processador, lida com um único lote. Embora esse seja talvez o meio mais direto de paralelismo, ele exige que cada processador seja grande o suficiente para armazenar todos os parâmetros do modelo na memória. Ao lidar com LLMs e modelos de visão-linguagem (VLMs) maiores, com dezenas ou centenas de bilhões de parâmetros, isso raramente é possível. Nesses casos, outros paradigmas de paralelismo devem ser usados.

Paralelismo de pipeline

No paralelismo de pipeline, diferentes camadas de uma rede neural são atribuídas a diferentes GPUs. Por exemplo, uma rede neural de 12 camadas pode ser dividida entre 3 GPUs, com a primeira GPU sendo responsável pelas 4 primeiras camadas, a segunda GPU pelas 4 camadas intermediárias e a terceira GPU pelas 4 GPU finais. Os dados são então processados sequencialmente: a produção da primeira GPU é passada para a segunda GPU, a produção da segunda GPU é passada para a terceira e a terceira GPU calcula a produção final do modelo.

O paralelismo eficiente em pipelines normalmente exige o uso de minilotes, de forma que cada GPU esteja sempre processando dados simultaneamente, em vez de ficar ociosa até receber dados da GPU anterior na sequência. No nosso exemplo básico do parágrafo anterior, a primeira GPU pode começar a processar um novo minilote de dados de entrada imediatamente após passar a saída do primeiro minilote para a segunda GPU.

Naturalmente, um sistema que usa o paralelismo de pipelines leva um tempo de "aceleração" para alcançar a utilização total do dispositivo. No nosso exemplo, a segunda GPU não pode começar a funcionar até que receba dados da primeira; a terceira GPU não pode começar a funcionar até que as duas primeiras GPUs tenham processado o minilote completo; a quarta GPU não pode começar até que a terceira termine.

Paralelismo de tensor

Para modelos muito grandes, até mesmo uma única camada pode ser grande demais para caber em um único processador. No paralelismo de tensor, as próprias camadas são subdivididas, com cada processador recebendo uma parte do tensor das ponderações do modelo. O embedding do vetor, ou seja, a representação do tensor, dos dados de input também é subdividido, com cada processador recebendo um subconjunto correspondente dos dados de input.

O paralelismo de tensor reduz significativamente as demandas de memória em cada dispositivo, pois cada processador precisa carregar tensores menores na memória do que em outros paradigmas de paralelismo. Isso acarreta um certo aumento na complexidade, já que é necessária uma maior quantidade de comunicação entre dispositivos e etapas matemáticas para integrar a produção de cada GPU.

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Soluções relacionadas
IBM watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em uma fração do tempo com uma fração dos dados.

Conheça o watsonx.ai
Soluções de inteligência artificial

Use a IA a serviço de sua empresa com a experiência e o portfólio de soluções líder do setor da IBM à sua disposição.

Explore as soluções de IA
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

  1. Explore o watsonx.ai
  2. Agende uma demonstração em tempo real