Knowledge Distillation
Узнай, как дистилляция знаний передает интеллектуальные способности от больших «учителей» к компактным «ученикам». Оптимизируй Ultralytics YOLO26 для быстрого и эффективного развертывания на периферии.
Дистилляция знаний — это сложный метод в машинном обучении, при котором компактная нейронная сеть, называемая «учеником», обучается воспроизводить поведение и производительность более крупной и сложной сети, известной как «учитель». Основная цель этого процесса — оптимизация модели, позволяющая переносить прогностические возможности тяжелых архитектур в облегченные модели, подходящие для развертывания на оборудовании с ограниченными ресурсами. Улавливая богатую информацию, заложенную в предсказаниях учителя, модель-ученик часто достигает значительно более высокой точности, чем если бы она обучалась исключительно на необработанных данных, эффективно преодолевая разрыв между высокой производительностью и эффективностью.
Link to this sectionМеханизм передачи знаний#
В традиционном обучении с учителем модели обучаются с использованием «жестких меток» из обучающих данных, где изображение однозначно классифицируется (например, 100% «собака» и 0% «кошка»). Однако предварительно обученная модель-учитель выдает результат через softmax-функцию, которая присваивает вероятности всем классам. Эти распределения вероятностей известны как «мягкие метки» или «темные знания».
Например, если модель-учитель анализирует изображение волка, она может предсказать 90% волка, 9% собаки и 1% кошки. Это распределение показывает, что волк обладает визуальными чертами, общими с собакой, — контекст, который игнорирует жесткая метка. В процессе дистилляции ученик минимизирует функцию потерь, такую как дивергенция Кульбака-Лейблера, чтобы согласовать свои предсказания с мягкими метками учителя. Этот метод, популяризированный исследованиями Джеффри Хинтона, помогает ученику лучше обобщать данные и уменьшает переобучение на небольших наборах данных.
Link to this sectionРеальные приложения#
Дистилляция знаний имеет решающее значение в отраслях, где вычислительные ресурсы ограничены, а высокая производительность обязательна.
- Периферийный ИИ и компьютерное зрение на мобильных устройствах: Выполнение сложных задач обнаружения объектов на смартфонах или устройствах IoT требует моделей с низкой задержкой вывода. Инженеры дистиллируют массивные сети в мобильные архитектуры, такие как YOLO26 (особенно nano или small версии). Это позволяет таким приложениям, как распознавание лиц или фильтры дополненной реальности, работать плавно, не истощая заряд аккумулятора.
- Обработка естественного языка (NLP): Современные большие языковые модели (LLM) требуют для работы огромных кластеров GPU. Дистилляция позволяет создавать уменьшенные, быстрые версии этих моделей, которые сохраняют основные возможности языкового моделирования. Это делает возможным развертывание отзывчивых чат-ботов и виртуальных помощников на обычном пользовательском оборудовании или более простых облачных инстансах.
Link to this sectionРазграничение связанных терминов оптимизации#
Важно отличать дистилляцию знаний от других стратегий сжатия, поскольку они изменяют модели фундаментально разными способами.
- Перенос обучения: Этот метод включает в себя взятие модели, предварительно обученной на огромном эталонном наборе данных, и ее адаптацию к новой конкретной задаче (например, тонкая настройка общего классификатора изображений для обнаружения медицинских аномалий). Дистилляция, напротив, фокусируется на сжатии тех же знаний в меньшую форму, а не на смене домена.
- Прунинг модели: Прунинг физически удаляет избыточные соединения или нейроны из уже обученной сети, чтобы сделать ее разреженной. Дистилляция обычно включает в себя обучение совершенно отдельной, меньшей архитектуры ученика с нуля, используя руководство учителя.
- Квантование модели: Квантование снижает точность весов модели (например, с 32-битных чисел с плавающей запятой до 8-битных целых чисел) для экономии памяти и ускорения вычислений. Это часто является последним этапом при развертывании модели, совместимым с такими движками, как TensorRT или OpenVINO, и может быть объединено с дистилляцией для достижения максимальной эффективности.
Link to this sectionРеализация модели-ученика#
В практическом рабочем процессе ты сначала выбираешь облегченную архитектуру в качестве ученика. Платформу Ultralytics можно использовать для управления наборами данных и отслеживания экспериментов по обучению этих эффективных моделей. Ниже приведен пример инициализации компактной модели YOLO26, которая идеально подходит для периферийного развертывания и использования в качестве сети ученика:
from ultralytics import YOLO
# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")
# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)





