Bộ Gom Nhóm Mini-Batch Huấn Luyện Ngôn Ngữ Tự Hồi Quy (Autoregressive Batch Collator)
Khi xây dựng DataLoader để nạp dữ liệu cho mô hình ngôn ngữ tự hồi quy, hàm gom nhóm collate_fn có nhiệm vụ chuyển đổi danh sách các mẫu văn bản độ dài tự do thành một batch hoàn 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: causal-next-token-target-shifting, sequence-padding-and-attention-mask.
Nội dung đề bài
Mô tả bài toán
Khi xây dựng DataLoader để nạp dữ liệu cho mô hình ngôn ngữ tự hồi quy, hàm gom nhóm collate_fn có nhiệm vụ chuyển đổi danh sách các mẫu văn bản độ dài tự do thành một batch hoàn chỉnh sẵn sàng cho GPU.
Yêu cầu
Viết hàm:
def collate_causal_lm_batch(
samples: list[list[int] | np.ndarray],
pad_id: int = 0
) -> dict[str, np.ndarray]- Nếu samples rỗng: trả về dict rỗng các mảng shape (0, 0).
- Nếu có bất kỳ mẫu nào có độ dài < 2: ném ngoại lệ ValueError("All samples must have length at least 2").
- Trả về từ điển:
- "inputids": mảng shape (B, Tmax), dtype np.int64.
- "labels": mảng shape (B, Tmax), dtype np.int64 (đệm bằng -100).
- "attentionmask": mảng shape (B, Tmax), dtype np.int64.
Input
- Hàm collate_causal_lm_batch(samples, pad_id): 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 collate_causal_lm_batch: Trả về kết quả kiểu dict[str, np.ndarray] theo đú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
seq1 = [10, 20, 30, 40]
seq2 = [1, 2, 3]
batch = collate_causal_lm_batch([seq1, seq2], pad_id=0)batch = collate_causal_lm_batch([])Output
{
'input_ids': [[10, 20, 30],
[ 1, 2, 0]],
'labels': [[ 20, 30, 40],
[ 2, 3, -100]],
'attention_mask': [[1, 1, 1],
[1, 1, 0]]
}{
'input_ids': [],
'labels': [],
'attention_mask': []
}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.
