Phân rã Transformer

Các mô hình Transformer với PyTorch

James Chapman

Curriculum Manager, DataCamp

Bài báo làm thay đổi tất cả...

 

  • Attention Is All You Need của Ashish Vaswani và cộng sự (arXiv:1706.03762)
    • Cơ chế attention
    • Tối ưu cho mô hình hóa văn bản
    • Dùng trong Mô hình Ngôn ngữ Lớn (LLM)

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Bài báo làm thay đổi tất cả...

 

  • Attention Is All You Need của Ashish Vaswani và cộng sự
    • Cơ chế attention
    • Tối ưu cho mô hình hóa văn bản
    • Dùng trong Mô hình Ngôn ngữ Lớn (LLM)

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Bài báo làm thay đổi tất cả...

 

  • Attention Is All You Need của Ashish Vaswani và cộng sự
    • Cơ chế attention
    • Tối ưu cho mô hình hóa văn bản
    • Dùng trong Mô hình Ngôn ngữ Lớn (LLM)

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Mổ xẻ Transformer...

 

Khối encoder
  • Nhiều lớp giống hệt nhau
  • Đọcxử lý chuỗi đầu vào
  • Tạo biểu diễn số giàu ngữ cảnh
  • Dùng self-attentionmạng feed-forward

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Mổ xẻ Transformer...

 

Khối decoder
  • Chuỗi đã mã hóa → chuỗi đầu ra

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Mổ xẻ Transformer...

 

Mã hóa vị trí (positional encoding)
  • Mã hóa vị trí của từng token trong chuỗi
  • Thứ tự là then chốt khi mô hình hóa chuỗi

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Mổ xẻ Transformer...

Cơ chế attention
  • Tập trung vào token quan trọng và quan hệ của chúng
  • Cải thiện sinh văn bản

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Mổ xẻ Transformer...

Cơ chế attention
  • Tập trung vào token quan trọng và quan hệ của chúng
  • Cải thiện sinh văn bản
Self-attention
  • Gán trọng số tầm quan trọng của token
  • Bắt được phụ thuộc dài hạn

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Mổ xẻ Transformer...

Cơ chế attention
  • Tập trung vào token quan trọng và quan hệ của chúng
  • Cải thiện sinh văn bản
Self-attention
  • Gán trọng số tầm quan trọng của token
  • Bắt được phụ thuộc dài hạn
Multi-head attention
  • Tách đầu vào thành nhiều head
  • Mỗi head bắt mẫu riêng → biểu diễn phong phú hơn

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Mổ xẻ Transformer...

 

Mạng feed-forward theo vị trí
  • Mạng NN đơn giản áp dụng biến đổi
  • Mỗi token được biến đổi độc lập
  • Không phụ thuộc vị trí/"theo vị trí"

Kiến trúc Transformer như trong bài báo học thuật Attention Is All You Need.

Các mô hình Transformer với PyTorch

Transformer trong PyTorch

 

  • d_model: Kích thước chiều đầu vào của mô hình
  • nheads: Số head attention
  • num_encoder_layers: Số lớp encoder
  • num_decoder_layers: Số lớp decoder
import torch.nn as nn


model = nn.Transformer(
d_model=512,
nhead=8,
num_encoder_layers=6,
num_decoder_layers=6
)
print(model)
Các mô hình Transformer với 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)
  )
  ...
Các mô hình Transformer với 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)
  )
)
Các mô hình Transformer với PyTorch

Ayo berlatih!

Các mô hình Transformer với PyTorch

Preparing Video For Download...