ai-453Đọc toàn bộ đề miễn phí

Áp padding mask lên trọng số chú ý

Khi một batch chứa các câu dài ngắn khác nhau, người ta chèn token đệm (padding) và đánh

AICơ bản12 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp đượ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ủ đề

numpyattentionpadding-maskentry-ramp

Kiến thức tiên quyết: python-basics, softmax-and-normalization.

Nội dung đề bài

Mô tả bài toán

Khi một batch chứa các câu dài ngắn khác nhau, người ta chèn token đệm (padding) và đánh dấu bằng mask. Trọng số chú ý tại các vị trí đệm phải bị đưa về 0, và phần trọng số còn lại phải được chuẩn hoá lại để tổng vẫn bằng 1.

Yêu cầu

Viết hàm mask_attention_weights(weights, mask) trả về danh sách trọng số đã che và chuẩn hoá lại.

Quy ước nộp bài

Nộp hàm mask_attention_weights trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.

Input

  • weights: danh sách trọng số chú ý (số thực).
  • mask: danh sách cùng độ dài, 1 cho vị trí thật và 0 cho vị trí đệm.

Output

Danh sách cùng độ dài: vị trí đệm bằng 0, các vị trí còn lại chia cho tổng trọng số giữ lại.

Ràng buộc

  • Hai danh sách phải cùng độ dài; nếu không thì ném ValueError.
  • Nếu tổng trọng số giữ lại bằng 0 thì ném ValueError.
  • Chỉ dùng NumPy, không viết vòng lặp cộng từng phần tử.

Ví dụ 1

Input

mask_attention_weights(weights=[0.1, 0.2, 0.3, 0.4], mask=[1, 1, 0, 1])

Output

[0.14285714285714285, 0.2857142857142857, 0.0, 0.5714285714285714]

Ví dụ 2

Input

mask_attention_weights(weights=[0.5, 0.5], mask=[1, 0])

Output

[1.0, 0.0]

Giải thích

Với weights = [0.1, 0.2, 0.3, 0.4] và mask = [1, 1, 0, 1], vị trí thứ ba bị đệm nên tổng giữ lại là 0.1 + 0.2 + 0.4 = 0.7, kết quả [0.14285714285714285, 0.2857142857142857, 0.0, 0.5714285714285714].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.

Nhóm Zalo