single
Uitdaging: Structureren van Encoder- en Decoderblokken
Veeg om het menu te tonen
Inzicht in de structuur van encoder- en decoderblokken is essentieel om te begrijpen hoe Transformers tekst verwerken en genereren. Elk encoderblok in een Transformer is ontworpen om invoersequenties om te zetten in contextrijke representaties, terwijl elk decoderblok uitvoersequenties genereert door zowel te letten op eerdere uitgangen als op de representaties van de encoder. Bij sequentie-naar-sequentie teksttaken, zoals vertaling of samenvatting, neemt de encoder de invoertekst en codeert deze in een reeks verborgen toestanden. De decoder gebruikt vervolgens deze verborgen toestanden, samen met zijn eigen zelf-attentie, om stap voor stap de doelsequentie te genereren. Deze interactie tussen encoder- en decoderblokken stelt het model in staat om complexe afhankelijkheden in tekst vast te leggen, waardoor Transformers zeer effectief zijn voor een breed scala aan taken op het gebied van natuurlijke taalverwerking.
De volgende tabel vat de volgorde van bewerkingen in een Transformer encoderblok samen en benadrukt hun belang voor tekstdata:
| |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Each operation ensures that the encoder builds increasingly abstract and context-aware representations of the input text, which are essential for downstream sequence-to-sequence tasks. |
Veeg om te beginnen met coderen
Je taak is om de ontbrekende delen van de TransformerEncoderBlock-klasse aan te vullen door de belangrijkste componenten correct te initialiseren en ervoor te zorgen dat deze worden gebruikt in de forward-berekening.
De TransformerEncoderBlock-klasse modelleert een enkele encoder-blok in een Transformer-architectuur. Je moet twee hoofdcomponenten correct initialiseren in de constructor van de klasse (__init__-methode):
- De self-attention-laag met
MultiHeadAttention(hidden_dim). Deze laag stelt elk token in staat om aandacht te besteden aan alle andere tokens, waardoor contextuele relaties worden vastgelegd; - Het feed-forward-netwerk met
FeedForward(hidden_dim). Deze laag past niet-lineaire transformaties toe op elke tokenrepresentatie afzonderlijk en verwerkt zo de output van de self-attention-laag verder; - In de
forward-methode dien je deze twee lagen opeenvolgend toe te passen:- eerst de input
xdoor de self-attention-laag halen; - vervolgens de output van de self-attention-laag door het feed-forward-netwerk halen;
- de uiteindelijke output retourneren.
- eerst de input
Zorg ervoor dat zowel MultiHeadAttention als FeedForward worden geïnstantieerd met de hidden_dim-parameter die aan de klasse wordt meegegeven. Deze componenten vormen de kernstructuur van een encoder-blok en moeten in de juiste volgorde worden toegepast om correct te functioneren.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.