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

Transformer-XL

Transformer-XL кэширует скрытые состояния предыдущего текстового сегмента и использует относительные позиции, позволяя языковой модели сохранять контекст между сегментами.

Transformer-XL — это трансформерная языковая модель, которая сохраняет контекст между текстовыми сегментами фиксированной длины: она кэширует скрытые состояния предыдущего сегмента, и следующий сегмент может обращаться к ним. Зихан Дай, Чжилин Ян и их коллеги из Университета Карнеги — Меллона и Google Brain представили эту модель на конференции ACL 2019 в статье «Transformer-XL: языковые модели с вниманием за пределами контекста фиксированной длины». Обычный трансформер, обученный на сегментах фиксированной длины, каждый из которых является отдельным контекстным окном, не может увидеть текст до начала текущего сегмента. Авторы назвали эту проблему фрагментацией контекста. Transformer-XL усваивал зависимости, которые были на 80% длиннее, чем у рекуррентных нейронных сетей (RNN), и на 450% длиннее, чем у обычных трансформеров.

Рекуррентность на уровне сегментов#

При обработке сегмента каждый слой объединяет кэшированные скрытые состояния предыдущего сегмента с состояниями текущего. Запросы формируются только из текущего сегмента, тогда как ключи и значения охватывают оба сегмента; распространение градиентов останавливается на кэше, поэтому вычислительная стоимость обработки каждого сегмента при обучении остаётся постоянной. Один слой внимания в PyTorch показывает этот подход:

import torch
from torch import nn

torch.manual_seed(0)
seg_len, dim = 4, 16
attn = nn.MultiheadAttention(dim, num_heads=2, batch_first=True)
hidden = torch.randn(1, 3 * seg_len, dim)  # hidden states for three consecutive segments

memory = torch.empty(1, 0, dim)  # nothing is cached before the first segment
for i, segment in enumerate(hidden.split(seg_len, dim=1), start=1):
    # Queries come from the current segment; keys and values also cover the cached one
    context = torch.cat([memory, segment], dim=1)
    out, weights = attn(segment, context, context)
    print(f"Segment {i}: {weights.shape[1]} queries attend over {weights.shape[2]} positions")
    # Cache this segment for the next one; detach() stops gradients as in Transformer-XL
    memory = segment.detach()

Четыре запроса первого сегмента учитывают только четыре токена этого сегмента, а запросы каждого следующего сегмента — восемь: собственные четыре и четыре кэшированных. Поскольку слой n сегмента читает кэшированные состояния слоя n − 1 предыдущего сегмента, с каждым слоем охват увеличивается ещё на один сегмент — примерно до N × L токенов при длине сегмента N и L слоях:

Кэш также ускоряет оценку. Обычный трансформер, предсказывающий токены один за другим, вынужден пересчитывать полное окно для каждого нового токена, тогда как Transformer-XL повторно использует кэшированные состояния, благодаря чему во время оценки он работал до 1 800 с лишним раз быстрее. Функция отслеживания в Ultralytics YOLO26 сталкивается с той же проблемой фрагментации, когда скрипт передаёт видео в model.track() по одному кадру за раз: persist=True сохраняет состояние трекера между вызовами, поэтому каждый объект сохраняет один и тот же ID от кадра к кадру.

Относительное позиционное кодирование#

Повторное использование кэшированных состояний нарушает работу абсолютных позиций: первый токен кэшированного сегмента и первый токен текущего сегмента получали бы одинаковое позиционное эмбеддинг-представление. Вместо этого Transformer-XL вычисляет оценку внимания по содержимому запроса и ключа, а также синусоидальному кодированию расстояния между ними; для содержимого и позиции используются два обучаемых вектора смещения, общих для всех позиций. Поскольку оценки зависят только от расстояний, при оценивании модель может использовать кэш большей длины, чем во время обучения. Поворотные позиционные эмбеддинги (RoPE), используемые в большинстве современных больших языковых моделей (LLM), тоже делают оценки внимания зависимыми от относительной позиции.

Результаты и влияние#

Transformer-XL установил новые рекорды на пяти тестах: 0,99 бита на символ на enwik8, 1,08 на text8, а также перплексия 18,3 на WikiText-103, 21,8 на One Billion Word и 54,5 на Penn Treebank — без дообучения. Обученная только на WikiText-103 модель генерировала достаточно связные новые статьи длиной в тысячи токенов. XLNet, созданная несколькими из тех же авторов, построила предварительное обучение для понимания естественного языка на архитектуре Transformer-XL, а Compressive Transformer от DeepMind расширил кэш, сжимая старые воспоминания вместо их удаления.

  • Долгая краткосрочная память (LSTM): обновляет одно скрытое состояние по одному токену за раз, поэтому информация из далёкого прошлого должна пройти через все промежуточные шаги.
  • Longformer: обрабатывает целый документ из 4 096 токенов за один раз, используя оконное и глобальное внимание, без рекуррентности.
  • KV-кэш: хранит ключи и значения предыдущих токенов во время генерации, чтобы их не приходилось вычислять повторно. Память Transformer-XL также используется при обучении, а распространение градиентов останавливается на границе сегмента.
  • Модели пространства состояний (SSM): сжимают всю историю в состояние фиксированного размера.

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

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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