PyTorch oferă implementări native complete ale arhitecturii standard Transformer. Clasa nn.TransformerEncoderLayer grupează un mecanism de atenție multi-head (nn.MultiheadAttention), o rețea feed-forward densă, conexiuni reziduale și straturi de LayerNorm.
import torch
import torch.nn as nn
# Definirea unui singur strat encoder cu activare GELU
encoder_layer = nn.TransformerEncoderLayer(
d_model=512,
nhead=8,
dim_feedforward=2048,
activation="gelu",
batch_first=True,
norm_first=True # Arhitectură Pre-LN pentru stabilitate la scară
)
# Stivuirea a 6 straturi identice
transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=6)
# Secvență de intrare: (Batch=4, Lungime=50, D_Model=512)
tokens = torch.randn(4, 50, 512)
encoded = transformer_encoder(tokens)
print("Ieșire Encoder:", encoded.shape) # torch.Size([4, 50, 512])
Opțiunea norm_first=True (Pre-LayerNorm) este standardul actual în modelele lingvistice mari, facilitând propagarea gradientelor fără a necesita rate mici de învățare la debut.
Întrebări & Exemple practice:
Blocuri Complete de Transformare: nn.TransformerEncoder și LayerAi o întrebare despre Blocuri Complete de Transformare: nn.TransformerEncoder și Layer sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.