Self-Attention
Изучи основы self-attention в глубоком обучении. Узнай, как векторы Query, Key и Value питают Transformers и Ultralytics YOLO26 для превосходного ИИ.
Self-attention — это базовый механизм в глубоком обучении, который позволяет моделям определять относительную важность различных элементов внутри входной последовательности. В отличие от традиционных архитектур, которые обрабатывают данные последовательно или фокусируются только на локальных областях, self-attention позволяет нейронной сети рассматривать весь контекст одновременно. Эта возможность помогает системам выявлять сложные взаимосвязи между удаленными частями данных, такими как слова в предложении или отдельные области на изображении. Он служит основным строительным блоком архитектуры Transformer, которая стала драйвером колоссальных достижений в области генеративного ИИ и современных систем восприятия.
Link to this sectionКак работает self-attention#
Этот механизм имитирует когнитивную фокусировку, присваивая вес, часто называемый «оценкой внимания», каждому входному признаку. Для вычисления этих оценок модель преобразует входные данные, обычно представленные в виде эмбеддингов, в три отдельных вектора: Query (запрос), Key (ключ) и Value (значение).
- Query (Q): представляет текущий элемент, который ищет релевантный контекст среди остальной части последовательности.
- Key (K): выступает в роли метки или идентификатора для каждого элемента в последовательности, с которым сопоставляется запрос.
- Value (V): содержит фактическую информационную составляющую элемента, которая будет агрегирована.
Модель сравнивает Query одного элемента с Keys всех остальных элементов, чтобы определить степень совместимости. Эти показатели совместимости нормализуются с помощью функции softmax для создания вероятностных весов. Затем эти веса применяются к Values, формируя богатое контекстом представление. Этот процесс позволяет большим языковым моделям (LLM) и системам компьютерного зрения отдавать приоритет важной информации, отфильтровывая шум.
Link to this sectionРеальные приложения#
Универсальность self-attention привела к его широкому применению в различных областях искусственного интеллекта (ИИ).
- Обработка естественного языка (NLP): В таких задачах, как машинный перевод, self-attention разрешает двусмысленность, связывая местоимения с их референтами. Например, в предложении «Животное не перешло улицу, потому что оно слишком устало» модель использует self-attention, чтобы сильно связать «оно» с «животным», а не с «улицей». Эта контекстная осведомленность лежит в основе таких инструментов, как Google Translate.
- Глобальный контекст изображения: В компьютерном зрении (CV) архитектуры, такие как Vision Transformer (ViT), разбивают изображения на патчи и применяют self-attention для глобального понимания сцены. Это жизненно важно для обнаружения объектов в сложных средах, где идентификация объекта зависит от понимания окружающего его контекста.
Link to this sectionРазграничение связанных терминов#
Хотя эти понятия часто обсуждаются вместе, они имеют четкие технические определения:
- Механизм внимания: широкая категория методов, позволяющих моделям фокусироваться на определенных частях данных. Он включает в себя Cross-Attention, где модель использует одну последовательность (например, выход декодера) для выполнения запроса к другой последовательности (например, вход энкодера).
- Self-Attention: специфический тип внимания, при котором Query, Key и Value происходят из одной и той же входной последовательности. Он предназначен для изучения внутренних зависимостей внутри одного набора данных.
- Flash Attention: алгоритм оптимизации, разработанный исследователями из Стэнфордского университета, который делает вычисление self-attention значительно быстрее и эффективнее с точки зрения использования памяти на GPU без изменения математического результата.
Link to this sectionПример кода#
Следующий фрагмент кода на Python демонстрирует, как использовать RTDETR, детектор объектов на базе Transformer, включенный в пакет ultralytics. В отличие от стандартных сверточных сетей, эта модель в значительной степени полагается на self-attention для обработки визуальных признаков.
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.")Link to this sectionЭволюция и влияние на будущее#
Self-attention эффективно решил проблему затухающего градиента, которая препятствовала развитию более ранних рекуррентных нейронных сетей (RNN), позволив обучать массивные фундаментальные модели. Несмотря на высокую эффективность, вычислительные затраты стандартного self-attention квадратично растут с увеличением длины последовательности. Для решения этой проблемы текущие исследования сосредоточены на эффективных механизмах линейного внимания.
Ultralytics интегрирует эти достижения в передовые модели, такие как YOLO26, которые сочетают скорость CNN с контекстной мощью внимания для обеспечения превосходного вывода в реальном времени. Эти оптимизированные модели можно легко обучать и развертывать через платформу Ultralytics, оптимизируя рабочий процесс для разработчиков, создающих интеллектуальные приложения нового поколения.






