Self-Attention
Изучи основы механизма self-attention в глубоком обучении. Узнай, как векторы Query, Key и Value обеспечивают работу Transformer и Ultralytics YOLO26 для более эффективного ИИ.
Самовнимание — это фундаментальный механизм глубокого обучения, который позволяет моделям оценивать важность различных элементов входной последовательности относительно друг друга. В отличие от традиционных архитектур, обрабатывающих данные последовательно или фокусирующихся только на локальных окрестностях, самовнимание позволяет нейронной сети одновременно анализировать весь контекст. Эта возможность помогает системам выявлять сложные взаимосвязи между удалёнными частями данных, например между словами в предложении или отдельными областями изображения. Самовнимание служит основным строительным блоком архитектуры Transformer, которая обеспечила значительный прогресс в области генеративного ИИ и современных систем восприятия.
Как работает самовнимание#
Этот механизм имитирует когнитивную концентрацию, назначая каждому входному признаку вес, часто называемый «оценкой внимания». Для вычисления этих оценок модель преобразует входные данные, обычно представленные в виде эмбеддингов, в три отдельных вектора: Запрос, Ключ и Значение.
- Запрос (Q): Представляет текущий элемент, который ищет релевантный контекст в остальной части последовательности.
- Ключ (K): Выступает в качестве метки или идентификатора каждого элемента последовательности, с которым сопоставляется запрос.
- Значение (V): Содержит фактическую информационную составляющую элемента, которая будет агрегирована.
Модель сопоставляет Query одного элемента с Key всех остальных элементов, чтобы определить степень совместимости. Эти оценки совместимости нормализуются с помощью функции softmax, создавая веса, подобные вероятностям. Затем эти веса применяются к Value, формируя контекстно обогащённое представление. Этот процесс позволяет большим языковым моделям (LLMs) и системам компьютерного зрения выделять значимую информацию, отфильтровывая шум.
Практические применения#
Универсальность самовнимания привела к его широкому применению в различных областях искусственного интеллекта (AI).
- Обработка естественного языка (NLP): В таких задачах, как машинный перевод, самовнимание устраняет неоднозначность, связывая местоимения с их референтами. Например, в предложении «Животное не перешло улицу, потому что оно слишком устало» модель использует самовнимание, чтобы установить более сильную связь между «оно» и «животное», а не между «оно» и «улица». Такая контекстная осведомлённость лежит в основе таких инструментов, как Google Translate.
- Глобальный контекст изображения: В области компьютерного зрения (CV) такие архитектуры, как трансформер для компьютерного зрения (ViT), разделяют изображения на фрагменты и применяют самовнимание для глобального понимания сцены. Это крайне важно для обнаружения объектов в сложных условиях, где идентификация объекта зависит от понимания его окружения.
Различия между связанными терминами#
Хотя эти термины часто рассматриваются вместе с похожими концепциями, у них разные технические определения:
- Механизм внимания: Общая категория методов, позволяющих моделям фокусироваться на определённых частях данных. Она включает перекрёстное внимание, при котором модель использует одну последовательность, например выход декодера, для запроса другой последовательности, например входа энкодера.
- Самовнимание: Конкретный тип внимания, при котором Query, Key и Value происходят из одной и той же входной последовательности. Он предназначен для изучения внутренних зависимостей в рамках одного набора данных.
- Flash Attention: Алгоритм оптимизации, разработанный исследователями из Стэнфордского университета, который значительно ускоряет вычисление самовнимания и повышает эффективность использования памяти на GPU, не изменяя математический результат.
Пример кода#
Следующий фрагмент кода на Python демонстрирует использование RTDETR — детектора объектов на основе Transformer, включённого в пакет ultralytics. В отличие от стандартных свёрточных сетей, эта модель в значительной степени полагается на самовнимание при обработке визуальных признаков.
from ultralytics import RTDETR
# Load the RT-DETR model which utilizes self-attention for detection
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects with global context
# Self-attention helps the model understand relationships between distant objects
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of objects detected
print(f"Detected {len(results[0].boxes)} objects using Transformer attention.")Эволюция и влияние на будущее#
Самовнимание эффективно решило проблему затухающего градиента, которая препятствовала работе более ранних рекуррентных нейронных сетей (RNNs), и сделало возможным обучение масштабных базовых моделей. Несмотря на высокую эффективность, вычислительная стоимость стандартного самовнимания растёт квадратично с увеличением длины последовательности. Для решения этой проблемы современные исследования сосредоточены на эффективных механизмах линейного внимания.
Ultralytics интегрирует эти достижения в передовые модели, такие как YOLO26, которая объединяет скорость CNNs с контекстуальными возможностями внимания для превосходного вывода в реальном времени. Эти оптимизированные модели можно легко обучать и развёртывать через Ultralytics Platform, упрощая рабочий процесс разработчиков, создающих интеллектуальные приложения следующего поколения.









