Встречается на собеседованиях • сегодня

Работал ли с дистилляцией трансформеров

Да, работал. Дистилляция трансформеров — это перенос знаний от большой модели (учителя) к меньшей (ученику), сохраняя при этом качество.

Пример с кодом (PyTorch + HuggingFace):

python
from transformers import BertForSequenceClassification, BertTokenizer, Trainer, TrainingArguments

# Учитель (большая модель)
teacher = BertForSequenceClassification.from_pretrained('bert-large-uncased')  

Ученик (маленькая модель)

student = BertForSequenceClassification.from_pretrained('bert-base-uncased')

Лосс для дистилляции (KL-дивергенция)

loss = KLDivLoss()

Обучение с учетом лосса учителя

trainer = Trainer(
model=student,
args=TrainingArguments(...),
compute_loss=lambda model, inputs: loss(
model(**inputs).logits,
teacher(**inputs).logits.detach() # Важно detach!
)
)
trainer.train()

text

**Ключевые моменты:**  
- Температура (T) в softmax для сглаживания распределений.  
- Комбинация лоссов (ученик + дистилляция + классика).  
- Иногда дистиллируют только attention-матрицы (TinyBERT).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы