gpt2 / src /model /transformer.py
triton329's picture
Upload folder using huggingface_hub
c21e887 verified
Raw
History Blame Contribute Delete
785 Bytes
import torch.nn as nn
from src.model.norm import LayerNorm
from src.model.feed_forward import FeedForwardNetwork
from src.model.attention import MultiHeadAttention
from src.model.config import GPTConfig
class Transformer(nn.Module):
def __init__(self, config: GPTConfig):
super().__init__()
self.norm1 = LayerNorm(config.embed_dim)
self.attn = MultiHeadAttention(
config.embed_dim, config.head_dim, config.drop_rate, config.num_heads
)
self.norm2 = LayerNorm(config.embed_dim)
self.ff = FeedForwardNetwork(config.embed_dim)
self.drop = nn.Dropout(config.drop_rate)
def forward(self, x):
x = x + self.drop(self.attn(self.norm1(x)))
x = x + self.drop(self.ff(self.norm2(x)))
return x