Início
topics
Destilação de conhecimento
Publicado: 16 de abril de 2024
Colaborador: Dave Bergmann
A destilação do conhecimento é uma técnica de aprendizado de máquina que visa transferir os aprendizados de um grande modelo pré-treinado, o "modelo professor", para um "modelo aluno" menor. É usado em deep learning como uma forma de compressão de modelo e transferência de conhecimento, particularmente para redes neurais profundas massivas.
O objetivo da destilação de conhecimento é treinar um modelo mais compacto para imitar um modelo maior e mais complexo. Enquanto o objetivo no deep learning convencional é treinar uma rede neural artificial para aproximar suas previsões dos exemplos de saída fornecidos em um conjunto de dados de treinamento, o objetivo principal na destilação de conhecimento é treinar a rede aluna para corresponder às previsões feitas pela rede professora.
A destilação de conhecimento (KD) é mais frequentemente aplicada a grandes redes neurais profundas com muitas camadas e parâmetros aprendíveis. Esse processo a torna particularmente relevante para a proliferação contínua de modelos de IA generativa massiva com bilhões de parâmetros.
O conceito tem suas origens em um artigo de 2006 intitulado "Model Compression". Caruana et al usaram o que era um modelo de classificação de última geração na época, um enorme modelo de conjunto composto por centenas de classificadores de nível básico, para rotular um grande conjunto de dados e, em seguida, treinou uma única rede neural nesse recém-criado conjunto de dados rotulados por meio de um aprendizado supervisionado convencional. Esse modelo compacto, "mil vezes menor e mais rápido", correspondeu ao desempenho do conjunto.1
Desde então, as técnicas de destilação de conhecimento têm sido empregadas com sucesso em diversos campos, incluindo processamento de linguagem natural (PLN), reconhecimento de fala, reconhecimento de imagem e detecção de objetos. Nos últimos anos, o estudo da destilação do conhecimento tem sido particularmente importante para grandes modelos de linguagem (LLMs). Para os LLMs, a destilação de conhecimento surgiu como um meio eficaz de transferência de recursos avançados dos principais modelos proprietários para modelos de código aberto menores e mais acessíveis.
Este ebook descreve os principais benefícios da adoção da IA generativa em toda a empresa e como as organizações podem incorporar com confiança modelos de base e aprendizado de máquina nas suas operações de negócios.
Em muitos cenários do mundo real, a precisão e a capacidade de um modelo de inteligência artificial não são, por si só, suficientes para tornar o modelo útil: ele também deve caber no orçamento disponível de tempo, memória, dinheiro e recursos computacionais.
Os modelos de melhor desempenho para uma determinada tarefa costumam ser muito grandes, lentos ou caros para a maioria dos casos de uso prático, mas muitas vezes têm qualidades únicas que emergem de uma combinação de seu tamanho e de sua capacidade de pré-treinamento em uma enorme quantidade de dados de treinamento. Essas habilidades emergentes são especialmente evidentes em modelos de linguagem autorregressivos, como GPT ou Llama, que apresentam recursos além do seu objetivo explícito de treinamento de simplesmente prever a próxima palavra em uma sequência. Por outro lado, modelos pequenos são mais rápidos e menos exigentes em termos de computação, mas não têm a precisão, o refinamento e a capacidade de conhecimento de um modelo grande com muito mais parâmetros.
No artigo seminal de 2015, "Distilling the Knowledge in a Neural Network", Hinton et al propuseram contornar essas limitações dividindo o treinamento em dois estágios distintos com propósitos distintos. Os autores apresentaram uma analogia: enquanto muitos insetos têm uma forma larval otimizada para extrair energia e nutrientes do ambiente e uma forma adulta totalmente diferente otimizada para viagens e reprodução, o deep learning convencional usa os mesmos modelos para os estágios de treinamento e implementação, apesar de suas diferentes exigências.
Inspirando-se na natureza e no trabalho de Caruana et al, Hinton et al sugeriram que treinar modelos grandes e pesados vale a pena se essa for a melhor maneira de extrair a estrutura dos dados – mas introduziram um tipo diferente de treinamento, a destilação, para transferir esse conhecimento para um modelo pequeno mais adequado à implementação em tempo real.2
As técnicas de destilação de conhecimento visam não apenas replicar os resultados dos modelos professores, mas emular seus "processos de pensamento". Na era dos LLMs, a destilação de conhecimento permitiu a transferência de qualidades abstratas como estilo, habilidades de raciocínio e alinhamento às preferências e valores humanos.3
Além disso, modelos menores são fundamentalmente mais explicáveis: em um modelo com centenas de bilhões de parâmetros, é difícil interpretar as contribuições de diferentes partes da rede neural. A transferência de representações aprendidas por grandes modelos de "caixa preta" para modelos mais simples pode ajudar a elucidar insights transformadores em campos como diagnóstico médico e descoberta molecular.4
A destilação de conhecimento (KD) não depende de nenhuma arquitetura de rede neural específica, nem mesmo exige que a rede professora e a rede aluna tenham as mesmas arquiteturas: ela pode ser aplicada a qualquer modelo de deep learning.
A destilação de conhecimento aproveita o fato de que as redes neurais artificiais são "aproximadores universais": com dados de treinamento suficientes e uma camada oculta grande o suficiente, uma rede neural pode aproximar qualquer função com precisão arbitrária.5
No aprendizado de máquina convencional, o "conhecimento" de um modelo treinado é identificado com seus parâmetros aprendidos: os pesos variáveis (e vieses), aplicados às diferentes operações matemáticas que ocorrem na rede neural, que amplificam ou diminuem a influência que uma determinada parte da produção da rede tem sobre outra parte. Esta visão do conhecimento torna difícil ver como um modelo pode absorver o conhecimento de outro modelo de tamanho e estrutura diferentes.
Em vez disso, Hinton et al aplicaram uma visão mais abstrata e flexível do conhecimento como simplesmente "um mapeamento aprendido de vetores de entrada para vetores de saída". Em outras palavras, a destilação de conhecimento interpreta o conhecimento de um modelo não como os parâmetros estritamente matemáticos que ele aprende no treinamento, mas como ele generaliza para novos dados após esse treinamento.
Por meio dessa compreensão alternativa do conhecimento, os métodos de destilação de conhecimento visam treinar modelos alunos para imitar não apenas o resultado final do modelo professor para uma determinada entrada, mas também as etapas de raciocínio que o modelo professor adota para chegar a esse resultado final. Conceitualmente, isso funciona de forma semelhante ao ajuste de instruções por meio de comandos da cadeia de pensamento (CoT), o que melhora a qualidade das respostas do LLM, ensinando-as a articular sua lógica "passo a passo".
No aprendizado convencional supervisionado ou autossupervisionado, uma função de perda produz um vetor que representa a divergência (ou perda) entre as saídas do modelo e as saídas "corretas" (ou verdade absoluta) em diferentes entradas. Ao ajustar os parâmetros do modelo para minimizar a inclinação (ou gradiente) desse vetor por meio de um algoritmo de otimização como o gradiente descendente, os resultados do modelo se aproximam dos resultados corretos. Embora as etapas de raciocínio do modelo sejam "importantes", pois influenciam seu resultado final, elas não são normalmente medidas por uma função de perda convencional.
A destilação de conhecimento, por outro lado, também treina o modelo aluno para imitar o processo de raciocínio do modelo professor por meio da adição de um tipo especializado de função de perda, a perda de destilação, que usa etapas de raciocínio discretas como objetivos fáceis para otimização.
A produção de qualquer modelo de IA pode ser entendida como previsões: um LLM autorregressivo prevê a(s) próxima(s) palavra(s) em uma sequência especifica; um modelo de visão computacional usado para classificação de imagens prevê a categoria de uma determinada imagem. Para chegar a essas previsões finais, chamadas de "objetivos difíceis" neste contexto, os modelos de deep learning normalmente fazem várias previsões preliminares e usam uma função softmax para gerar a previsão com a maior probabilidade. Durante o treinamento, uma função de perda de entropia cruzada é usada para maximizar a probabilidade atribuída à produção correta e minimizar a probabilidade atribuída às produções incorretas.
Por exemplo, um modelo de classificação de imagens prevê a probabilidade de uma imagem de input pertencer a cada classe conhecida que o modelo foi treinado para reconhecer e, em seguida, gera a classe com o valor de probabilidade mais alto. Na linguagem matemática do aprendizado de máquina, essas previsões individuais de classe são chamadas de logits. Da mesma forma, um LLM autoregressivo prevê múltiplas possibilidades para cada palavra seguinte e (dependendo de sua configuração de temperatura ) usa uma dessas possibilidades para sua produção.
Na destilação de conhecimento, essas previsões intermediárias – os "objetivos fáceis" – geradas pelo modelo professor geralmente fornecem os principais dados de treinamento para o modelo aluno. As probabilidades relativas atribuídas a essas previsões preliminares fornecem insights valiosos sobre como o modelo professor tende a generalizar. Por exemplo, um modelo de classificação de imagem tem muitas mais probabilidade de classificar incorretamente uma imagem de uma raposa como "cachorro" do que como "sanduíche". Os objetivos fáceis, portanto, fornecem muito mais informações por caso de treinamento do que os objetivos difíceis sozinhos.
Os objetivos fáceis também oferecem mais consistência do que os objetivos difíceis: a previsão final de um modelo pode, em último caso, depender de uma diferença minúscula entre dois valores de logit, mas os próprios valores de logit têm muito menos variação no gradiente entre cada exemplo de treinamento.
Devido à riqueza e à estabilidade das informações fornecidas pelos objetivos fáceis, o modelo aluno pode ser treinado com menos exemplos de treinamento, usando uma taxa de aprendizado mais alta do que a usada para treinar o modelo professor original.
Para aproximar as tendências de generalização da rede aluna das da rede professora, a destilação de conhecimento normalmente usa duas funções de perda. A primeira é uma função de perda padrão que opera em "perda difícil", medindo os resultados finais do modelo aluno em relação aos rótulos de verdade absoluta (no aprendizado supervisionado) ou em relação à amostra de dados original (no aprendizado autossupervisionado). A segunda é a perda de destilação, uma "perda fácil" que mede os objetivos fáceis do modelo aluno em relação ao professor.
Como pode haver vários objetivos fáceis para cada exemplo de treinamento, a perda de destilação mede a diferença entre a distribuição de probabilidade dos objetivos fáceis da rede professora e a distribuição de probabilidade da aluna. A divergência de Kullback-Leibler (ou "divergência KL") é comumente usada para essa finalidade.
Embora os logits sejam o foco típico da transferência de conhecimento entre professores e alunos, existem várias maneiras pelas quais o "conhecimento" pode se manifestar em uma rede neural profunda. Outros métodos de destilação de conhecimento se concentram em pesos e ativações nas camadas ocultas da rede ou nas relações entre diferentes partes da rede.
Essas diferentes formas de conhecimento geralmente se enquadram em uma das três categorias: conhecimento baseado em respostas, conhecimento baseado em recursos ou conhecimento baseado em relações.
O conhecimento baseado em respostas, o gênero mais comum de destilação de conhecimento, concentra-se na transferência de informações da camada de saída final do modelo professor. Em um método típico de destilação de conhecimento baseado em respostas, o modelo aluno é treinado para produzir logits que correspondam às previsões do modelo professor.
Quando os objetivos fáceis do modelo professor têm baixa entropia – em outras palavras, quando as previsões são extremamente "confiantes", como se um modelo de classificação produzisse um logit muito próximo de 1 (representando certeza) para uma classe e um logit próximo de 0 para todas as outras – eles não fornecem tanta informação. Portanto, os métodos baseados em resposta, costumam usar uma configuração de alta temperatura para as produções do modelo, o que aumenta a entropia das previsões do modelo. Isso garante uma distribuição de probabilidade mais variável e, portanto, uma maior quantidade de informações de cada exemplo de treinamento.
O conhecimento baseado em recursos concentra-se nas informações transmitidas nas camadas intermediárias, ou "camadas ocultas", de uma rede neural. É aqui que as redes neurais tendem a realizar a extração de recursos, a identificação de características e padrões distintos dos dados de input que são relevantes para a tarefa em questão.
Por exemplo, nas redes neurais convolucionais usadas predominantemente para tarefas de visão computacional, como segmentação de imagem, cada camada oculta sucessiva captura detalhes progressivamente mais ricos à medida que os dados são transmitidos pela rede. Em um modelo usado para classificar imagens de animais por espécie, as primeiras camadas ocultas podem simplesmente discernir a presença de uma forma animal em uma parte da foto; as camadas ocultas do meio podem discernir que o animal é um pássaro; as camadas ocultas finais, pouco antes da camada de produção, discerniriam os detalhes sutis que diferenciam uma espécie de ave de outra espécie intimamente relacionada.
O objetivo dos métodos de destilação de conhecimento baseados em recursos é, portanto, treinar o modelo aluno para que aprenda os mesmos recursos que a rede professora. As funções de perda de destilação baseadas em recursos são usadas para medir e, em seguida, minimizar a diferença entre as ativações de recurso das duas redes.
Enquanto o conhecimento baseado em respostas e em recursos se concentra nas produções de camadas de modelo específicas, a destilação de conhecimento baseada em relações se concentra nas relações entre diferentes camadas ou entre mapas de recursos que representam as ativações em diferentes camadas ou locais.
Em essência, o conhecimento baseado em relações representa talvez a abordagem abrangente de treinamento da rede aluna para emular o "processo de pensamento" do modelo professor. Essas relações e correlações podem ser modeladas de várias maneiras, incluindo correlações entre mapas de recursos, matrizes que representam a similaridade entre diferentes camadas, incorporações de recursos ou distribuições probabilísticas de representações de recursos.
Os métodos de destilação de conhecimento também podem ser categorizados por seu impacto na rede professora. Enquanto o processo de destilação originalmente proposto por Hinton et al e as muitas evoluções subsequentes dessa metodologia visam exclusivamente treinar a rede aluna, outros esquemas de destilação também envolvem a atualização simultânea dos pesos da rede professora.
Na destilação offline, a rede professora já está pré-treinada e os pesos do modelo estão congelados para evitar novas mudanças. A destilação offline é típica de muitas abordagens de destilação de conhecimento para LLMs, nas quais o professor é geralmente um modelo proprietário maior, para o qual os pesos do modelo não podem ser alterados.
Em algumas circunstâncias, um modelo professor pré-treinado e com desempenho adequado pode não estar disponível, ou um cientista de dados pode querer adaptar a rede professora ao seu caso de uso específico. Os esquemas de destilação online visam treinar simultaneamente as redes professora e aluna.
Por exemplo, Cioppa et al propuseram um esquema de destilação online para modelos de segmentação semântica usados em eventos esportivos ao vivo, onde as circunstâncias visuais podem mudar durante uma partida. O objetivo era contornar a compensação entre a velocidade de uma rede menor e a precisão de uma rede maior, treinando continuamente um modelo lento e de bom desempenho com dados de partidas ao vivo e, ao mesmo tempo, destilando o conhecimento desse modelo maior em um modelo menor e mais rápido implementado para gerar resultados em tempo real.6
Na autodestilação, uma rede atua tanto como professora quanto como aluna. Enquanto a destilação de conhecimento convencional envolve a transferência de conhecimento de um modelo para outro, a autodestilação pode ser entendida como a transferência de conhecimento das camadas mais profundas de uma rede para as camadas superficiais da mesma rede.7
Na autodestilação, vários "classificadores superficiais" baseados em atenção são adicionados às camadas intermediárias do modelo em profundidades variadas. Durante o treinamento, os classificadores mais profundos atuam como modelos professores e orientam o treinamento dos outros módulos baseados em atenção por meio de dois tipos de perdas de destilação: uma perda métrica de divergência KL nas produções e uma perda de regularização L2 nos mapas de recursos.
Depois que o modelo estiver treinado e pronto para inferência, todos esses classificadores superficiais serão removidos do modelo. Basicamente, isso permite que o modelo seja maior e tenha maior capacidade de reconhecimento de padrões durante o treinamento, mas depois seja menor e, consequentemente, mais rápido e eficiente quando implementado.
Com o advento dos LLMs, a destilação de conhecimento emergiu como um meio importante de transferência de recursos avançados de modelos grandes, muitas vezes proprietários, para modelos menores, muitas vezes de código aberto. Dessa forma, ela se tornou uma ferramenta importante na democratização da IA generativa.
Os LLMs com os maiores recursos são, na maioria dos casos, muito caros e exigentes em termos de computação para serem acessíveis a muitos possíveis usuários, como amadores, startups ou instituições de pesquisa. Além disso, apesar de seu desempenho avançado e de suas habilidades exclusivas, os LLMs proprietários, por sua natureza, não podem ser adaptados a aplicações de nicho e casos de uso específicos.
Além disso, a maioria dos LLMs comercialmente viáveis são muito grandes e exigentes em termos de computação para serem usados localmente em telefones celulares ou outros dispositivos edge. Isso apresenta diversas complicações logísticas, computacionais e de privacidade que, de outra forma, seriam contornadas com um modelo menor que poderia ser executado diretamente nos dispositivos móveis. A compressão de modelo da destilação de conhecimento, portanto, apresenta um meio promissor de transferir as qualidades emergentes de modelos grandes para modelos pequenos o suficiente para serem executados no dispositivo.
Outros usos comuns da destilação de conhecimento para LLMs incluem:
O uso de um modelo professor para classificar as produções dos alunos, destilando suas preferências e configurações de alinhamento por meio de uma variação do aprendizado por reforço do feedback humano (RLHF) apelidado de aprendizado por reforço do feedback da IA (RLAIF).11
Treine, valide, ajuste e implemente IA generativa, modelos de base e recursos de aprendizado de máquina com facilidade, além de criar aplicativos de IA em uma fração do tempo com uma fração dos dados.
Descubra a biblioteca de modelos de base econômicos de nível corporativo do watsonx AI studio desenvolvidos pela IBM, modelos de código aberto e modelos fornecidos por fornecedores terceirizados, para ajudar clientes e parceiros a escalar e operacionalizar rapidamente a IA generativa com risco mínimo.
Saiba mais sobre redes neurais artificiais, a arquitetura de modelo que fornece a base para deep learning e IA generativa.
Leia sobre como os métodos de destilação de conhecimento estão sendo aplicados no campo do LLMS. Este artigo reproduz, compara e analisa vários métodos representativos para a destilação de uso geral de modelos de linguagem baseados em transformadores.
Estabeleça um conhecimento prático mais forte sobre IA generativa: o uso de IA para criar conteúdo original – como texto, imagens, vídeo, áudio ou código de software – em resposta a um comando ou solicitação de um usuário.
Nota: todos os links são externos ao site ibm.com
1 "Model compression", Proceedings of the Twelfth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 23 de agosto de 2006
2 "Distilling the Knowledge in a Neural Network", arXiv, 9 de março de 2015
3 "A Survey on Knowledge Distillation of Large Language Models", arXiv, 8 de março de 2024
4 "Improving drug-target affinity prediction via feature fusion and knowledge distillation", Briefings in Bioinformatics, maio de 2023
5 "A three layer neural network can represent any multivariate function", arXiv, 16 de janeiro de 2022
6 "ARTHuS: Adaptive Real-Time Human Segmentation in Sports Through Online Distillation", 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), 2019
7 "Self-Distillation: Towards Efficient and Compact Neural Networks", IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 44, no. 8, págs. 4388-4403, 1º de agosto de 2022
8 "Multilingual Neural Machine Translation with Knowledge Distillation", arXiv, 30 de abril de 2019
9 "Making Monolingual Sentence Embeddings Multilingual using Knowledge Distillation", arXiv, 21 de abril de 2020
10 "Orca: Progressive Learning from Complex Explanation Traces of GPT-4", Hugging Face, 5 de junho de 2023
11 "RLAIF: Scaling Reinforcement Learning from Human Feedback with AI Feedback", arXiv, 1 de setembro de 2023