Knowledge distillation for LLM compression uses a student model to replicate a teacher model's behavior. Black-box distillation and white-box distillation are common methods. SeqKD is another technique for inference cost reduction. Fine-tuning vs distillation: distillation excels for narrow domains. The DeepSeek-R1 distill example shows neural network compression at scale.
Knowledge Distillation Technique: When Teacher Teaches Student
In our practice, a frequent request is to reduce inference cost of large models (GPT-4o, Claude 3.5) without quality loss. We apply Knowledge Distillation (KD). That transfers knowledge from a bulky "teacher" to a compact "student." This is not just fine-tuning. The student learns on soft labels — the teacher's probability distribution over the entire vocabulary. This distribution carries 10–100 times more information than a single correct answer.
The benefit is clear. Quality is retained at 85–95%, while inference cost reduces multiple times. Our company has over 5 years in NLP and has completed over 30 distillation projects. We saved clients up to $10,000 per month. For instance, a client spent $5,000 monthly on GPT-4o inference. After distillation, their cost dropped to $500 per month, saving $4,500 monthly. Request a consultation — we will evaluate your project and select the optimal compression strategy.
Main Distillation Methods for LLMs
Black-box Distillation (Response Distillation) uses only the teacher's final answers. The teacher is a black box (e.g., GPT-4o API). The student is trained on a dataset where labels are teacher outputs. Read more about Knowledge Distillation on Wikipedia.
# Collecting data from teacher (GPT-4o)
def collect_teacher_outputs(prompts: list[str], client) -> list[dict]:
dataset = []
for prompt in prompts:
teacher_response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
temperature=0.3
).choices[0].message.content
dataset.append({"prompt": prompt, "response": teacher_response})
return dataset
# Student (Llama 3.1 8B) trains on GPT-4o responses via SFT
White-box Distillation (Feature/Logit Distillation) — access to teacher logits. This allows training on soft labels, which is more informative at the token level.
import torch
import torch.nn.functional as F
def distillation_loss(
student_logits, # [batch, seq_len, vocab_size]
teacher_logits, # [batch, seq_len, vocab_size]
labels, # [batch, seq_len]
temperature: float = 4.0,
alpha: float = 0.5 # balance between SFT and KD loss
) -> torch.Tensor:
"""
Combined loss: alpha*KD + (1-alpha)*SFT
temperature smooths the teacher distribution
"""
# KD loss on soft labels
soft_teacher = F.softmax(teacher_logits / temperature, dim=-1)
soft_student = F.log_softmax(student_logits / temperature, dim=-1)
kd_loss = F.kl_div(soft_student, soft_teacher, reduction="batchmean") * (temperature ** 2)
# SFT loss on hard labels
sft_loss = F.cross_entropy(
student_logits.view(-1, student_logits.size(-1)),
labels.view(-1),
ignore_index=-100
)
return alpha * kd_loss + (1 - alpha) * sft_loss
Sequence-level KD (SeqKD) — the student is trained on the best teacher-generated sequences (beam search). It is easier to implement with black-box access.
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning — an example of industrial distillation.
Which Distillation Method to Choose?
| Criterion | Black-box KD | White-box KD | SeqKD |
|---|---|---|---|
| Teacher access | API (no logits) | Local model (logits available) | API or local |
| Informativeness | Medium (only answers) | High (distribution) | High (sequences) |
| Implementation complexity | Low | Medium | Medium |
| Application | Domain specialization | General distillation | Text generation |
Why Distillation Is Better Than Fine-Tuning?
Fine-tuning on original data requires a large sample. It does not give the compact model knowledge of "silver" answers. KD transfers the teacher distribution. That is especially effective for narrow domains. Moreover, the student inherits not only answers but also the teacher's reasoning structure — chain-of-thought. That is hard to reproduce with ordinary SFT.
DeepSeek-R1 Distill: Example of Industrial Distillation
One striking example is the distillation of DeepSeek-R1 (671B, MoE) into dense models:
- DeepSeek-R1-Distill-Qwen-32B: 32B parameters, ~85% of R1's reasoning ability
- DeepSeek-R1-Distill-Llama-70B: 70B parameters, ~92% of R1
- DeepSeek-R1-Distill-Llama-8B: 8B parameters, ~70% of R1
Process: teacher (R1) generates 800K examples with CoT reasoning. Student is trained via standard SFT. Result: models that are orders of magnitude cheaper for inference.
Practical Case: Corporate Assistant Distillation
Challenge: a client was using a fine-tuned GPT-4o for contract analysis. Inference cost was significant per month. The goal was to reduce it by 10x without dropping quality below 90% of GPT-4o's level.
Strategy:
- Collected 12,000 queries from production logs
- Ran them through GPT-4o — got teacher responses
- Fine-tuned Llama 3.1 8B on this data (SFT distillation)
- Additionally applied DPO with preferred=GPT-4o responses, rejected=Llama baseline
Infrastructure: data collection via OpenAI API, training on A100 40GB — 6 hours. Data collection costs paid off in the first week.
Results:
- Quality retention vs GPT-4o (LLM-judge): 91%
- Latency p95: reduced by 4x+ (self-hosted vLLM)
- Inference cost: multiple reduction, saving up to 90% of original cost
More on training setup
For training we used LoRA (rank=64) and AdamW with lr=2e-4. Batch size 32, gradient accumulation steps 4. Total of 3 epochs. For teacher data generation, we used temperature=0.3, top_p=0.9.
What's Included in Distillation Work?
- Analysis of current model and target quality metrics
- Collection and preparation of distillation dataset (from teacher or logs)
- Student training (architecture selection, hyperparameter tuning)
- Testing and validation (LLM-judge, accuracy metrics, latency p99)
- Inference optimization (quantization, vLLM, ONNX Runtime)
- Documentation and training of your team to work with the model
We guarantee that the final model will lose no more than 10% quality on key metrics. Inference cost will be reduced multiple times. Get a consultation — we will calculate exact timelines and cost for your task.
Limitations of Distillation
- The student cannot surpass the teacher, at best it approaches
- Teacher dependency: if the teacher makes mistakes, the student inherits them
- Narrow domain: black-box KD works well for specialization, poorly for general capability
- Size gap: distilling 405B → 8B loses more than 70B → 8B
Optimal Temperature Values
Temperature T in the KD loss determines the "softness" of the teacher distribution. Empirical rule: T=3–5 for most tasks, tuned empirically.
| T | Effect |
|---|---|
| T=1 | Original probabilities (sharp) |
| T=2–4 | Smoothed — student sees "silver" answers better |
| T=5–10 | Very soft — for small students with limited capacity |
Timelines
- Data collection from teacher: 1–3 days
- Distillation dataset preparation: 1–2 weeks
- Student training (8B, SFT): 3–10 hours
- Evaluation vs teacher: 3–5 days
- Total: 3–6 weeks
Request a consultation — we will evaluate your project and select the optimal distillation method. Our engineers have experience with models from 7B to 405B and guarantee results.







