Pre-Layer Normalization

Præ-lag normalization er en teknik, hvor layer normalization placeres før hvert dellag (attention eller feed-forward) i en transformerblok, i modsætning til post-layer normalization.

Kort fortalt

Kort fortalt: I stedet for at normalisere efter hvert dellag, normaliserer man indgangen til dellaget, hvilket ofte giver mere stabil træning.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    Teknik i transformerarkitekturer, hvor layer normalization anvendes på indgangen til hvert dellag (attention eller feed-forward) i stedet for på udgangen.

    • I Pre-Layer Normalization normaliseres inputtet til attention-mekanismen, hvilket forbedrer gradientflowet.
    • Mange moderne sprogmodeller som GPT-3 anvender Pre-Layer Normalization for at opnå stabil træning ved høje læringsrater.

Hvornår bruges det

Pre-Layer Normalization bruges i moderne store sprogmodeller som GPT-2, GPT-3 og andre, hvor det har vist sig at forbedre træningsstabiliteten og muligvis give bedre performance. Det er nu standard i de fleste transformerarkitekturer.

Kodeeksempel

import torch.nn as nn

class PreLayerNormTransformerBlock(nn.Module):
    def __init__(self, d_model, nhead):
        super().__init__()
        self.attention = nn.MultiheadAttention(d_model, nhead)
        self.norm1 = nn.LayerNorm(d_model)
        self.ffn = nn.Sequential(
            nn.Linear(d_model, 4*d_model),
            nn.ReLU(),
            nn.Linear(4*d_model, d_model)
        )
        self.norm2 = nn.LayerNorm(d_model)
    
    def forward(self, x):
        # Pre-LN: normalize before each sublayer
        x = x + self.attention(self.norm1(x), self.norm1(x), self.norm1(x))[0]
        x = x + self.ffn(self.norm2(x))
        return x

Eksempel på en transformerblok med Pre-Layer Normalization i PyTorch. Normalisering sker før attention og feed-forward.

Oprindelse

Termen opstod i forbindelse med forskning i transformerarkitekturer, hvor man sammenlignede placeringen af normaliseringslaget før eller efter dellagene. 'Pre' refererer til før sublaget.

Afledte ord

1

Kilder

1
  • On Layer Normalization in the Transformer Architecture (Xiong et al., 2020)