single
Challenge: Strukturering af Encoder- og Decoder-blokke
Stryg for at vise menuen
Forståelse af strukturen af encoder- og decoder-blokke er afgørende for at mestre, hvordan Transformers behandler og genererer tekst. Hver encoder-blok i en Transformer er designet til at omdanne inputsekvenser til kontekst-rige repræsentationer, mens hver decoder-blok genererer outputsekvenser ved at tage højde for både tidligere outputs og encoderens repræsentationer. Ved sekvens-til-sekvens tekstopgaver, såsom oversættelse eller opsummering, tager encoderen inputteksten og koder den til en række skjulte tilstande. Decoderen bruger derefter disse skjulte tilstande sammen med sin egen selvopmærksomhed til trin for trin at generere målsekvensen. Denne interaktion mellem encoder- og decoder-blokke gør det muligt for modellen at opfange komplekse afhængigheder i tekst, hvilket gør Transformers meget effektive til en bred vifte af opgaver inden for naturlig sprogbehandling.
Følgende tabel opsummerer rækkefølgen af operationer i en Transformer encoder-blok og fremhæver deres betydning for 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. |
Swipe to start coding
Din opgave er at udfylde de manglende dele af TransformerEncoderBlock-klassen ved korrekt at initialisere dens nøglekomponenter og sikre, at de anvendes i den fremadrettede beregning.
TransformerEncoderBlock-klassen modellerer et enkelt encoder-blok i en Transformer-arkitektur. Du skal korrekt initialisere to hovedkomponenter i klassens konstruktør (__init__-metoden):
- Self-attention-laget ved brug af
MultiHeadAttention(hidden_dim). Dette lag gør det muligt for hvert token i inputtet at tage højde for alle andre tokens og fange kontekstuelle relationer; - Feed-forward-netværket ved brug af
FeedForward(hidden_dim). Dette lag anvender ikke-lineære transformationer på hver token-repræsentation individuelt og bearbejder yderligere outputtet fra self-attention-laget; - I
forward-metoden skal du anvende disse to lag sekventielt:- først sendes inputtet
xgennem self-attention-laget; - derefter sendes outputtet fra self-attention-laget gennem feed-forward-netværket;
- returnér det endelige output.
- først sendes inputtet
Sørg for at instantiere både MultiHeadAttention og FeedForward med parameteren hidden_dim, som gives til klassen. Disse komponenter udgør den centrale struktur i en encoder-blok og skal anvendes i den korrekte rækkefølge for at blokken fungerer korrekt.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat