Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Дистилляция знаний

Узнайте, как дистилляция знаний передает интеллект от крупных учителей к компактным ученикам. Оптимизируйте Ultralytics для быстрого и эффективного развертывания на периферии.

Дистилляция знаний — это сложная техника в машинном обучении, при которой компактная нейронная сеть, называемая «учеником», обучается воспроизводить поведение и производительность более крупной и сложной сети, известной как «учитель». Основная цель этого процесса — оптимизация модели, позволяющая разработчикам переносить прогнозирующие возможности тяжелых архитектур в легкие модели, подходящие для развертывания на аппаратном обеспечении с ограниченными ресурсами. Захватывая богатую информацию, закодированную в прогнозах учителя, модель ученика часто достигает значительно более высокой точности, чем если бы она была обучена исключительно на сырых данных, эффективно преодолевая разрыв между высокой производительностью и эффективностью.

Механизм передачи знаний

В традиционном обучении с учителем модели обучаются с использованием «жестких меток» из учебных данных, где изображение однозначно классифицируется (например, 100% «собака» и 0% «кошка»). Однако предварительно обученная модель-учитель генерирует выходные данные с помощью функции softmax, которая присваивает вероятности всем классам. Эти распределения вероятностей известны как «мягкие метки» или «темные знания».

Например, если модель учителя анализирует изображение волка, она может предсказать 90% волк, 9% собака и 1% кошка. Это распределение показывает, что волк имеет общие визуальные черты с собакой, что игнорируется жесткой меткой. Во время процесса дистилляции ученик минимизирует функцию потерь, такую как дивергенция Куллбака-Лейблера, чтобы согласовать свои прогнозы с мягкими метками учителя. Этот метод, популяризованный исследованиями Джеффри Хинтона, помогает ученику лучше обобщать и уменьшает переобучение на небольших наборах данных.

Применение в реальном мире

Дистилляция знаний играет ключевую роль в отраслях, где вычислительные ресурсы ограничены, но высокая производительность является необходимым условием.

  • Edge AI и Mobile Vision: для выполнения сложных задач по обнаружению объектов на смартфонах или устройствах IoT требуются модели с низкой задержкой вывода. Инженеры преобразуют огромные сети в архитектуры, подходящие для мобильных устройств, такие как YOLO26 (в частности, нано- или малые варианты). Это позволяет приложениям реального времени, таким как распознавание лиц или фильтры дополненной реальности, работать плавно, не разряжая батарею.
  • Обработка естественного языка (NLP): Современные большие языковые модели (LLM) требуют огромных GPU кластеров. Дистилляция позволяет разработчикам создавать более компактные и быстрые версии этих моделей, которые сохраняют основные возможности языкового моделирования. Это делает возможным развертывание отзывчивых чат-ботов и виртуальных помощников на стандартном потребительском оборудовании или более простых облачных инстансах.

Различение родственных терминов оптимизации

Важно отличать дистилляцию знаний от других стратегий сжатия, поскольку они модифицируют модели фундаментально разными способами.

  • Перенос обучения: эта техника предполагает использование модели, предварительно обученной на обширном эталонном наборе данных, и ее адаптацию к новой, конкретной задаче (например, точная настройка общего классификатора изображений для detect аномалий). Дистилляция, напротив, фокусируется на сжатии тех же знаний в более компактную форму, а не на изменении области.
  • Обрезка модели: обрезка физически удаляет избыточные связи или нейроны из существующей обученной сети, чтобы сделать ее разреженной. Дистилляция обычно включает в себя обучение совершенно отдельной, более мелкой архитектуры ученика с нуля под руководством учителя.
  • Квантование модели: Квантование снижает точность весов модели (например, с 32-разрядных чисел с плавающей запятой до 8-разрядных целых чисел) для экономии памяти и ускорения вычислений. Часто это последний шаг в развертывании модели, совместимой с такими движками, как TensorRT TensorRT или OpenVINO, и может сочетаться с дистилляцией для максимальной эффективности.

Внедрение модели студента

В практическом рабочем процессе сначала выбирается легкая архитектура, которая будет выполнять роль «ученика». Ultralytics может использоваться для управления наборами данных и track экспериментов по обучению этих эффективных моделей. Ниже приведен пример инициализации компактной модели 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)

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас