Hai loại mask và chỗ chúng can thiệp vào score

Hai loại mask và chỗ chúng can thiệp vào score A data-flow diagram generated by Archify. 01 / Score thô 02 / Mask 03 / Softmax 04 / Kết quả QKᵀ chia căn d_k · mọi cặp i, j đều có điểm · 01 / Score thô QKᵀ chia căn d_k mọi cặp i, j đều có điểm Causal mask · ô tương lai nhận trừ vô cùng · 02 / Mask · chặn rò rỉ đáp án Causal mask ô tương lai nhận trừ vô cùng chặn rò rỉ đáp án Padding mask · ô đệm không có dữ liệu thật · 02 / Mask · khi batch dài ngắn khác nhau Padding mask ô đệm không có dữ liệu thật khi batch dài ngắn khác nhau Softmax của S cộng M · cộng mask trước khi chuẩn hoá · 03 / Softmax Softmax của S cộng M cộng mask trước khi chuẩn hoá Weight bằng 0 · vì e mũ trừ vô cùng bằng 0 · 04 / Kết quả Weight bằng 0 vì e mũ trừ vô cùng bằng 0 Vẫn tính song song · mask không xoá token đi · 04 / Kết quả Vẫn tính song song mask không xoá token đi chặn thông tin tương lai chặn ô không có dữ liệu cộng vào score cũng cộng vào score hệ quả số học hệ quả kỹ thuật Legend primary data data flow

Hai mask giải quyết hai vấn đề khác nhau

  • • Causal mask chặn thông tin đến từ tương lai
  • • Padding mask chặn những vị trí không chứa dữ liệu thật
  • • Cả hai đều làm việc bằng cách cộng trừ vô cùng vào score

Mask không cắt token ra khỏi chuỗi

  • • Toàn bộ sequence vẫn được tính một lượt trong training
  • • Mask chỉ ngăn mỗi Query truy cập những Key không hợp lệ
  • • Đây là lợi thế lớn của Transformer so với RNN

Một cái bẫy khi implement

  • • Convention boolean của mỗi framework một khác
  • • Có API coi True là được phép attend, API khác coi True là bị chặn
  • • Đọc semantics của hàm đang dùng, đừng chỉ nhìn shape