Узнайте, как Knowledge Distillation сжимает модели ИИ для более быстрого вывода, повышения точности и эффективности развертывания на периферийных устройствах.
Дистилляция знаний - это сложная стратегия оптимизации моделей в машинном обучении, при которой компактная "ученическая" модель обучается воспроизводить производительность и поведение более крупной и сложной "учителя". Основная цель состоит в том, чтобы перенести возможности обобщения и "знания" от тяжелой сети учителя к более легкой сети ученика. Этот процесс позволяет развертывать высокоточные моделей на ограниченном по ресурсам оборудовании, таком как пограничных вычислительных устройствах, не испытывая при этом значительного снижения точности, которое обычно сопровождает меньшие архитектуры. Сжимая информацию, разработчики могут получить более высокую задержку вывода и сократить использования памяти при сохранении надежной предсказательной способности.
Этот процесс основан на концепции "мягких этикеток". В стандартном контролируемом обучении, модели обучаются на "жестких метках" из обучающих данных (например, изображение на 100 % "кошка" и на 0 % "собака"). Однако предварительно обученная модель учителя создает распределение вероятностей, известное как "мягкие метки", для всех классов. Например, учитель может предсказать, что изображение на 90 % состоит из кошки, на 9 % - из собаки и на 1 % - из автомобиля. Эти мягкие метки содержат богатую информацию о взаимосвязях между например, о том, что конкретная кошка похожа на собаку.
В процессе дистилляции модель ученика обучается минимизировать разницу между своими предсказаниями и мягкими метками учителя. мягкими метками учителя, часто используя определенную функцию потерь, например расхождение Куллбэка-Лейблера. Этот позволяет студенту узнать "темные знания" или нюансы структуры данных, которые уже открыл преподаватель. уже обнаружена учителем. Для получения фундаментальных знаний исследователи часто обращаются к К основополагающей работе Джеффри Хинтона по этому вопросу.
Хотя библиотеки обычно выполняют сложные вычисления потерь внутри, инициализация модели студента для обучения
является первым практическим шагом. Вот как можно загрузить легкую студенческую модель, например
YOLO11 используя ultralytics пакет:
from ultralytics import YOLO
# Load a lightweight student model (YOLO11n)
# 'n' stands for nano, the smallest and fastest version
student_model = YOLO("yolo11n.pt")
# Train the student model on a dataset
# In a distillation workflow, this training would be guided by a teacher model's outputs
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)
Дистилляция знаний играет ключевую роль в отраслях, где эффективность так же важна, как и точность.
Важно отличать дистилляцию знаний от других техник, используемых для повышения эффективности моделей, поскольку они работают на разных принципах.
Комбинируя эти методы - например, превращая учителя в ученика, а затем применяя квантование, - разработчики могут добиться максимальной производительности встраиваемых систем.