Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Sequence-to-Sequence Models

Os modelos sequência-para-sequência (seq2seq) convertem uma sequência de entrada numa sequência de saída de comprimento diferente, como na tradução, na sumarização ou na fala.

Os modelos sequência para sequência (seq2seq) transformam uma sequência noutra, que pode ter um comprimento diferente, como uma frase em inglês na respetiva tradução francesa, um artigo longo num resumo ou um excerto de áudio numa transcrição. A maioria usa uma arquitetura codificador-descodificador: o codificador lê toda a entrada e converte-a em representações internas, e o descodificador gera a saída um token de cada vez, condicionado por essas representações e pelos tokens que já produziu. A abordagem assumiu a sua forma moderna em 2014, quando Sutskever, Vinyals e Le, da Google, publicaram Sequence to Sequence Learning with Neural Networks e Cho et al. descreveram um codificador-descodificador RNN para tradução automática. Desde 2017, a maioria dos modelos seq2seq é construída com transformers.

Como funcionam os modelos Seq2Seq#

Nos modelos de 2014, uma rede de memória de longo e curto prazo (LSTM) codificadora lia a frase de origem palavra a palavra e comprimia-a num único vetor de comprimento fixo, e uma LSTM descodificadora desenrolava esse vetor para produzir a tradução. Sutskever et al. usaram LSTMs de quatro camadas, descobriram que inverter a ordem das palavras de origem facilitava o treino e alcançaram uma pontuação BLEU de 34.8 no conjunto de teste inglês-francês WMT'14. Comprimir cada frase num único vetor prejudicava as entradas longas, por isso Bahdanau, Cho e Bengio acrescentaram um mecanismo de atenção em Neural Machine Translation by Jointly Learning to Align and Translate, permitindo ao descodificador consultar cada estado do codificador em cada passo. O transformer manteve esta estrutura de codificador-descodificador, substituiu a recorrência pela autoatenção e ligou as duas metades com atenção cruzada. Na inferência, o descodificador é executado num ciclo:

Como o ciclo termina quando o descodificador emite um token de fim, o comprimento da saída é aprendido para cada exemplo. A descodificação costuma manter várias saídas candidatas através de pesquisa em feixe, a opção padrão para tradução e reconhecimento de fala.

Treino com teacher forcing#

Durante o treino, o descodificador não precisa de executar um ciclo. Com teacher forcing, recebe a sequência-alvo correta deslocada uma posição para a direita e prevê todos os tokens seguintes numa única passagem paralela, com uma máscara causal que permite a cada posição ver apenas os alvos anteriores. A perda é a entropia cruzada entre essas previsões e os tokens seguintes verdadeiros. O PyTorch implementa o codificador-descodificador original através de nn.Transformer:

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}")

O código imprime Source tokens: 9 -> decoder logits: (1, 6, 800): uma previsão sobre o vocabulário-alvo de 800 tokens para cada uma das 6 posições-alvo, calculada numa única passagem a partir de uma origem de 9 tokens. A perda de 6.73 do modelo não treinado está perto de ln(800) ≈ 6.68, a perda de um palpite uniforme. Como o treino fornece sempre os tokens anteriores corretos, mas a inferência usa os palpites do próprio modelo, os erros podem acumular-se durante a inferência. Este efeito chama-se enviesamento de exposição.

  • Modelos apenas de codificador, como o BERT: Estes modelos leem a entrada nas duas direções e produzem uma representação por token, sendo adequados para classificação e etiquetagem.
  • Grandes modelos de linguagem (LLMs) apenas de descodificador: Modelos como o GPT colocam a entrada e a saída numa única sequência e realizam tarefas seq2seq continuando o prompt, que é a forma como se faz a maior parte da geração de texto atualmente.
  • Redes neuronais recorrentes (RNNs) e GRUs: As camadas recorrentes dos codificadores e descodificadores originais de 2014. Cho et al. introduziram a unidade recorrente com portas no mesmo artigo que o seu codificador-descodificador.

Aplicações#

O Google migrou o Google Translate para o sistema GNMT em 2016: um codificador e decodificador LSTM de 8 camadas com atenção; a tradução continua sendo a tarefa seq2seq por excelência. O T5 do Google apresentou todas as tarefas de processamento de linguagem natural (NLP) como conversão de texto em texto, incluindo o resumo de textos e as perguntas e respostas. O Whisper da OpenAI é um transformador codificador-decodificador para reconhecimento de fala, treinado com 680.000 horas de áudio. Modelos de visão usam o mesmo padrão para legendas de imagens e reconhecimento óptico de caracteres (OCR). O Florence-2 da Microsoft realiza legendagem, fundamentação e detecção como saídas de texto de um único modelo seq2seq, e sua versão Large é executada na Ultralytics Platform para anotação automática. O Pix2Seq do Google trata a detecção de objetos como seq2seq, escrevendo cada objeto como cinco tokens discretos: quatro coordenadas quantizadas e uma classe. O RT-DETR, detector em tempo real da Baidu executado no pacote Ultralytics, mantém o codificador e o decodificador com atenção cruzada, mas faz o decodificador refinar 300 consultas de objetos em paralelo, produzindo cada caixa em uma passagem.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina