Xây dựng Ma trận Mặt Nạ Nhân Quả Tự Hồi Quy (Causal Lower-Triangular Attention Mask)
Trong cơ chế Self-Attention tự hồi quy (Causal Self-Attention), token tại vị trí i chỉ được phép chú ý đến các token tại vị trí quá khứ và hiện tại j ≤ i, tuyệt đối không được nh…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: sequence-padding-and-attention-mask.
Nội dung đề bài
Mô tả bài toán
Trong cơ chế Self-Attention tự hồi quy (Causal Self-Attention), token tại vị trí i chỉ được phép chú ý đến các token tại vị trí quá khứ và hiện tại j ≤ i, tuyệt đối không được nhìn thấy các token tương lai j > i.
Ma trận Attention Mask được sử dụng theo 2 hình thức:
- Mặt nạ nhị phân (Binary Mask) M ∈ {0, 1}T × T:
Mij = 1 & nếu j ≤ i
0 & nếu j > i Đây là một ma trận tam giác dưới (Lower Triangular Matrix) bao gồm cả đường chéo chính.
- Mặt nạ cộng dồn Logit (Additive Attention Mask):
Trước khi tính softmax trên ma trận tương đồng QKT / √(d), ta cộng ma trận mặt nạ: Aij = 0.0 & nếu j ≤ i
-109 & nếu j > i Khi đưa qua hàm exp(Aij), các vị trí tương lai sẽ có exp(-109) ≈ 0, triệt tiêu hoàn toàn trọng số chú ý tương lai.
Yêu cầu kỹ thuật:
- Viết hàm
make_binary_causal_mask(seq_len: int) -> np.ndarray: - Nếu
seq_len <= 0: némValueError("seq_len must be positive"). - Trả về ma trận tam giác dưới nhị phân shape (T, T), kiểu
np.int64. - Viết hàm
make_additive_causal_mask(seq_len: int, min_val: float = -1e9) -> np.ndarray: - Nếu
seq_len <= 0: némValueError("seq_len must be positive"). - Trả về ma trận float64 shape (T, T) có giá trị
0.0tại tam giác dưới vàmin_valtại tam giác trên.
Input
- Hàm
make_binary_causal_mask(seq_len): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng. - Hàm
make_additive_causal_mask(seq_len,min_val): Các tham số đầu vào chứa dữ liệu Tensor/mảng NumPy hoặc giá trị siêu tham số tương ứng.
Output
- Hàm
make_binary_causal_mask: Trả về kết quả kiểunp.ndarraytheo đúng đặc tả kỹ thuật và kích thước quy định. - Hàm
make_additive_causal_mask: Trả về kết quả kiểunp.ndarraytheo đúng đặc tả kỹ thuật và kích thước quy định.
Ràng buộc
- Thời gian chạy tối đa: 6000ms.
- Giới hạn bộ nhớ: 512MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
make_binary_causal_mask(3)Output
[[1, 0, 0],
[1, 1, 0],
[1, 1, 1]]Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
make_additive_causal_mask(3, min_val=-1000000000.0)Output
[[ 0.e+00, -1.e+09, -1.e+09],
[ 0.e+00, 0.e+00, -1.e+09],
[ 0.e+00, 0.e+00, 0.e+00]]Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
