fbpx
Sigmoidal
  • Home
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
  • English
  • Home
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
Sigmoidal
Sem Resultado
Ver Todos Resultados

Compressão de Modelos: Pruning, Destilação e Quantização

Carlos Melo por Carlos Melo
fevereiro 7, 2026
em Deep Learning, Machine Learning, Tutoriais, Youtube
0
11
VIEWS
Publicar no LinkedInCompartilhar no FacebookCompartilhar no Whatsapp

Você treinou um modelo com 98% de acurácia, mas ele demora uma eternidade para rodar em produção. E agora?

Esse é um dos problemas mais comuns quando modelos de deep learning saem do notebook e vão para o mundo real. A verdade é que treinar um modelo é apenas metade do trabalho. A outra metade é fazer esse modelo rodar de forma eficiente, com baixa latência e consumo de memória aceitável, seja na nuvem ou em dispositivos com recursos limitados.

É aí que entra a compressão de modelos (model compression). Um conjunto de técnicas que permite reduzir drasticamente o tamanho de redes neurais, mantendo a maior parte da acurácia original.

Por que comprimir modelos?

A evolução do deep learning trouxe modelos cada vez mais poderosos e, inevitavelmente, cada vez maiores. Para ter uma ideia da escala:

  • A AlexNet (2012) tinha aproximadamente 240 MB de parâmetros
  • A VGG-16 ultrapassou 500 MB, exigindo cerca de 30 bilhões de operações de ponto flutuante (FLOPs) para classificar uma única imagem de 224×224 pixels
  • Os Large Language Models atuais, como o LLaMA 2 com 130 bilhões de parâmetros, exigem cerca de 260 GB de memória em precisão float16

Esses requisitos criam barreiras enormes para o deploy, especialmente em cenários que exigem:

  • Dispositivos edge: celulares, sensores IoT, sistemas embarcados com memória e processamento limitados
  • Inferência em tempo real: detecção de fraude, recomendação de conteúdo, veículos autônomos
  • Eficiência energética: aplicações que não podem drenar baterias rapidamente

O princípio por trás da compressão: redundância

Um achado fundamental da pesquisa em deep learning é que modelos treinados contêm uma quantidade enorme de redundância. Um estudo seminal de Han et al. (2015) demonstrou que é possível atingir mais de 71% de compressão sacrificando apenas 0,1% de acurácia em redes como AlexNet e VGG-16.

Essa redundância existe tanto nas camadas fully connected quanto nas camadas convolucionais. O motivo é simples: o grande número de parâmetros é fundamental durante o treinamento, pois contribui para a capacidade de aprendizado e generalização. Porém, muitos desses parâmetros tornam-se dispensáveis durante a inferência.

Você precisa de muitos parâmetros para aprender os padrões, mas não precisa de muitos parâmetros para inferir. — Han et al. (2015)

Esse princípio foi reforçado pelo paper *The Lottery Ticket Hypothesis* (Frankle & Carlin, 2019), que mostrou que dentro de redes neurais grandes existem sub-redes menores (os winning tickets) que, quando treinadas isoladamente com a inicialização correta, atingem acurácia comparável ao modelo completo.

As quatro técnicas de compressão

A literatura consolida quatro abordagens principais para compressão de modelos. Para uma visão abrangente, recomendo o paper *A Survey of Model Compression and Acceleration for Deep Neural Networks* (2018, atualizado em 2020).

1. Pruning (Poda)

O pruning tem raízes nos algoritmos clássicos de árvore de decisão, onde se removem ramificações que contribuem pouco para a classificação final. No contexto de deep learning, a ideia é a mesma: identificar e eliminar componentes que contribuem minimamente para o desempenho do modelo.

Existem dois tipos de pruning:

  • Structured pruning: remove neurônios, filtros convolucionais ou camadas inteiras. Isso muda a arquitetura do modelo, reduzindo o número total de parâmetros. O resultado é uma rede fisicamente menor.
  • Unstructured pruning (poda de pesos): identifica pesos individuais que são menos úteis e os define como zero. A arquitetura permanece a mesma, mas a rede se torna mais esparsa. Com bibliotecas especializadas e hardware apropriado, matrizes esparsas ocupam menos memória e permitem inferências mais rápidas.

Um contraponto interessante vem do paper *Rethinking the Value of Network Pruning* (Liu et al., 2019), que argumenta que o real valor do pruning não está nos pesos herdados do modelo original, mas na arquitetura podada em si. Segundo os autores, treinar a arquitetura podada do zero frequentemente alcança desempenho comparável ou até superior.

2. Low-Rank Factorization (Decomposição de Tensores)

Essa técnica usa álgebra linear para substituir tensores de alta dimensionalidade por tensores de menor dimensionalidade. O conceito central é o rank de uma matriz: se linhas ou colunas são linearmente dependentes, elas carregam informação redundante que pode ser eliminada.

Na prática, um filtro convolucional de dimensão K \times K \times C pode ser decomposto em operações sequenciais menores. A AlexNet, por exemplo, consegue manter o mesmo desempenho com 50 vezes menos parâmetros usando essa abordagem.

A desvantagem é que essa técnica é mais específica: funciona bem com redes convolucionais, mas tem aplicação limitada em Transformers. Também não é plug and play como quantização ou pruning, exigindo conhecimento mais profundo da arquitetura.

3. Knowledge Distillation (Destilação de Conhecimento)

Na destilação de conhecimento, um modelo pequeno (o aluno) é treinado para imitar um modelo maior (o professor). O aluno não aprende apenas a tarefa em si, mas também as soft predictions do professor, que são as probabilidades completas que contêm informação valiosa sobre a estrutura do problema.

A transferência acontece através da predição, não da arquitetura. Isso significa que professor e aluno podem ter estruturas completamente diferentes.

O caso de sucesso mais conhecido é o DistilBERT (Sanh et al., 2019):

  • 40% menor que o BERT original
  • Manteve 97% da performance
  • 60% mais rápido

A principal desvantagem é a dependência de um professor pré-treinado. Se não existir um modelo grande disponível, será necessário treinar um do zero, o que anula parte do benefício.

4. Quantização

A quantização é a técnica mais popular e a mais perguntada em entrevistas técnicas de machine learning engineering. A ideia é simples: reduzir a precisão numérica dos pesos e ativações do modelo.

Durante o treinamento, modelos operam tipicamente em float32 (32 bits: 1 de sinal, 8 de expoente, 23 de mantissa). A quantização mapeia esses valores para representações com menos bits, como float16 ou int8.

Os ganhos são significativos:

  • Redução de ~4x no tamanho do modelo (float32 → int8)
  • Inferências mais rápidas (operações inteiras são mais eficientes)
  • Menor consumo de energia (crítico para dispositivos edge)
  • Redução de banda na transferência de dados

Quantização simétrica vs. assimétrica

A quantização simétrica é o padrão na indústria. Ela mapeia o range de valores de forma centrada no zero, eliminando a necessidade de um ponto zero adicional (zero-point), o que reduz o overhead computacional.

A quantização assimétrica (affine) usa uma função com ponto zero, permitindo mapear ranges que não são centrados no zero. É mais precisa, mas computacionalmente mais custosa.

Desafios da quantização

Apesar da simplicidade, a quantização introduz desafios que devem ser considerados:

  • Erro de arredondamento: ao reduzir a precisão, valores são arredondados para a representação discreta mais próxima, induzindo erros
  • Erro de clipping: quando valores excedem o range da representação quantizada, são cortados, causando perda de informação
  • Degradação da acurácia: encontrar o fator de escala ótimo (scale factor) é crucial. Um fator muito grande causa overflow, muito pequeno causa underflow
  • Sensibilidade das camadas: camadas iniciais da rede, que capturam detalhes sutis como arestas e texturas, são mais sensíveis à quantização. Erros nessas camadas se propagam para as camadas subsequentes

Quando usar cada técnica

Técnica Redução típica Melhor para
Pruning Até 90% dos parâmetros Redes grandes com muita redundância
Low-Rank Factorization Até 50x menos parâmetros CNNs com filtros grandes
Knowledge Distillation 40-60% menor NLP, quando há professor disponível
Quantização ~4x menor (float32→int8) Qualquer modelo, deploy rápido

Leitura recomendada

Se você quer se aprofundar no tema, especialmente para entrevistas técnicas de machine learning engineering, recomendo o capítulo 7 (Model Development and Prediction Service) do livro Designing Machine Learning Systems, da Chip Huyen. Ele cobre as quatro técnicas com gráficos, referências e estudos de caso, além de discutir estratégias para inferência em nuvem vs. dispositivos edge.

Papers fundamentais para aprofundamento:

  • Han et al. (2015) — *Learning both Weights and Connections for Efficient Neural Networks*
  • Frankle & Carlin (2019) — *The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks*
  • Liu et al. (2019) — *Rethinking the Value of Network Pruning*
  • *A Survey of Model Compression and Acceleration for Deep Neural Networks* (2018, atualizado 2020)

Takeaways

  • Modelos grandes contêm redundância: até 90% dos parâmetros podem ser removidos com perda mínima de acurácia.
  • Quantização é a técnica mais prática: reduz o modelo em ~4x com implementação simples e é tema quase certo em entrevistas de ML engineering.
  • Pruning e distilação são complementares: podem ser combinados com quantização para compressão ainda maior.
  • Compressão não é opcional em produção: latência, memória e custo computacional são restrições reais que todo modelo em deploy precisa enfrentar.

Se você quer entender os fundamentos de deep learning antes de mergulhar em compressão, confira os melhores cursos para aprender deep learning com Python.

CompartilharCompartilharEnviar
Post Anterior

Matemática para Machine Learning: O Guia Essencial

Próximo Post

Vision Transformer (ViT): Implementação com Python

Carlos Melo

Carlos Melo

Engenheiro de Visão Computacional graduado em Ciências Aeronáuticas pela Academia da Força Aérea (AFA) e Mestre em Engenharia Aeroespacial pelo Instituto Tecnológico de Aeronáutica (ITA).

Relacionado Artigos

ViT Visual Transformer
Artigos

Vision Transformer (ViT): Implementação com Python

por Carlos Melo
março 18, 2026
Matemática para Machine Learning: O Guia Essencial
Machine Learning

Matemática para Machine Learning: O Guia Essencial

por Carlos Melo
janeiro 23, 2026
Como conseguir uma Vaga Remota nos EUA: Live com Nicole Barra
Carreira

Como conseguir uma Vaga Remota nos EUA: Live com Nicole Barra

por Carlos Melo
janeiro 10, 2026
Por que o ChatGPT mente para você?
Artigos

Por que o ChatGPT mente para você?

por Carlos Melo
setembro 16, 2025
Curso de Pós-Graduação em Data Science
Data Science

Vale a pena fazer uma Pós-Graduação em Data Science?

por Carlos Melo
janeiro 20, 2025
Próximo Post
ViT Visual Transformer

Vision Transformer (ViT): Implementação com Python

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Mais Populares

  • ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

    455 compartilhamentos
    Compartilhar 182 Tweet 114
  • Introdução ao MediaPipe e Pose Estimation

    548 compartilhamentos
    Compartilhar 219 Tweet 137
  • O Que é Amostragem e Quantização no Processamento de Imagens

    44 compartilhamentos
    Compartilhar 18 Tweet 11
  • Processamento de Nuvens de Pontos com Open3D e Python

    74 compartilhamentos
    Compartilhar 30 Tweet 19
  • Vision Transformer (ViT): Implementação com Python

    2 compartilhamentos
    Compartilhar 1 Tweet 1
  • Em Alta
  • Comentários
  • Mais Recente
Como Tratar Dados Ausentes com Pandas

Como Tratar Dados Ausentes com Pandas

agosto 13, 2019
Como usar o DALL-E 2 para gerar imagens a partir de textos

Como usar o DALL-E 2 para gerar imagens a partir de textos

dezembro 25, 2022
Introdução ao MediaPipe e Pose Estimation

Introdução ao MediaPipe e Pose Estimation

julho 15, 2023

ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

abril 10, 2023
Como Analisar Ações da Bolsa com Python

Como Analisar Ações da Bolsa com Python

15
Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

13
Como Aprender Data Science?

Como Aprender Data Science?

9
Qual o Cenário de Data Science no Brasil hoje?

Qual o Cenário de Data Science no Brasil hoje?

8
ViT Visual Transformer

Vision Transformer (ViT): Implementação com Python

março 18, 2026
Compressão de Modelos: Pruning, Destilação e Quantização

Compressão de Modelos: Pruning, Destilação e Quantização

fevereiro 7, 2026
Matemática para Machine Learning: O Guia Essencial

Matemática para Machine Learning: O Guia Essencial

janeiro 23, 2026
Como conseguir uma Vaga Remota nos EUA: Live com Nicole Barra

Como conseguir uma Vaga Remota nos EUA: Live com Nicole Barra

janeiro 10, 2026

Seguir

    The Instagram Access Token is expired, Go to the Customizer > JNews : Social, Like & View > Instagram Feed Setting, to refresh it.
Instagram Youtube LinkedIn Twitter
Sigmoidal

O melhor conteúdo técnico de Data Science, com projetos práticos e exemplos do mundo real.

Seguir no Instagram

Categorias

  • Aeroespacial
  • Artigos
  • Blog
  • Carreira
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Entrevistas
  • IA Generativa
  • Livros
  • Machine Learning
  • Notícias
  • Python
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Navegar por Tags

camera calibration carreira chatgpt cientista de dados cnn computer vision Cursos dados desbalanceados data science data science na prática decision tree deep learning deploy gpt-3 histograma IA generativa image formation inteligência artificial jupyter kaggle keras machine learning matplotlib mnist nft openai opencv overfitting pandas profissão python redes neurais redes neurais convolucionais regressão linear regressão logística salário seaborn sklearn tensorflow titanic tutorial visão computacional vídeo youtube árvore de decisão

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Sem Resultado
Ver Todos Resultados
  • Home
  • Pós-Graduação
  • Blog
  • Sobre Mim
  • Contato
  • English

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.