Architectură encoder–decoder
Modelele codificator-decodificator (engl. Encoder-Decoder Models) — reprezintă o clasă de arhitecturi de rețele neuronale, destinate rezolvării sarcinilor de transformare a unei secvențe în altă secvență (sequence-to-sequence, seq2seq). Această arhitectură este compusă din două componente principale:
- Codificatorul (encoder): Procesează secvența de intrare și o comprimă într-o reprezentare numerică compactă (vector de context sau o secvență de stări ascunse).
- Decodificatorul (decoder): Preia această reprezentare și generează pe baza ei secvența de ieșire.
Această arhitectură stă la baza multor sarcini de procesare a limbajului natural (NLP) și de viziune computerizată, precum traducerea automată, sumarizarea textului și descrierea imaginilor.
Concept
Ideea principală a arhitecturii codificator-decodificator constă în separarea sarcinilor de înțelegere și generare. Codificatorul este responsabil de înțelegerea secvenței de intrare, extragând din aceasta toate informațiile semantice necesare. Decodificatorul este responsabil de generarea unei noi secvențe, utilizând informațiile furnizate de codificator.
Aceasta permite modelului să lucreze cu secvențe de lungimi diferite la intrare și la ieșire, ceea ce era dificil pentru arhitecturile mai vechi.
Evoluția arhitecturii
Modele timpurii bazate pe RNN/LSTM
Inițial, arhitectura codificator-decodificator a fost implementată utilizând rețele neuronale recurente (RNN) sau varianta lor îmbunătățită LSTM.
- Codificatorul: Codificatorul RNN procesa secvența de intrare token cu token și producea la ieșire un singur vector de context — starea ascunsă după procesarea ultimului token, care trebuia să conțină informații despre întreaga secvență.
- Decodificatorul: Decodificatorul RNN era inițializat cu acest vector de context și genera autoregresiv secvența de ieșire.
Principalul dezavantaj al acestei abordări era problema „gâtului de sticlă": toate informațiile din secvența de intrare trebuiau comprimate într-un singur vector de lungime fixă, ceea ce ducea la pierderi de informație, în special pentru secvențe lungi.
Introducerea mecanismului de atenție
Progresul decisiv a avut loc odată cu introducerea mecanismului de atenție (attention mechanism) (Bahdanau et al., 2014).
- Principiul de funcționare: În loc să se bazeze pe un singur vector de context, decodificatorul la fiecare pas de generare „acordă atenție\" tuturor stărilor ascunse ale codificatorului. Acesta calculează ponderi de atenție care indică ce părți ale secvenței de intrare sunt cele mai relevante pentru generarea tokenului de ieșire curent.
- Avantaje: Aceasta a rezolvat problema „gâtului de sticlă" și a permis modelului să lucreze eficient cu secvențe lungi, îmbunătățind semnificativ calitatea, în special în traducerea automată.
Arhitectura Transformer
În 2017, în articolul «Attention Is All You Need» a fost prezentată arhitectura Transformer, care a renunțat complet la recurență în favoarea mecanismului de atenție.
- Codificatorul Transformer: Este compus dintr-un stac de straturi, fiecare utilizând auto-atenția (self-attention) pentru a crea reprezentări contextualizate pentru fiecare token de intrare.
- Decodificatorul Transformer: Este compus dintr-un stac de straturi, fiecare având două tipuri de mecanisme de atenție:
- Auto-atenție mascată: Pentru procesarea părții deja generate a secvenței de ieșire.
- Atenție încrucișată (Cross-Attention): Pentru „acordarea atenției" la reprezentările de ieșire ale codificatorului.
Această arhitectură a devenit standardul pentru sarcinile seq2seq datorită performanței sale ridicate și posibilității de paralelizare a calculelor.
Aplicații
Arhitectura codificator-decodificator este standardul pentru o gamă largă de sarcini:
- Traducere automată: Transformarea unei propoziții dintr-o limbă în alta.
- Sumarizare automată a textului: Crearea unui rezumat al unui document lung.
- Sisteme de dialog: Generarea unui răspuns la replica utilizatorului.
- Descrierea imaginilor (Image Captioning): Codificatorul (adesea bazat pe o rețea neuronală convoluțională) procesează imaginea, iar decodificatorul (adesea RNN sau Transformer) generează descrierea textuală a acesteia.
- Recunoașterea vorbirii: Transformarea semnalului audio în transcriere textuală.
Modele principale
- Transformer-ul original (Vaswani et al., 2017): Modelul care a introdus această arhitectură.
- BART (Bidirectional and Auto-Regressive Transformers): Model dezvoltat de Facebook, pre-antrenat pe sarcina de restaurare a unui text „corupt". Codificatorul este bidirecțional (ca în BERT), iar decodificatorul — autoregresiv (ca în GPT).
- T5 (Text-to-Text Transfer Transformer): Model dezvoltat de Google, care unifică toate sarcinile NLP, reprezentându-le ca o problemă de transformare a textului în text. T5 a obținut rezultate remarcabile pe numeroase benchmark-uri.
Comparație cu alte arhitecturi
| Arhitectură | Sarcina principală | Componente | Modele tipice |
|---|---|---|---|
| Codificator-decodificator | Transformarea secvenței în secvență | Codificator + Decodificator | T5, BART, Transformer original |
| Doar codificator | Înțelegerea textului | Doar codificator | BERT, RoBERTa |
| Doar decodificator | Generarea textului | Doar decodificator |
Bibliografie
- Bahdanau, D. et al. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
- Sutskever, I. et al. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
- Luong, M.-T. et al. (2015). Effective Approaches to Attention-based Neural Machine Translation. arXiv:1508.04025.
- Wu, Y. et al. (2016). Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. arXiv:1609.08144.
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Britz, D. et al. (2017). Massive Exploration of Neural Machine Translation Architectures. arXiv:1703.03906.
- Lewis, M. et al. (2020). BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation. arXiv:1910.13461.
- Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
- Dong, L. et al. (2019). Unified Language Model Pre-training for Natural Language Understanding and Generation. arXiv:1905.03197.
- Zhang, J. et al. (2020). PEGASUS: Pre-training with Extracted Gap-Sentences for Abstractive Summarization. arXiv:1912.08777.