Self-Attention
Изучи основы self-attention в глубоком обучении. Узнай, как векторы Query, Key и Value питают Transformers и Ultralytics YOLO26 для превосходного ИИ.
Self-attention — это базовый механизм в глубоком обучении, который позволяет моделям взвешивать важность различных элементов входной последовательности относительно друг друга. В отличие от традиционных архитектур, которые обрабатывают данные последовательно или фокусируются только на локальных областях, self-attention позволяет нейронной сети одновременно анализировать весь контекст. Эта способность помогает системам выявлять сложные связи между удаленными частями данных, такими как слова в предложении или отдельные участки изображения. Она служит основой для архитектуры Transformer, которая обеспечила колоссальный прогресс в generative AI и современных системах восприятия.
Как работает self-attention#
Этот механизм имитирует когнитивную фокусировку, присваивая каждому входному признаку вес, который часто называют «оценкой внимания» (attention score). Для вычисления этих оценок модель преобразует входные данные — обычно представленные в виде embeddings — в три различных вектора: Query, Key и Value.
- Query (Q): представляет текущий элемент, который ищет релевантный контекст среди остальной части последовательности.
- Key (K): выступает в роли метки или идентификатора для каждого элемента в последовательности, с которым сопоставляется запрос.
- Value (V): содержит фактическую информационную составляющую элемента, которая будет агрегирована.
Модель сравнивает Query одного элемента с Keys всех остальных элементов для определения совместимости. Эти оценки совместимости нормализуются с помощью функции softmax для получения весов, похожих на вероятности. Затем эти веса применяются к Values, формируя богатой контекстом представление. Этот процесс позволяет Large Language Models (LLMs) и системам компьютерного зрения расставлять приоритеты для значимой информации, фильтруя при этом шум.
Реальные приложения#
Универсальность self-attention привела к его широкому распространению в различных областях Artificial Intelligence (AI).
- Natural Language Processing (NLP): В таких задачах, как machine translation, self-attention разрешает амбивалентность, связывая местоимения с их референтами. Например, в предложении «Животное не перешло улицу, потому что оно было слишком усталым» модель использует self-attention, чтобы прочно ассоциировать «оно» с «животным», а не с «улицей». Эта контекстная осведомленность лежит в основе таких инструментов, как Google Translate.
- Глобальный контекст изображения: В Computer Vision (CV) такие архитектуры, как Vision Transformer (ViT), разбивают изображения на патчи и применяют self-attention для глобального понимания сцены. Это жизненно важно для object detection в сложных средах, где распознавание объекта зависит от понимания его окружения.
Разграничение связанных терминов#
Хотя эти понятия часто обсуждаются вместе, они имеют четкие технические определения:
- Attention Mechanism: Широкая категория методов, позволяющих моделям концентрироваться на определенных частях данных. Она включает в себя перекрестное внимание (Cross-Attention), при котором модель использует одну последовательность (например, вывод декодера) для запроса к другой последовательности (например, вводу энкодера).
- Self-Attention: специфический тип внимания, при котором Query, Key и Value происходят из одной и той же входной последовательности. Он предназначен для изучения внутренних зависимостей внутри одного набора данных.
- Flash Attention: Алгоритм оптимизации, разработанный исследователями из Stanford University, который делает вычисление self-attention значительно более быстрым и эффективным с точки зрения памяти на GPUs без изменения математического результата.
Пример кода#
Следующий фрагмент 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.")Эволюция и влияние на будущее#
Self-attention эффективно решил проблему vanishing gradient, которая мешала более ранним Recurrent Neural Networks (RNNs), что позволило обучать массивные foundation models. Несмотря на высокую эффективность, вычислительные затраты стандартного self-attention растут квадратично с увеличением длины последовательности. Для решения этой проблемы текущие исследования сосредоточены на эффективных механизмах линейного внимания.
Ultralytics интегрирует эти достижения в передовые модели, такие как YOLO26, которые сочетают в себе скорость сверточных сетей (CNN) и контекстную силу внимания для превосходного real-time inference. Эти оптимизированные модели можно легко обучать и развертывать с помощью Ultralytics Platform, упрощая рабочий процесс для разработчиков, создающих интеллектуальные приложения нового поколения.






