Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Longformer

Longformer сочетает внимание в скользящем окне с несколькими глобальными токенами, поэтому вычислительная сложность растёт линейно с длиной последовательности, а модель обрабатывает документы длиной до 4 096 токенов.

Longformer — это трансформер для работы с длинными документами. Он заменяет полное самовнимание скользящим окном внимания вокруг каждого токена и глобальным вниманием к нескольким токенам, выбранным с учётом задачи. Благодаря этому вычислительные затраты растут линейно, а не квадратично относительно длины входных данных. Из Белтагии, Мэтью Питерс и Арман Кохан из Allen Institute for AI представили Longformer в статье 2020 года «Longformer: трансформер для длинных документов». Кодировщики, такие как BERT и RoBERTa, обрабатывают не более 512 токенов, поэтому более длинные тексты приходилось разбивать на фрагменты, теряя связи между ними. Выпущенные модели Longformer обрабатывали за один проход 4096 токенов — это контекстное окно в восемь раз длиннее.

Как работает внимание в Longformer#

Каждый слой сочетает локальные и глобальные шаблоны в рамках одного механизма внимания:

  • Внимание со скользящим окном: Каждый токен учитывает фиксированное окно соседних токенов: в выпущенных моделях оно охватывает 256 токенов с каждой стороны.
  • Внимание со скользящим окном и разрежением: Пропуски между позициями, к которым направлено внимание, позволяют головке охватить больше позиций при тех же затратах. Авторы использовали разрежение в нескольких головках верхних слоёв своих языковых моделей на уровне символов.
  • Глобальное внимание: Выбранные токены учитывают все позиции, а все позиции учитывают их. Для этого используются отдельные проекции запросов, ключей и значений. Выбор зависит от задачи: токен [CLS] используется для классификации, а токены вопроса — для ответов на вопросы.

Наложение слоёв расширяет охват окна так же, как наложение свёрточных слоёв увеличивает рецептивное поле свёрточной нейронной сети (CNN): l слоёв с окном ширины w охватывают l × w токенов. Каждый слой вычисляет примерно n × w оценок внимания вместо n × n. Разница наглядно видна при подсчёте пар в маске Longformer:

import torch

window = 512  # Longformer-base: 256 tokens on each side of every token

for n in (1024, 2048, 4096):
    pos = torch.arange(n)
    # Sliding window: each token attends to neighbors within window / 2 positions
    mask = (pos[:, None] - pos[None, :]).abs() <= window // 2
    # Global attention on token 0 ([CLS]): it sees every token and every token sees it
    mask[0, :] = True
    mask[:, 0] = True
    print(f"{n} tokens: full attention {n * n / 1e6:.1f}M scores, Longformer {mask.sum().item() / 1e6:.1f}M")

Он выводит 0,5 млн, 1,0 млн и 2,0 млн оценок Longformer против 1,0 млн, 4,2 млн и 16,8 млн для полного внимания: при каждом удвоении входных данных вычислительные затраты на внимание Longformer удваиваются, а затраты на полное внимание увеличиваются в четыре раза. В реальных реализациях вычисляется только полоса оценок, что и обеспечивает экономию памяти.

Обучение и результаты#

Longformer начинается с контрольной точки RoBERTa. Авторы восемь раз скопировали 512 обученных позиционных эмбеддингов, чтобы охватить 4096 позиций, а затем продолжили предварительное обучение языковой модели с маскированием на длинных документах. После дообучения модель стабильно превосходила RoBERTa на задачах с длинными документами и на тот момент достигла лучших результатов на тестах WikiHop и TriviaQA для ответов на вопросы. Языковая модель на уровне символов языковая модель также установила новые результаты на текстах text8 и enwik8.

Longformer-Encoder-Decoder (LED) добавляет декодер для суммаризации текста и других задач генерации текста. Её возможности показали на примере суммаризации полных научных статей с arXiv. В Transformers от Hugging Face реализованы обе модели, а глобальные токены передаются как global_attention_mask. Позже появились специализированные версии, например Clinical-Longformer, предварительно обученная на больших корпусах клинических текстов и протестированная на 10 задачах, включая распознавание именованных сущностей, ответы на вопросы и классификацию документов.

  • Transformer-XL: Читает длинный текст по сегментам и позволяет каждому сегменту учитывать кэшированные скрытые состояния предыдущего сегмента. За счёт рекуррентной обработки модель увеличивает контекст при генерации слева направо.
  • BigBird: Модель Google того же года, которая добавляет случайные связи внимания к оконному и глобальному вниманию и тоже обрабатывает 4096 токенов.
  • Разреженное внимание: Общее семейство фиксированных шаблонов внимания, к которому относится Longformer.
  • Flash attention: Вычисляет точное полное внимание в тайлах быстрой памяти на кристалле, поэтому объём памяти растёт линейно с длиной последовательности, хотя количество оценок остаётся квадратичным.

Локальное и глобальное внимание в компьютерном зрении#

Изображения высокого разрешения создают ту же проблему, поскольку визуальный трансформер (ViT) преобразует изображение в тысячи токенов фрагментов. Swin Transformer решает эту задачу с помощью сдвигаемых локальных окон, а Segment Anything Model (SAM) от Meta, запускаемая в пакете Ultralytics, чередует блочные оконное и глобальное внимание для сегментации изображений. Кодировщик изображений ViT-B использует внимание внутри неперекрывающихся окон 14 × 14 на сетке фрагментов 64 × 64 в 8 из 12 блоков, а в блоках 2, 5, 8 и 11 применяет глобальное внимание ко всем 4096 фрагментам.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения