Phân Mảnh Ngữ Liệu Huấn Luyện Liên Tục (Continuous Streaming Corpus Token Chunking)
Trong giai đoạn tiền huấn luyện (Pretraining) của các mô hình như LLaMA hay GPT-3, hàng tỷ token văn bản được nối liên tục với nhau qua token <eos> tạo thành một mảng 1D duy nhất.
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: causal-attention-mask-construction.
Nội dung đề bài
Mô tả bài toán
Trong giai đoạn tiền huấn luyện (Pretraining) của các mô hình như LLaMA hay GPT-3, hàng tỷ token văn bản được nối liên tục với nhau qua token <eos> tạo thành một mảng 1D duy nhất.
Để tận dụng 100% công suất tính toán của GPU và không lãng phí tài nguyên vào token padding <pad>, mảng 1D khổng lồ này được cắt thành các khối độc lập có kích thước cố định block_size (thường là 2048 hoặc 4096):
- Tổng số khối nguyên vẹn: N = ⌊ len(tokens) / block_size ⌋.
- Phần dư còn lại ở cuối (nhỏ hơn
block_size) bị loại bỏ hoàn toàn. - Reshape mảng thành ma trận 2D shape (N, block_size).
Yêu cầu kỹ thuật:
Viết hàm chunk_continuous_stream(token_stream: list[int] | np.ndarray, block_size: int) -> np.ndarray:
token_stream: Dòng token IDs 1D.- Kiểm tra điều kiện:
block_size > 0. Nếu không, némValueError("block_size must be positive"). - Tính toán số lượng block hoàn chỉnh N.
- Nếu N == 0: Trả về mảng rỗng shape (0, block_size) với
dtype=np.int64. - Cắt mảng về đúng độ dài N × block_size, sau đó reshape thành tensor shape (N, block_size) kiểu
np.int64.
Input
- Hàm
chunk_continuous_stream(token_stream,block_size): 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
chunk_continuous_stream: 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
tokens = list(range(10))
blocks = chunk_continuous_stream(tokens, block_size=3)Output
[[0, 1, 2],
[3, 4, 5],
[6, 7, 8]]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
tokens = [1, 2]
blocks = chunk_continuous_stream(tokens, block_size=5)Output
[]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.
