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

Một giá trị mã hoá vị trí hình sin

Transformer không có sẵn thứ tự của các token, nên người ta cộng thêm mã hoá vị trí hình

AICơ bản10 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ủ đề

numpytransformerpositional-encodingentry-ramp

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

Nội dung đề bài

Mô tả bài toán

Transformer không có sẵn thứ tự của các token, nên người ta cộng thêm mã hoá vị trí hình sin để mạng biết token nào đứng trước token nào. Mỗi vị trí p và chiều i cho một con số xác định.

Yêu cầu

Viết hàm positional_encoding_value(position, dimension, d_model) trả về một số thực là giá trị mã hoá vị trí tại (position, dimension).

Quy ước nộp bài

Nộp hàm positional_encoding_value 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

  • position: vị trí p (số nguyên không âm).
  • dimension: chiều i trong vector mã hoá.
  • d_model: số chiều của vector mã hoá.

Output

Với angle = position / 10000 ** (2 * (dimension // 2) / d_model): trả về sin(angle) khi dimension chẵn và cos(angle) khi dimension lẻ.

Ràng buộc

  • d_model phải dương và 0 <= dimension < d_model; nếu không thì ném ValueError.
  • Dùng thư viện chuẩn math cho sin/cos, kết quả trả về dạng float.

Ví dụ 1

Input

positional_encoding_value(position=1, dimension=0, d_model=4)

Output

0.8414709848078965

Ví dụ 2

Input

positional_encoding_value(position=1, dimension=1, d_model=4)

Output

0.5403023058681398

Giải thích

Với d_model = 4, hai chiều đầu dùng mẫu số 10000 0 = 1, hai chiều sau dùng 10000 0.5 = 100. Do đó positional_encoding_value(1, 0, 4) = sin(1) = 0.8414709848078965 và positional_encoding_value(1, 2, 4) = sin(0.01) = 0.009999833334166664.

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