Home Knowledge Base Online Distillation and Co-Distillation

Online Distillation and Co-Distillation is the training paradigm where multiple neural networks teach each other simultaneously during training — unlike traditional knowledge distillation where a pre-trained large teacher transfers knowledge to a smaller student, online distillation trains teacher and student (or multiple peers) jointly from scratch, enabling mutual improvement where networks with different architectures or capacities share complementary knowledge through soft label exchange, logit matching, and feature alignment without requiring a separately trained teacher model.

Traditional vs. Online Distillation

Traditional (Offline) Distillation:
  Step 1: Train large teacher to convergence
  Step 2: Freeze teacher → train student on teacher's soft labels
  Cost: 2× training time (teacher + student)

Online (Co-)Distillation:
  Step 1: Train all networks simultaneously
  Each network is both teacher AND student
  Cost: ~1.3× training a single network (parallel)

Key Approaches

MethodMechanismNetworksKey Idea
Deep Mutual Learning (DML)Logit-based KL loss between peers2+ peersPeers teach each other
Co-DistillationFeature + logit exchange2+ modelsDifferent architectures share knowledge
Self-DistillationModel teaches itself across layers1 modelDeeper layers teach shallower layers
Born-Again NetworksSequential self-distillation1 → 1 → 1Student matches or beats teacher
ONE (Online Ensemble)Shared backbone + multiple heads1 backboneGate network selects ensemble teacher

Deep Mutual Learning

# Two networks training together
for batch in dataloader:
    logits_1 = model_1(batch)
    logits_2 = model_2(batch)
    
    # Standard CE loss for both
    loss_ce_1 = cross_entropy(logits_1, labels)
    loss_ce_2 = cross_entropy(logits_2, labels)
    
    # Mutual KL divergence (each teaches the other)
    loss_kl_1 = kl_div(log_softmax(logits_1/T), softmax(logits_2/T)) * T*T
    loss_kl_2 = kl_div(log_softmax(logits_2/T), softmax(logits_1/T)) * T*T
    
    # Combined losses
    loss_1 = loss_ce_1 + alpha * loss_kl_1
    loss_2 = loss_ce_2 + alpha * loss_kl_2

Why Does Mutual Learning Work?

Self-Distillation

Applications

ApplicationBenefit
Edge deploymentTrain compressed model without pre-training teacher
Federated learningClients co-distill across communication rounds
Ensemble compressionDistill ensemble into single model during training
Continual learningOld and new task models teach each other
Multi-modal trainingVision and language models co-distill

Online distillation is the efficient alternative to traditional teacher-student training — by eliminating the need for a separately pre-trained teacher and enabling networks to improve each other during joint training, co-distillation reduces total training cost while often achieving better accuracy than offline distillation, making it particularly valuable when training large teacher models is impractical or when mutual knowledge exchange between diverse model architectures is desired.

neural network distillation onlineonline distillationco distillationmutual learningcollaborative training

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.