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

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

Узнайте, как 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)

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

Дистилляция знаний играет ключевую роль в отраслях, где эффективность так же важна, как и точность.

  • Мобильное компьютерное зрение: В сценариях, требующих вывода в реальном времени, таких как автономные беспилотные летательные аппараты или приложения дополненной реальности на смартфонах, развертывание массивных моделей не представляется возможным. Инженеры перерабатывают большие модели обнаружения объектов в эффективные версии такие как YOLO11n. Это обеспечивает плавную работу приложения на мобильных процессорах, таких как Qualcomm Snapdragon, не разряжая аккумулятор, и при этом корректно идентифицируя объекты.
  • Обработка естественного языка (NLP): Большие языковые модели (LLM) часто слишком громоздки для непосредственного развертывания. Дистилляция используется для создания более компактных и быстрых версий, таких как DistilBERT, которые сохраняют большую часть возможностей языкового моделирования своих более крупных более крупных аналогов. Это позволяет голосовым помощникам и чат-ботам работать с меньшей задержкой, обеспечивая лучший пользовательский опыт. опыт пользователей.

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

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

  • Обрезка моделей: Эта техника Физическое удаление лишних нейронов или связей (весов) из существующей обученной сети для уменьшения ее размера. ее размер. В отличие от дистилляции, при которой новая архитектура обучаемой сети создается с нуля, обрезка изменяет структуру исходной модели.
  • Квантование модели: Квантование снижает точность числовых весов модели, например, преобразуя 32-битные числа с плавающей точкой в 8-битные целые числа. Это уменьшает размер модели и ускоряет вычисления на таком оборудовании, как TPU, но не обязательно изменяет архитектуру сети.
  • Трансферное обучение: Этот Этот подход предполагает использование предварительно обученной модели и настраивает ее на новом наборе данных для решения другой задачи. Хотя оба подхода предполагают перенос знаний, трансферное обучение связано с адаптацией домена (например, ImageNet к медицинским рентгеновские снимки), в то время как дистилляция направлена на сжатие знаний об одной и той же задаче из большой модели в меньшую.

Комбинируя эти методы - например, превращая учителя в ученика, а затем применяя квантование, - разработчики могут добиться максимальной производительности встраиваемых систем.

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

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

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