Đến nội dung chính
AI tạo sinh

Transformer và cơ chế Attention

Từ query–key–value đến masked self-attention và các giới hạn của phép tổng hợp theo trọng số.

Mức giải thích

Attention tạo biểu diễn của một vị trí bằng cách kết hợp thông tin từ các vị trí khác theo trọng số phụ thuộc dữ liệu. Transformer kết hợp attention với các khối khác; chỉ nhìn một ma trận attention chưa mô tả hết mô hình.

Mục tiêu học tập

  • Giải thích Q, K, V và trục softmax.
  • Phân biệt self-attention, cross-attention và causal mask.
  • Theo dõi shape và chi phí attention cơ bản.

Truy vấn và thông tin được đọc

Q, K và V thường là các phép chiếu học được từ hidden states. Với self-attention, chúng xuất phát từ cùng chuỗi; cross-attention có query từ một nguồn và key/value từ nguồn khác. Mỗi query tạo trọng số trên các key, rồi cộng các value theo trọng số.

Trong một head, nếu Q có Tq hàng và K có Tk hàng, scores có shape Tq×Tk. V có Tk hàng, nên output có Tq hàng. Nhầm trục softmax làm phép đọc thông tin sai dù code vẫn chạy.

Attention trong một Transformer block

Một block thường gồm multi-head attention, feed-forward network, residual connections và normalization. Positional information có thể được đưa vào bằng nhiều cách. Encoder và decoder có pattern mask khác nhau; decoder autoregressive ngăn đọc token tương lai.

Multi-head cho phép học nhiều phép chiếu; không bảo đảm từng head có một ý nghĩa ngôn ngữ dễ đặt tên. Pre-norm và post-norm là hai cách sắp xếp khác nhau, không nên trộn công thức mà bỏ normalization.

Một query, hai key và hai value

Trừ score lớn nhất trước exp để softmax ổn định số hơn. Mã chỉ một query và một head, chưa có learned projections, mask, dropout hay batch. Vì thế nó kiểm tra cơ chế weighted sum chứ chưa phải Transformer hoàn chỉnh.

Workflow & kiến trúc

Q và K tạo attention scores, chia căn bậc hai d_k rồi softmax theo key. Các trọng số nhân V để tổng hợp output; causal mask, nếu dùng, được áp dụng trước softmax.
01Chiếu Q, K, V
02Score + mask
03Softmax theo key
04Weighted values
Workflow minh họa · Các bước cần được điều chỉnh theo bài toán thực tế.

Ứng dụng & giới hạn

  • Đọc cơ chế xử lý chuỗi trong mô hình ngôn ngữ.
  • Kiểm tra shapes hoặc masks trong implementation attention.

Điểm mạnh

Tạo tương tác phụ thuộc context giữa các vị trí mà không cần recurrence theo từng bước trong training.

Giới hạn cần nhớ

Dense attention dài tốn tài nguyên; attention visualization không tự chứng minh cơ chế suy luận hoặc factual correctness.

Thử trong một project nhỏ

LEARN BY DOING

Đổi query thành [0,1] và dự đoán weight nào tăng. Sau đó tự đặt mask chặn key thứ hai; giải thích vì sao mask phải áp dụng trước softmax.

PYTHON · VÍ DỤ MINH HỌA
from math import exp, sqrt
q = [1.0, 0.0]
keys = [[1.0, 0.0], [0.0, 1.0]]
values = [[2.0, 0.0], [0.0, 4.0]]
scores = [sum(a*b for a,b in zip(q,k)) / sqrt(len(q)) for k in keys]
m = max(scores)
weights = [exp(s-m) for s in scores]
weights = [w/sum(weights) for w in weights]
output = [sum(weights[i]*values[i][j] for i in range(2)) for j in range(2)]
assert abs(sum(weights) - 1.0) < 1e-12
assert weights[0] > weights[1]
print(weights, output)

Single-head attention với số tự chọn; chưa có training, mask, batch hoặc Transformer block.

Nguồn tham khảo

  1. Vaswani et al. — Attention Is All You Need (2017)
  2. Brown et al. — Language Models are Few-Shot Learners (2020)

KEEP EXPLORING

Đọc tiếp để nối các ý tưởng.