Xử lý hàng loạt mini cung cấp một số lợi ích trong quá trình xử lý hàng loạt, đặc biệt là khi sử dụng các khung như JAX cho các tính toán số và các nhiệm vụ học máy. Dưới đây là một số lợi thế chính:
1. Hiệu quả bộ nhớ: Xử lý hàng loạt đòi hỏi ít bộ nhớ hơn so với xử lý toàn bộ. Điều này là do chỉ một phần của bộ dữ liệu được tải vào bộ nhớ tại bất kỳ thời điểm nào, khiến việc xử lý các bộ dữ liệu lớn có thể không phù hợp với bộ nhớ nếu không [3] [4].
2. Cập nhật gradient nhanh hơn: Các lô mini cho phép cập nhật thường xuyên hơn các tham số mô hình. Điều này là do độ dốc được tính toán và cập nhật sau mỗi lô mini, thay vì chờ toàn bộ bộ dữ liệu được xử lý. Điều này dẫn đến sự hội tụ nhanh hơn trong nhiều trường hợp [3] [4].
3. Tiêm tiếng ồn và tránh các điểm yên ngựa: Xử lý hàng loạt giới thiệu tiếng ồn vào các bản cập nhật gradient, điều này có thể giúp tránh các điểm tối thiểu hoặc yên ngựa cục bộ trong quá trình tối ưu hóa. Tiếng ồn này có thể dẫn đến sự hội tụ mạnh mẽ hơn so với các bản cập nhật xác định của xử lý toàn bộ [3] [4].
4. Tính linh hoạt và khả năng mở rộng: Các lô mini đặc biệt hữu ích khi xử lý các bộ dữ liệu lớn hoặc khi tài nguyên tính toán bị hạn chế. Chúng cho phép xử lý song song và có thể dễ dàng phân phối trên nhiều GPU hoặc máy móc, tăng cường khả năng mở rộng [2] [4].
5. Xử lý thời gian thực hoặc gần thời gian thực: Mặc dù không ngay lập tức như xử lý luồng, xử lý hàng loạt có thể cung cấp kết quả gần thời gian thực, khiến nó phù hợp với các ứng dụng trong đó những hiểu biết kịp thời là rất quan trọng nhưng không nhất thiết phải tức thời [2] .
Trong JAX, việc sử dụng các lô mini có thể được quản lý hiệu quả với các công cụ như `vmap`, cho phép các chức năng được áp dụng trên các lô dữ liệu mà không cần các vòng lặp rõ ràng hoặc xử lý kích thước hàng loạt. Điều này đơn giản hóa mã và tận dụng các tối ưu hóa của JAX để thực hiện song song trên các bộ tăng tốc phần cứng như GPU và TPU [1] [9].
Trích dẫn:[1)
[2] https://www.upsolver.com/blog/batch-stream-a-cheat-heet
[3] https://datascience.stackexchange.com/questions/16807/why-mini-batch-size-is-better-than-one-single-batch-with-all-training-data
[4] https://datascience
[5] https:
[6] https://www.kaggle.com/code/residentmario/full-batch-mini-batch-and-online-learning
.
[8] https://www.baeldung.com/cs/mini-batch-vs-single-batch-training-data
[9] https://stackoverflow.com/questions/75020544/is-vmap-efficient-as-compared-to-batched-ops