Big Data
Big data là dữ liệu quá lớn, quá nhanh hoặc quá đa dạng để các công cụ trên một máy có thể xử lý. Nội dung đề cập ba chữ V, MapReduce và Spark, cùng các dataset làm nền tảng cho AI hiện đại.
Big data là dữ liệu có kích thước, tốc độ phát sinh hoặc sự đa dạng định dạng vượt quá khả năng lưu trữ và xử lý của một máy đơn lẻ cùng các công cụ cơ sở dữ liệu truyền thống, vì vậy dữ liệu được phân tán trên các cụm máy cùng xử lý song song. Năm 2001, nhà phân tích Doug Laney của META Group mô tả thách thức này bằng ba chữ V: volume, lượng dữ liệu; velocity, tốc độ dữ liệu đến và cần được xử lý; variety, sự đa dạng gồm bảng có cấu trúc, log, văn bản, ảnh, âm thanh và video. Các định nghĩa sau này bổ sung veracity, mức độ đáng tin cậy của dữ liệu, và value. Với machine learning, big data vừa là nguyên liệu thô vừa là bài toán kỹ thuật: model cải thiện nhờ nhiều dữ liệu huấn luyện hơn, còn pipeline thu thập, làm sạch và cung cấp dữ liệu chiếm phần lớn công sức xây dựng model.
Big data trong AI và thị giác máy tính#
Deep learning phát triển song song với các dataset quá lớn để lưu trên một đĩa. ImageNet, ra mắt năm 2009, phát triển lên hơn 14 triệu ảnh có nhãn; 1,28 triệu ảnh huấn luyện của thử thách gồm 1.000 lớp đã được dùng để huấn luyện mạng neural tích chập AlexNet, model chiến thắng cuộc thi năm 2012. Dataset SA-1B của Meta, phát hành năm 2023 cùng với Segment Anything Model, có 11 triệu ảnh và 1,1 tỷ mask phân đoạn; Meta cũng tiền huấn luyện Llama 3 trên hơn 15 nghìn tỷ token văn bản. Quy luật mở rộng quy mô giải thích vì sao các bộ dữ liệu như vậy mang lại hiệu quả: loss giảm theo cách có thể dự đoán khi dữ liệu, tham số và compute cùng tăng.
Trong thị giác máy tính, volume đến từ các hệ thống camera và cảm biến. Một xe tự hành ghi lại luồng camera, radar và lidar trong mỗi giờ hoạt động; nhà máy và cửa hàng bổ sung hàng nghìn luồng video liên tục. Velocity quan trọng khi cần có kết quả ngay khi dữ liệu đến, chẳng hạn suy luận thời gian thực trên video giao thông hoặc dây chuyền sản xuất. Variety bao gồm ảnh và video cùng với chú thích, metadata cảm biến và log. Dữ liệu chỉ hữu ích hơn khi nhãn chính xác, vì vậy dataset thị giác quy mô lớn cần làm sạch dữ liệu, khử trùng lặp và active learning để chọn những ảnh mới đáng gán nhãn.
Big data được lưu trữ và xử lý như thế nào#
Hệ thống big data mở rộng theo chiều ngang: phân tán dữ liệu và tính toán trên nhiều máy phổ thông thay vì dùng một máy chủ lớn hơn. Bài báo MapReduce năm 2004 của Google mô tả mô hình được Apache Hadoop mã nguồn mở phổ biến rộng rãi: chia đầu vào thành các shard, chạy hàm map song song trên từng shard tại máy lưu trữ shard đó, rồi reduce các kết quả từng phần thành một kết quả duy nhất. Apache Spark, được khởi xướng tại UC Berkeley năm 2009, giữ các kết quả trung gian trong bộ nhớ, nhờ đó các tác vụ lặp như huấn luyện model nhanh hơn nhiều so với MapReduce dựa trên đĩa. Các file thô thường nằm trong bộ lưu trữ object trên cloud được tổ chức thành data lake; định dạng dạng cột như Apache Parquet cho phép truy vấn chỉ đọc các cột cần thiết, còn nền tảng streaming như Apache Kafka vận chuyển các sự kiện có tốc độ phát sinh cao.
Ví dụ này thực hiện các bước map và reduce trên ba shard nhãn ảnh bằng thư viện chuẩn của Python:
from collections import Counter
from multiprocessing import Pool
# Ba shard nhãn ảnh; một cluster lưu mỗi shard trên một máy khác nhau
shards = [
["car", "person", "car", "bus"],
["person", "person", "bicycle"],
["car", "person", "dog", "car"],
]
def count_labels(shard):
"""Map step: count the labels in one shard."""
return Counter(shard)
if __name__ == "__main__":
with Pool(processes=3) as pool:
partial_counts = pool.map(count_labels, shards) # một tiến trình worker cho mỗi shard
# Bước Reduce: gộp các số đếm từng phần thành tổng số
totals = sum(partial_counts, Counter())
print(totals.most_common())Mỗi shard được đếm trong tiến trình riêng, rồi bước reduce gộp các số đếm từng phần thành [('car', 4), ('person', 4), ('bus', 1), ('bicycle', 1), ('dog', 1)]. Spark và Hadoop thực hiện hai bước tương tự trên hàng nghìn máy, gửi mã map đến các máy đang lưu từng shard.
Huấn luyện model trên big data#
Một lần huấn luyện đọc big data theo từng batch. Data loader giải mã mỗi lần từ vài chục đến vài trăm ảnh từ đĩa cục bộ hoặc object storage thông qua một số tiến trình worker, nên không cần nạp toàn bộ dataset vào bộ nhớ; huấn luyện phân tán chia mỗi batch trên nhiều GPU. Với tác vụ phát hiện vật thể, tập phát hiện Open Images V7 của Google có dung lượng tải xuống 561 GB, gồm 1,74 triệu ảnh huấn luyện thuộc 601 lớp—nhiều hơn khả năng chứa trong RAM của hầu hết máy tính. Khi được yêu cầu cache dataset trong bộ nhớ bằng cache="ram", huấn luyện Ultralytics YOLO ước tính dung lượng sau giải mã từ 30 ảnh ngẫu nhiên và chỉ cache nếu RAM còn trống đủ chứa gấp đôi ước tính đó; dataset lớn hơn được đọc và giải mã từ đĩa ở mỗi epoch.
Big data và các thuật ngữ liên quan#
- Khai phá dữ liệu: Tìm kiếm mẫu hình, điểm bất thường và mối liên hệ trong dữ liệu ở mọi quy mô, thường được thực hiện trên nền tảng big data.
- Phân tích dữ liệu: Truy vấn, tóm tắt và trực quan hóa dữ liệu để hỗ trợ ra quyết định; phân tích big data là phần cần đến các engine phân tán.
- AI lấy dữ liệu làm trọng tâm: Cải thiện model bằng cách nâng cao chất lượng và độ bao phủ của dữ liệu—điều đặc biệt quan trọng khi dataset quá lớn để kiểm tra thủ công.










