Встречается на собеседованиях • сегодня
Работал ли с дистилляцией трансформеров
Да, работал. Дистилляция трансформеров — это перенос знаний от большой модели (учителя) к меньшей (ученику), сохраняя при этом качество.
Пример с кодом (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).
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы