Membedah Transformer

Model Transformer dengan PyTorch

James Chapman

Curriculum Manager, DataCamp

Makalah yang mengubah segalanya...

 

  • Attention Is All You Need oleh Ashish Vaswani dkk. (arXiv:1706.03762)
    • Mekanisme attention
    • Dioptimalkan untuk pemodelan teks
    • Dipakai dalam Large Language Models (LLMs)

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Makalah yang mengubah segalanya...

 

  • Attention Is All You Need oleh Ashish Vaswani dkk.
    • Mekanisme attention
    • Dioptimalkan untuk pemodelan teks
    • Dipakai dalam Large Language Models (LLMs)

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Makalah yang mengubah segalanya...

 

  • Attention Is All You Need oleh Ashish Vaswani dkk.
    • Mekanisme attention
    • Dioptimalkan untuk pemodelan teks
    • Dipakai dalam Large Language Models (LLMs)

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Mengupas Transformer...

 

Blok encoder
  • Beberapa layer identik
  • Membaca dan memroses urutan input
  • Hasilkan representasi numerik kaya konteks
  • Gunakan self-attention dan feed-forward networks

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Mengupas Transformer...

 

Blok decoder
  • Urutan terenkode → urutan keluaran

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Mengupas Transformer...

 

Positional encoding
  • Enkode posisi tiap token dalam urutan
  • Urutan penting untuk pemodelan sekuens

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Mengupas Transformer...

Mekanisme attention
  • Fokus pada token penting dan relasinya
  • Meningkatkan generasi teks

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Mengupas Transformer...

Mekanisme attention
  • Fokus pada token penting dan relasinya
  • Meningkatkan generasi teks
Self-attention
  • Memberi bobot pentingnya token
  • Menangkap ketergantungan jarak jauh

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Mengupas Transformer...

Mekanisme attention
  • Fokus pada token penting dan relasinya
  • Meningkatkan generasi teks
Self-attention
  • Memberi bobot pentingnya token
  • Menangkap ketergantungan jarak jauh
Multi-head attention
  • Membagi input menjadi beberapa head
  • Tiap head menangkap pola berbeda, menghasilkan representasi lebih kaya

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Mengupas Transformer...

 

Position-wise feed-forward networks
  • NN sederhana yang menerapkan transformasi
  • Tiap token ditransformasi secara independen
  • Tidak bergantung posisi/"position-wise"

Arsitektur transformer seperti pada makalah akademik, Attention Is All You Need.

Model Transformer dengan PyTorch

Transformer di PyTorch

 

  • d_model: Dimensi input model
  • nheads: Jumlah head attention
  • num_encoder_layers: Jumlah layer encoder
  • num_decoder_layers: Jumlah layer decoder
import torch.nn as nn


model = nn.Transformer(
d_model=512,
nhead=8,
num_encoder_layers=6,
num_decoder_layers=6
)
print(model)
Model Transformer dengan PyTorch
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)
  )
  ...
Model Transformer dengan PyTorch
  (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)
  )
)
Model Transformer dengan PyTorch

Ayo berlatih!

Model Transformer dengan PyTorch

Preparing Video For Download...