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

Sequence-to-Sequence Models

Модели преобразования последовательности в последовательность (seq2seq) преобразуют входную последовательность в выходную, длина которой может отличаться, например при переводе, суммаризации или распознавании речи.

Модели преобразования одной последовательности в другую (seq2seq) преобразуют входную последовательность в выходную, длина которой может отличаться: например, английское предложение — во французский перевод, длинную статью — в краткое содержание или аудиозапись — в расшифровку. В большинстве случаев используется архитектура энкодер-декодер: энкодер читает весь вход и преобразует его во внутренние представления, а декодер генерирует выходную последовательность по одному токену, опираясь на эти представления и уже сгенерированные токены. Современный вид подход обрёл в 2014 году, когда Сутскевер, Виньялс и Ле из Google опубликовали статью Sequence to Sequence Learning with Neural Networks, а Чо и соавторы описали энкодер-декодер на RNN для машинного перевода. С 2017 года большинство моделей seq2seq строятся на основе трансформеров.

Как работают модели Seq2Seq#

В моделях 2014 года энкодер на основе сети долгой краткосрочной памяти (LSTM) считывал исходное предложение слово за словом и сжимал его в один вектор фиксированной длины, а декодер LSTM разворачивал этот вектор в перевод. Сутскевер и соавторы использовали LSTM из четырёх слоёв, обнаружили, что разворот порядка слов в исходном тексте упрощает обучение, и достигли оценки BLEU 34,8 на тестовом наборе WMT'14 для перевода с английского на французский. Сжатие каждого предложения в один вектор ухудшало обработку длинных входных данных, поэтому Бахданау, Чо и Бенжио добавили механизм внимания в статье Neural Machine Translation by Jointly Learning to Align and Translate: на каждом шаге декодер мог обращаться к каждому состоянию энкодера. Трансформер сохранил структуру энкодер-декодер, заменил рекуррентные связи на самовнимание и связал две части перекрёстным вниманием. На этапе инференса декодер работает в цикле:

Цикл завершается, когда декодер выдаёт конечный токен, поэтому длина выходной последовательности определяется отдельно для каждого примера. При декодировании обычно сохраняют несколько возможных выходов с помощью лучевого поиска — стандартного метода для перевода и распознавания речи.

Обучение с принудительной подстановкой правильных ответов#

Во время обучения декодеру не нужно работать в цикле. При принудительной подстановке правильных ответов он получает правильную целевую последовательность, сдвинутую вправо на одну позицию, и предсказывает все следующие токены за один параллельный проход; причинная маска гарантирует, что в каждой позиции видны только предыдущие целевые токены. Функция потерь — это перекрёстная энтропия между этими предсказаниями и истинными следующими токенами. nn.Transformer из PyTorch реализует исходную архитектуру энкодер-декодер:

import torch
from torch import nn

torch.manual_seed(0)
src_vocab, tgt_vocab, d_model = 1000, 800, 64
embed_src, embed_tgt = nn.Embedding(src_vocab, d_model), nn.Embedding(tgt_vocab, d_model)
model = nn.Transformer(d_model, nhead=4, num_encoder_layers=2, num_decoder_layers=2, batch_first=True)
to_logits = nn.Linear(d_model, tgt_vocab)

source = torch.randint(0, src_vocab, (1, 9))  # a 9-token source sentence
target = torch.randint(0, tgt_vocab, (1, 7))  # start token + a 6-token translation

# Teacher forcing: the decoder reads the correct previous tokens and predicts every next token in parallel
decoder_input, labels = target[:, :-1], target[:, 1:]
causal_mask = nn.Transformer.generate_square_subsequent_mask(decoder_input.size(1))
logits = to_logits(model(embed_src(source), embed_tgt(decoder_input), tgt_mask=causal_mask))
loss = nn.functional.cross_entropy(logits.flatten(0, 1), labels.flatten())

print(f"Source tokens: {source.shape[1]} -> decoder logits: {tuple(logits.shape)}")
print(f"Training loss: {loss.item():.2f}")

Выводится Source tokens: 9 -> decoder logits: (1, 6, 800): для каждой из 6 целевых позиций модель делает предсказание по словарю целевых токенов из 800 элементов, вычисляя его за один проход на основе исходной последовательности из 9 токенов. Значение функции потерь необученной модели — 6.73, близкое к ln(800) ≈ 6.68, то есть потере при равномерном случайном предположении. Поскольку во время обучения модели всегда передаются правильные предыдущие токены, а на этапе инференса — её собственные предположения, ошибки при инференсе могут накапливаться; этот эффект называется смещением из-за расхождения между обучением и использованием.

  • Модели только с энкодером, например BERT: Они считывают вход в обоих направлениях и выдают отдельное представление для каждого токена, что подходит для классификации и разметки.
  • Большие языковые модели (LLM) только с декодером: Такие модели, как GPT, объединяют вход и выход в одной последовательности и решают задачи seq2seq, продолжая запрос; так сегодня выполняется большая часть генерации текста.
  • Рекуррентные нейронные сети (RNN) и GRU: Рекуррентные слои исходных энкодеров и декодеров 2014 года. Чо и соавторы представили управляемый рекуррентный блок в той же статье, где описали энкодер-декодер.

Применение#

В 2016 году Google перевела Google Translate на систему GNMT — кодировщик и декодировщик на LSTM из восьми слоёв с механизмом внимания. Перевод по-прежнему остаётся основной задачей seq2seq. В T5 от Google все задачи обработки естественного языка (NLP) представлены как преобразование текста в текст, в том числе суммаризация текста и ответы на вопросы. Whisper от OpenAI — трансформер с кодировщиком и декодировщиком для распознавания речи, обученный на 680 000 часах аудио. Модели компьютерного зрения используют ту же схему для создания описаний изображений и оптического распознавания символов (OCR). Florence-2 от Microsoft решает задачи создания описаний, привязки к объектам и обнаружения, выдавая текст одним seq2seq-моделью. Её версия Large работает на Ultralytics Platform для автоматической разметки. Pix2Seq от Google рассматривает обнаружение объектов как seq2seq и описывает каждый объект пятью дискретными токенами: четырьмя квантованными координатами и классом. RT-DETR — детектор реального времени от Baidu, работающий в пакете Ultralytics. Он сохраняет кодировщик и декодировщик с перекрёстным вниманием, но его декодировщик параллельно уточняет 300 запросов объектов, поэтому все рамки выдаются за один проход.

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

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

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

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

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

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