Chia lô request theo kích thước
Serving mô hình theo lô giúp tăng thông lượng, nhưng worker chỉ nhận được một kích thước
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, list-slicing.
Nội dung đề bài
Mô tả bài toán
Serving mô hình theo lô giúp tăng thông lượng, nhưng worker chỉ nhận được một kích thước lô tối đa. Bộ điều phối phải cắt danh sách request thành các lô liên tiếp: đầy batch_size request cho tới lô cuối, lô cuối có thể nhỏ hơn. Biết trước kích thước từng lô giúp worker cấp phát bộ nhớ vừa đủ.
Yêu cầu
Viết hàm batch_sizes(items, batch_size) trả về danh sách độ dài của các lô theo thứ tự, khi cắt items thành các lô liên tiếp, mỗi lô nhiều nhất batch_size phần tử.
Quy ước nộp bài
Nộp hàm batch_sizes 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
- items: danh sách phần tử bất kỳ, độ dài từ 0 tới 20.
- batch_size: kích thước lô tối đa, số nguyên dương.
Output
Danh sách số nguyên là độ dài từng lô. Danh sách rỗng khi items rỗng.
Ràng buộc
- batch_size phải lớn hơn hoặc bằng 1; nếu không thì ném ValueError.
- items rỗng thì trả về danh sách rỗng, không ném lỗi.
- Chỉ quan tâm số phần tử, không quan tâm giá trị phần tử.
Ví dụ 1
Input
batch_sizes(items=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], batch_size=3)
Output
[3, 3, 3, 1]
Ví dụ 2
Input
batch_sizes(items=[0, 1, 2, 3, 4, 5], batch_size=3)
Output
[3, 3]
Giải thích
Với items = [0, 1, 2, 3, 4] và batch_size = 2, các lô là [0, 1], [2, 3], [4] nên kết quả là [2, 2, 1].
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.
