Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Destilação de Conhecimento

Saiba como a destilação de conhecimento transfere inteligência de professores grandes para alunos compactos. Otimize Ultralytics para uma implementação rápida e eficiente.

A destilação de conhecimento é uma técnica sofisticada em aprendizagem automática em que uma rede neural compacta, chamada de «aluno», é treinada para reproduzir o comportamento e o desempenho de uma rede maior e mais complexa, conhecida como «professor». O objetivo principal desse processo é a otimização do modelo, permitindo que os desenvolvedores transfiram os recursos preditivos de arquiteturas pesadas para modelos leves, adequados para implantação em hardware com recursos limitados. Ao capturar as informações ricas codificadas nas previsões do professor, o modelo aluno geralmente alcança uma precisão significativamente maior do que se fosse treinado apenas com os dados brutos, preenchendo efetivamente a lacuna entre alto desempenho e eficiência.

O mecanismo de transferência de conhecimento

Na aprendizagem supervisionada tradicional, os modelos são treinados usando "rótulos rígidos" dos dados de treino, onde uma imagem é categorizada de forma definitiva (por exemplo, 100% "cão" e 0% "gato"). No entanto, um modelo professor pré-treinado produz uma saída por meio de uma função softmax que atribui probabilidades a todas as classes. Essas distribuições de probabilidade são conhecidas como "rótulos suaves" ou "conhecimento oculto".

Por exemplo, se um modelo de professor analisa uma imagem de um lobo, ele pode prever 90% de lobo, 9% de cão e 1% de gato. Essa distribuição revela que o lobo compartilha características visuais com um cão, contexto que uma etiqueta rígida ignora. Durante o processo de destilação, o aluno minimiza uma função de perda, como a divergência de Kullback-Leibler, para alinhar as suas previsões com as etiquetas suaves do professor. Este método, popularizado pela pesquisa de Geoffrey Hinton, ajuda o aluno a generalizar melhor e reduz o sobreajuste em conjuntos de dados menores.

Aplicações no Mundo Real

A destilação do conhecimento é fundamental em setores onde os recursos computacionais são escassos, mas o alto desempenho é indispensável.

Distinguir termos de otimização relacionados

É importante diferenciar a destilação de conhecimento de outras estratégias de compressão, pois elas modificam os modelos de formas fundamentalmente diferentes.

  • Aprendizagem por transferência: esta técnica envolve pegar um modelo pré-treinado em um vasto conjunto de dados de referência e adaptá-lo a uma nova tarefa específica (por exemplo, ajustar um classificador de imagens genérico para detect anomalias detect ). A destilação, por outro lado, concentra-se em comprimir o mesmo conhecimento em uma forma menor, em vez de alterar o domínio.
  • Poda do modelo: a poda remove fisicamente conexões ou neurónios redundantes de uma rede treinada existente para torná-la esparsa. A destilação normalmente envolve treinar uma arquitetura aluna completamente separada e menor a partir do zero, usando a orientação do professor.
  • Quantização do modelo: A quantização reduz a precisão dos pesos de um modelo (por exemplo, de ponto flutuante de 32 bits para inteiros de 8 bits) para economizar memória e acelerar o cálculo. Esse costuma ser o passo final na implantação do modelo compatível com motores como TensorRT ou OpenVINO, e pode ser combinada com a destilação para obter a máxima eficiência.

Implementação de um modelo de aluno

Em um fluxo de trabalho prático, primeiro selecione uma arquitetura leve para servir como aluno. A Ultralytics pode ser usada para gerenciar conjuntos de dados e track experimentos de treinamento desses modelos eficientes. Abaixo está um exemplo de inicialização de um modelo YOLO26 compacto, que é ideal para implantação de ponta e serve como uma rede de alunos:

from ultralytics import YOLO

# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")

# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora