Glossário

Modelos de sequência para sequência

Descobre como os modelos sequência-a-sequência transformam as sequências de entrada em sequências de saída, potenciando tarefas de IA como a tradução, os chatbots e o reconhecimento de voz.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

Os modelos Sequence-to-Sequence (Seq2Seq) são uma classe de modelos de aprendizagem profunda concebidos para transformar uma sequência de entrada numa sequência de saída, em que os comprimentos das sequências de entrada e de saída podem ser diferentes. Esta capacidade torna-os excecionalmente poderosos para uma vasta gama de tarefas, em particular no Processamento de Linguagem Natural (PLN), mas também aplicáveis noutros domínios, como o reconhecimento de voz e até certos problemas de visão computacional que envolvem dados sequenciais. A ideia central, introduzida em artigos como"Sequence to Sequence Learning with Neural Networks" de Sutskever et al. e"Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation" de Cho et al., revolucionou a forma como as máquinas lidam com transformações de sequências de comprimento variável.

Arquitetura codificador-descodificador

A estrutura fundamental da maioria dos modelos Seq2Seq é a arquitetura codificador-descodificador:

  1. Codificador: Esta parte processa toda a sequência de entrada (por exemplo, uma frase em francês) passo a passo, normalmente usando uma Rede Neural Recorrente (RNN) como LSTM (Long Short-Term Memory) ou GRU (Gated Recurrent Unit). O seu objetivo é comprimir a informação da sequência de entrada numa representação interna de tamanho fixo, frequentemente designada por "vetor de contexto" ou "vetor de pensamento". Este vetor visa captar a essência ou o significado da sequência de entrada.
  2. Descodificador: Esta parte pega no vetor de contexto gerado pelo codificador e produz a sequência de saída passo a passo (por exemplo, a frase traduzida em English). É também tipicamente uma RNN que gera um elemento (como uma palavra ou um carácter) em cada passo de tempo, condicionado pelo vetor de contexto e pelos elementos gerados nos passos anteriores.

Uma melhoria significativa desta estrutura básica foi a introdução do mecanismo de atenção, descrito no artigo de Bahdanau et al."Neural Machine Translation by Jointly Learning to Align and Translate". A atenção permite que o descodificador se concentre seletivamente em diferentes partes da sequência de entrada ao gerar cada elemento da sequência de saída, em vez de se basear apenas no vetor de contexto único de tamanho fixo. Isto melhorou drasticamente o desempenho, especialmente para sequências longas. Este conceito abriu caminho para arquitecturas como o Transformer, que se baseia inteiramente em mecanismos de atenção, dispensando completamente a recorrência e tornando-se a base para modelos como o BERT e o GPT.

Aplicações no mundo real

Os modelos Seq2Seq são excelentes em tarefas em que a entrada e a saída são sequenciais, mas podem não ter uma correspondência de um para um em termos de comprimento ou estrutura. As principais aplicações incluem:

  • Tradução automática: Traduzir texto de uma língua para outra (por exemplo, alimentando serviços como o Google Translate ou o DeepL Translator). Este foi um dos primeiros grandes sucessos dos modelos Seq2Seq.
  • Sumarização de texto: Gera um resumo conciso a partir de um documento ou artigo mais longo. A entrada é a sequência de texto longo e a saída é a sequência de resumo mais curta.
  • IA conversacional / Chatbots: Gera respostas num sistema de diálogo. A entrada é a consulta ou declaração do utilizador e a saída é a resposta do chatbot. Plataformas como o Google Dialogflow utilizam estas tecnologias.
  • Reconhecimento de voz: Converte o áudio falado (uma sequência de caraterísticas de áudio) em texto (uma sequência de palavras).
  • Legendagem de imagens: Gera uma descrição textual (sequência de saída) para uma imagem (sequência de entrada, frequentemente representada como caraterísticas extraídas por uma CNN). Embora a entrada não seja estritamente sequencial, o processo de geração de saída enquadra-se no paradigma Seq2Seq.
  • Geração de código: Gera código de programação com base em descrições de linguagem natural.

Conceitos e considerações fundamentais

A construção e o treino de modelos Seq2Seq envolvem vários conceitos importantes:

  • Embeddings: As palavras ou tokens de entrada são normalmente convertidas em representações vectoriais densas antes de serem introduzidas no codificador.
  • Backpropagation Through Time (BPTT): O método padrão para treinar RNNs desdobrando a rede ao longo do comprimento da sequência.
  • Lida com sequências longas: As RNNs básicas têm dificuldade em lidar com dependências longas devido a questões como o problema do gradiente de desaparecimento. Os LSTMs e GRUs foram concebidos para atenuar este problema, e os mecanismos de atenção melhoram ainda mais o desempenho em sequências longas. Os modelos de transformação são excelentes neste caso.
  • Métricas de avaliação: Dependendo da tarefa, são utilizadas métricas como BLEU (para tradução), ROUGE (para sumarização) ou precisão/F1-score (para etiquetagem de sequências). Ultralytics fornece orientação sobre métricas de desempenho.

Seq2Seq vs. Outras Arquitecturas

Embora os modelos Seq2Seq baseados em RNNs tenham sido inovadores, o campo evoluiu:

  • RNNs padrão: Tipicamente mapeia sequências para sequências do mesmo comprimento ou classifica sequências inteiras, não tendo a flexibilidade da estrutura codificador-descodificador para comprimentos de saída variáveis.
  • Transformadores: Domina agora muitas tarefas de PNL anteriormente tratadas por modelos Seq2Seq baseados em RNN. Utilizam auto-atenção e codificações posicionais em vez de recorrência, permitindo uma melhor paralelização e capturando dependências de longo alcance de forma mais eficaz. Modelos como o RT-DETR da Baidu, apoiado pela Ultralytics, incorporam componentes Transformer para deteção de objectos.
  • CNNs: Utilizadas principalmente para dados em grelha, como imagens (por exemplo, em Ultralytics YOLO modelos para deteção e segmentação), embora por vezes sejam adaptadas para tarefas de sequência.

Embora o Seq2Seq se refira frequentemente à estrutura codificador-descodificador baseada em RNN, o princípio geral do mapeamento de sequências de entrada para sequências de saída utilizando uma representação intermédia continua a ser central para muitas arquitecturas modernas, incluindo os Transformadores utilizados na tradução e na sumarização. Ferramentas como PyTorch e TensorFlow fornecem blocos de construção para a implementação de modelos de sequência tradicionais e modernos. A gestão do processo de formação pode ser simplificada utilizando plataformas como o Ultralytics HUB.

Lê tudo