Глоссарий

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

Узнай, как Knowledge Distillation сжимает модели ИИ для ускорения выводов, повышения точности и эффективности развертывания пограничных устройств.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Дистилляция знаний - это техника машинного обучения (ML), при которой меньшая, компактная модель ("ученик") обучается повторять поведение большей, более сложной модели ("учителя"). Основная цель - передать "знания", полученные большой моделью-учителем, меньшей модели-ученику, что позволяет ей достичь сопоставимой производительности, но при этом быть значительно более эффективной с точки зрения размера и вычислительных затрат. Это особенно полезно для развертывания моделей в средах с ограниченными ресурсами, таких как мобильные устройства или пограничные системы ИИ.

Как работает дистилляция знаний

Основная идея Knowledge Distillation заключается в том, чтобы обучать студенческую модель не только на метках (жестких целях), которые использовались для обучения исходной модели учителя, но и на выводах, сгенерированных самой моделью учителя. Часто эти выходы учителя представляют собой "мягкие цели" - вероятности или распределения классов, созданные на последнем слое учителя (например, после функции Softmax ). Эти "мягкие цели" содержат более богатую информацию о взаимосвязях между различными классами, чем только жесткие метки. Например, модель учителя может предсказать изображение грузовика как 70 % грузовиков, 25 % легковых автомобилей и 5 % автобусов, предоставляя более тонкую информацию, на которой может учиться ученик. Цель обучения студенческой модели обычно сочетает в себе стандартную функцию потерь (сравнение предсказаний студента с истиной) и дистилляционную потерю (сравнение предсказаний/мягких целей студента с мягкими целями учителя). Этот процесс, первоначально популяризированный в работе Хинтона, Виньялса и Дина, эффективно направляет ученика на подражание процессу рассуждений учителя.

Преимущества и применение

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

Реальные приложения включают в себя:

  1. Edge Computing: Развертывание сложных моделей компьютерного зрения на устройствах вроде смартфонов или встраиваемых систем для решения таких задач, как классификация или обнаружение изображений, когда вычислительная мощность и время работы от батареи ограничены. Большая и точная модель, такая как YOLOv8x может выступать в роли учителя для меньшего ученика, например YOLOv8n.
  2. Ускорение выполнения сложных задач: Как было показано на YOLO Vision 2023, большие модели Foundation Models можно использовать для сложных задач вроде детальной аннотации данных, а их знания перегонять в более мелкие и быстрые модели для эффективного развертывания, значительно ускоряя такие процессы, как маркировка данных.
  3. Обработка естественного языка (NLP): Сжатие больших языковых моделей, таких как BERT или GPT, в более компактные версии для более быстрого анализа или перевода текста на пользовательских устройствах.

Смежные понятия

Knowledge Distillation связана с другими техниками оптимизации моделей, но отличается от них своим подходом:

  • Обрезка модели: Уменьшает размер модели, удаляя лишние параметры (веса или связи) из уже обученной сети. KD обучает отдельную сеть меньшего размера.
  • Квантование модели: Уменьшает размер модели и ускоряет вычисления за счет использования числовых форматов меньшей точности (например, INT8 вместо FP32) для весов и активаций. При этом сама архитектура модели не меняется, в отличие от KD. Эти техники(оптимизация модели) часто дополняют друг друга и могут использоваться вместе.
  • Трансферное обучение: Более широкое понятие, когда знания, полученные в ходе выполнения одной задачи, применяются в другой, но связанной с ней. KD можно рассматривать как специфическую форму трансферного обучения, ориентированную на перенос знаний из большой модели в меньшую для той же задачи, в основном для сжатия.
Читать полностью