Softmax theo nhiệt độ
Khi sinh văn bản, mô hình ngôn ngữ biến logits thành phân phối xác suất qua softmax.
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ủ đề
Kiến thức tiên quyết: python-basics, numpy-vector-operations.
Nội dung đề bài
Mô tả bài toán
Khi sinh văn bản, mô hình ngôn ngữ biến logits thành phân phối xác suất qua softmax. Nhiệt độ điều khiển độ "sắc" của phân phối: nhiệt độ nhỏ làm mô hình tự tin hơn, nhiệt độ lớn làm phân phối phẳng hơn và đa dạng hơn.
Yêu cầu
Viết hàm temperature_scale(logits, temperature) trả về phân phối xác suất thu được khi chia logits cho nhiệt độ rồi qua softmax.
Quy ước nộp bài
Nộp hàm temperature_scale trong solution.py. Hệ thống gọi hàm trực tiếp, so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- logits: dãy điểm số thô.
- temperature: hệ số nhiệt độ, số thực dương.
Output
Danh sách xác suất cùng độ dài với logits, tổng bằng 1, tính bằng softmax(logits / temperature).
Ràng buộc
- temperature phải lớn hơn 0; ném ValueError khi temperature <= 0.
- Nên trừ đi giá trị lớn nhất trước khi lấy exp để tránh tràn số.
- Chỉ dùng NumPy, không cài softmax bằng vòng lặp Python.
Ví dụ 1
Input
temperature_scale(logits=[2, 0], temperature=2.0)
Output
[0.7310585786300049, 0.2689414213699951]
Ví dụ 2
Input
temperature_scale(logits=[2, 0], temperature=1.0)
Output
[0.8807970779778823, 0.11920292202211755]
Giải thích
Với logits = [2, 0] và temperature = 2.0, ta có logits / T = [1, 0], softmax là [0.7310585786300049, 0.2689414213699951].
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.
