Descompunerea Transformer-ului

Modele Transformer cu PyTorch

James Chapman

Curriculum Manager, DataCamp

Articolul care a schimbat totul...

 

  • Attention Is All You Need de Ashish Vaswani et al. (arXiv:1706.03762)
    • Mecanisme de atenție
    • Optimizat pentru modelarea textului
    • Folosit în Modele de Limbaj de Mari Dimensiuni (LLM)

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Articolul care a schimbat totul...

 

  • Attention Is All You Need de Ashish Vaswani et al.
    • Mecanisme de atenție
    • Optimizat pentru modelarea textului
    • Folosit în Modele de Limbaj de Mari Dimensiuni (LLM)

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Articolul care a schimbat totul...

 

  • Attention Is All You Need de Ashish Vaswani et al.
    • Mecanisme de atenție
    • Optimizat pentru modelarea textului
    • Folosit în Modele de Limbaj de Mari Dimensiuni (LLM)

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Detalii despre Transformer...

 

Blocul encoder
  • Mai multe straturi identice
  • Citește și procesează secvența de intrare
  • Generează reprezentări numerice bogate în context
  • Folosește self-attention și rețele feed-forward

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Detalii despre Transformer...

 

Blocul decoder
  • Secvență de intrare codificată → secvență de ieșire

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Detalii despre Transformer...

 

Codificare pozițională
  • Codifică poziția fiecărui token în secvență
  • Ordinea este esențială pentru modelarea secvențelor

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Detalii despre Transformer...

Mecanisme de atenție
  • Se concentrează pe tokeni importanți și relațiile lor
  • Îmbunătățesc generarea de text

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Detalii despre Transformer...

Mecanisme de atenție
  • Se concentrează pe tokeni importanți și relațiile lor
  • Îmbunătățesc generarea de text
Self-attention
  • Ponderarea importanței tokenilor
  • Captează dependențe pe distanțe mari

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Detalii despre Transformer...

Mecanisme de atenție
  • Se concentrează pe tokeni importanți și relațiile lor
  • Îmbunătățesc generarea de text
Self-attention
  • Ponderarea importanței tokenilor
  • Captează dependențe pe distanțe mari
Atenție multi-head
  • Împarte intrarea în mai multe head-uri
  • Head-urile captează tipare distincte, generând reprezentări mai bogate

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Detalii despre Transformer...

 

Rețele feed-forward poziționale
  • Rețele neuronale simple care aplică transformări
  • Fiecare token este transformat independent
  • Independente de poziție / „poziționale"

Arhitectura Transformer din articolul academic Attention Is All You Need.

Modele Transformer cu PyTorch

Transformere în PyTorch

 

  • d_model: Dimensionalitatea intrărilor modelului
  • nheads: Numărul de head-uri de atenție
  • num_encoder_layers: Numărul de straturi encoder
  • num_decoder_layers: Numărul de straturi decoder
import torch.nn as nn


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

Să exersăm!

Modele Transformer cu PyTorch

Preparing Video For Download...