Transformer'ı parçalarına ayırma

PyTorch ile Transformer Modelleri

James Chapman

Curriculum Manager, DataCamp

Her şeyi değiştiren makale...

 

  • Ashish Vaswani ve diğerlerinin Attention Is All You Need (arXiv:1706.03762)
    • Dikkat mekanizmaları
    • Metin modelleme için optimize edildi
    • Büyük Dil Modellerinde (LLM'ler) kullanılır

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Her şeyi değiştiren makale...

 

  • Ashish Vaswani ve diğerlerinin Attention Is All You Need
    • Dikkat mekanizmaları
    • Metin modelleme için optimize edildi
    • Büyük Dil Modellerinde (LLM'ler) kullanılır

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Her şeyi değiştiren makale...

 

  • Ashish Vaswani ve diğerlerinin Attention Is All You Need
    • Dikkat mekanizmaları
    • Metin modelleme için optimize edildi
    • Büyük Dil Modellerinde (LLM'ler) kullanılır

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Transformer'ı açalım...

 

Encoder bloğu
  • Birbirinin aynı çoklu katman
  • Girdi dizisini okur ve işler
  • Bağlamca zengin sayısal temsiller üretir
  • Öz-dikkat ve ileri beslemeli ağlar kullanır

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Transformer'ı açalım...

 

Decoder bloğu
  • Kodlanmış girdi dizisi → çıktı dizisi

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Transformer'ı açalım...

 

Konumsal kodlama
  • Her belirtecin dizideki konumunu kodlar
  • Sıra, dizileri modellemek için kritiktir

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Transformer'ı açalım...

Dikkat mekanizmaları
  • Önemli belirteçlere ve ilişkilerine odaklanır
  • Metin üretimini iyileştirir

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Transformer'ı açalım...

Dikkat mekanizmaları
  • Önemli belirteçlere ve ilişkilerine odaklanır
  • Metin üretimini iyileştirir
Öz-dikkat
  • Belirteç önemini ağırlıklandırır
  • Uzun menzilli bağımlılıkları yakalar

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Transformer'ı açalım...

Dikkat mekanizmaları
  • Önemli belirteçlere ve ilişkilerine odaklanır
  • Metin üretimini iyileştirir
Öz-dikkat
  • Belirteç önemini ağırlıklandırır
  • Uzun menzilli bağımlılıkları yakalar
Çoklu başlık dikkat
  • Girdiyi birden çok başlığa böler
  • Başlıklar farklı örüntüleri yakalar; daha zengin temsiller üretir

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

Transformer'ı açalım...

 

Konum bazlı ileri beslemeli ağlar
  • Dönüşümler uygulayan basit YSA'lar
  • Her belirteç bağımsız dönüştürülür
  • Konumdan bağımsız/"konum bazlı"

Akademik makale Attention Is All You Need'de gösterilen transformer mimarisi.

PyTorch ile Transformer Modelleri

PyTorch'ta Transformer'lar

 

  • d_model: Model girdi boyutu
  • nheads: Dikkat başlığı sayısı
  • num_encoder_layers: Encoder katman sayısı
  • num_decoder_layers: Decoder katman sayısı
import torch.nn as nn


model = nn.Transformer(
d_model=512,
nhead=8,
num_encoder_layers=6,
num_decoder_layers=6
)
print(model)
PyTorch ile Transformer Modelleri
Transformer(
  (encoder): TransformerEncoder(
    (layers): ModuleList(
      (0-5): 6 x TransformerEncoderLayer(
        (self_attn): MultiheadAttention(
          (out_proj): NonDynamicallyQuantizableLinear(in_features=512, out_features=512, bias=True)
        )
        (linear1): Linear(in_features=512, out_features=2048, bias=True)
        (dropout): Dropout(p=0.1, inplace=False)
        (linear2): Linear(in_features=2048, out_features=512, bias=True)
        (norm1): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
        (norm2): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
        (dropout1): Dropout(p=0.1, inplace=False)
        (dropout2): Dropout(p=0.1, inplace=False)
      )
    )
    (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
  )
  ...
PyTorch ile Transformer Modelleri
  (decoder): TransformerDecoder(
    (layers): ModuleList(
      (0-5): 6 x TransformerDecoderLayer(
        (self_attn): MultiheadAttention(
          (out_proj): NonDynamicallyQuantizableLinear(in_features=512, out_features=512, bias=True)
        )
        (multihead_attn): MultiheadAttention(
          (out_proj): NonDynamicallyQuantizableLinear(in_features=512, out_features=512, bias=True)
        )
        (linear1): Linear(in_features=512, out_features=2048, bias=True)
        (dropout): Dropout(p=0.1, inplace=False)
        (linear2): Linear(in_features=2048, out_features=512, bias=True)
        (norm1): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
        (norm2): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
        (norm3): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
        (dropout1): Dropout(p=0.1, inplace=False)
        (dropout2): Dropout(p=0.1, inplace=False)
        (dropout3): Dropout(p=0.1, inplace=False)
      )
    )
    (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
  )
)
PyTorch ile Transformer Modelleri

Hadi pratik yapalım!

PyTorch ile Transformer Modelleri

Preparing Video For Download...