Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Kích thước Batch

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.

Động lực của việc đào tạo theo nhóm

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.

  • Kích thước lô nhỏ: Sử dụng số lượng lô nhỏ (ví dụ: 8 hoặc 16) dẫn đến các bản cập nhật "nhiễu". Mặc dù việc ước tính gradient kém chính xác hơn đối với toàn bộ tập dữ liệu, nhưng nhiễu này đôi khi có thể giúp mô hình thoát khỏi các cực tiểu cục bộ, có khả năng dẫn đến khả năng khái quát hóa tốt hơn. Tuy nhiên, các lô nhỏ hơn yêu cầu nhiều bản cập nhật hơn mỗi epoch, điều này có thể làm chậm quá trình huấn luyện về thời gian thực do chi phí phát sinh.
  • Kích thước lô lớn: Kích thước lô lớn hơn (ví dụ: 128 hoặc 256) cung cấp ước tính chính xác hơn về độ dốc, dẫn đến sự hội tụ mượt mà hơn của hàm mất mát . Điều này cho phép song song hóa mạnh mẽ trên phần cứng hiện đại, giúp tăng tốc đáng kể quá trình tính toán. Tuy nhiên, nếu kích thước lô quá lớn, mô hình có thể rơi vào các điểm cực tiểu sắc nét, không tối ưu, dẫn đến hiện tượng quá khớp và giảm khả năng khái quát hóa đối với dữ liệu mới.

Ảnh hưởng đến phần cứng và bộ nhớ

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.

Phân biệt các khái niệm liên quan

Để 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.

  • Kích thước lô so với số epoch : Một epoch đại diện cho một lần chạy hoàn chỉnh toàn bộ tập dữ liệu huấn luyện. Kích thước lô xác định số lượng phần dữ liệu được chia nhỏ trong epoch đó. Ví dụ, nếu bạn có 1.000 hình ảnh và kích thước lô là 100, sẽ cần 10 lần lặp để hoàn thành một epoch.
  • Kích thước lô so với số lần lặp : Một lần lặp (hoặc một bước) là quá trình xử lý một lô và cập nhật trọng số. Tổng số lần lặp trong quá trình huấn luyện bằng số lô trên mỗi epoch nhân với tổng số epoch.
  • Kích thước lô so với chuẩn hóa lô : Mặc dù cùng tên gọi, chuẩn hóa lô là một loại lớp cụ thể giúp chuẩn hóa đầu vào của lớp dựa trên giá trị trung bình và phương sai của lô hiện tại. Kỹ thuật này phụ thuộc rất nhiều vào kích thước lô; nếu kích thước lô quá nhỏ (ví dụ: 2), các ước tính thống kê sẽ trở nên không đáng tin cậy, có khả năng làm giảm hiệu suất.

Các Ứng dụng Thực tế

Đ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.

  1. Hình ảnh y tế độ phân giải cao: Trong lĩnh vực trí tuệ nhân tạo ứng dụng trong chăm sóc sức khỏe , các chuyên gia thường làm việc với dữ liệu thể tích 3D như ảnh chụp MRI hoặc CT. Các tập tin này có dung lượng rất lớn và tiêu tốn nhiều bộ nhớ. Để thực hiện các tác vụ như phân tích hình ảnh y tế hoặc phân đoạn hình ảnh phức tạp mà không làm hệ thống bị sập, các kỹ sư thường giảm kích thước lô xuống rất nhỏ, đôi khi thậm chí chỉ là 1. Ở đây, ưu tiên là xử lý chi tiết độ phân giải cao hơn là tốc độ huấn luyện thô.
  2. Kiểm soát chất lượng công nghiệp: Ngược lại, trong ứng dụng AI trong sản xuất , tốc độ là yếu tố tối quan trọng. Các hệ thống tự động kiểm tra sản phẩm trên băng chuyền cần xử lý hàng nghìn hình ảnh mỗi giờ. Trong quá trình suy luận , các kỹ sư có thể tổng hợp các luồng dữ liệu camera thành các lô lớn hơn để tối đa hóa việc sử dụng các thiết bị AI tại biên , đảm bảo thông lượng cao cho việc phát hiện lỗi theo thời gian thực.

Cấu hình kích thước lô trong Python

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.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay