Thuật toán Nucleus Sampling (Top-P Filtering)
Nhược điểm của Top-K là số lượng ứng viên K luôn 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: top-k-filtering-sampling.
Nội dung đề bài
Mô tả bài toán
Nhược điểm của Top-K là số lượng ứng viên K luôn cố định:
- Khi mô hình phân vân (phân phối phẳng), K cố định có thể bỏ lọt các ứng viên tốt.
- Khi mô hình rất tự tin (phân phối nhọn), K=50 vẫn bao gồm quá nhiều token tệ.
Nucleus Sampling (Top-P) (Holtzman et al., 2019) giải quyết triệt để vấn đề này bằng cách chọn tập hợp nhỏ nhất các token có tổng xác suất vượt ngưỡng p (0 < p ≤ 1.0):
- Tính xác suất softmax của logits.
- Sắp xếp các token theo thứ tự xác suất giảm dần.
- Tính xác suất tích lũy (cumulative sum).
- Giữ lại các token cho đến khi tổng tích lũy vừa vượt ngưỡng p. Luôn giữ lại tối thiểu 1 token (token có xác suất lớn nhất).
- Gán logits của các token còn lại bằng
filter_value(mặc định -∞).
Hãy viết hàm top_p_filtering(logits: np.ndarray, p: float = 0.9, filter_value: float = -float('inf')) -> np.ndarray:
- Kiểm tra 0 < p ≤ 1.0. Nếu không thỏa, raise
ValueError. logits: mảng 1D. Nếu không hợp lệ, raiseValueError.- Trả về mảng logits đã được lọc theo chuẩn Nucleus Sampling.
Input
- Hàm
top_p_filtering(logits,p,filter_value): 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
top_p_filtering: 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
logits = np.array([10.0, 1.0, 0.0])
filtered = top_p_filtering(logits, p=0.8)Output
[ 10., -inf, -inf]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
logits = np.log(np.array([0.4, 0.3, 0.2, 0.1]))
filtered = top_p_filtering(logits, p=0.65)Output
[-0.9163, -1.204 , -inf, -inf]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.
