Tìm hiểu cách kích thước lô ảnh hưởng đến tốc độ và độ chính xác của quá trình huấn luyện máy học. Khám phá các hạn chế về phần cứng và tối ưu hóa. Ultralytics YOLO26 sử dụng AutoBatch.
Trong lĩnh vực học máy , đặc biệt là học sâu , kích thước lô (Batch Size) đề cập đến số lượng ví dụ huấn luyện được sử dụng trong một lần lặp huấn luyện mô hình. Thay vì đưa toàn bộ dữ liệu huấn luyện vào mạng nơ-ron cùng một lúc—điều này thường không thể thực hiện được về mặt tính toán do hạn chế về bộ nhớ—tập dữ liệu được chia thành các tập con nhỏ hơn gọi là lô (batch). Mô hình xử lý một lô, tính toán lỗi và cập nhật trọng số mô hình nội bộ thông qua lan truyền ngược trước khi chuyển sang lô tiếp theo. Siêu tham số này đóng vai trò then chốt trong việc xác định cả tốc độ huấn luyện và tính ổn định của quá trình học.
Việc lựa chọn kích thước lô (batch size) về cơ bản làm thay đổi cách thuật toán tối ưu hóa, thường là một biến thể của thuật toán giảm độ dốc ngẫu nhiên (stochastic gradient descent ), xử lý vấn đề trong phạm vi giá trị hàm mất mát.
Các chuyên gia thường phải lựa chọn kích thước lô dựa trên giới hạn phần cứng hơn là chỉ dựa trên sở thích lý thuyết thuần túy. Các mô hình học sâu, đặc biệt là các kiến trúc lớn như transformer hoặc mạng tích chập nâng cao, được lưu trữ trong VRAM của GPU .
Khi sử dụng NVIDIA CUDA để tăng tốc, VRAM phải chứa các tham số mô hình, lô dữ liệu đầu vào và các đầu ra kích hoạt trung gian cần thiết cho việc tính toán gradient. Nếu kích thước lô vượt quá bộ nhớ khả dụng, quá trình huấn luyện sẽ bị lỗi "Hết bộ nhớ" (Out of Memory - OOM). Các kỹ thuật như huấn luyện độ chính xác hỗn hợp thường được sử dụng để giảm mức sử dụng bộ nhớ, cho phép kích thước lô lớn hơn trên cùng một phần cứng.
Để cấu hình quá trình huấn luyện hiệu quả, điều cần thiết là phải phân biệt kích thước lô (batch size) với các yếu tố thời gian khác trong vòng lặp huấn luyện.
Điều chỉnh kích thước lô là một việc cần thiết thường xuyên khi triển khai các giải pháp thị giác máy tính trong nhiều ngành công nghiệp khác nhau.
Khi sử dụng Ultralytics Python bưu kiệnViệc thiết lập kích thước lô rất đơn giản. Bạn có thể chỉ định một số nguyên cố định hoặc sử dụng giá trị động. batch=-1 cài đặt, sử dụng Tính năng AutoBatch Tự động tính toán kích thước lô tối đa mà phần cứng của bạn có thể xử lý một cách an toàn.
Ví dụ sau đây minh họa cách huấn luyện mô hình YOLO26 — tiêu chuẩn mới nhất về tốc độ và độ chính xác — sử dụng thiết lập batch cụ thể.
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train on the COCO8 dataset
# batch=16 is manually set.
# Alternatively, use batch=-1 for auto-tuning based on available GPU memory.
results = model.train(data="coco8.yaml", epochs=5, batch=16)
Để quản lý các thí nghiệm quy mô lớn và trực quan hóa cách các kích thước lô khác nhau ảnh hưởng đến các chỉ số huấn luyện của bạn, các công cụ như Nền tảng Ultralytics cung cấp một môi trường toàn diện để ghi nhật ký và so sánh các lần chạy. Việc tinh chỉnh siêu tham số kích thước lô một cách chính xác thường là bước cuối cùng để tối ưu hóa hiệu suất của mô hình.