Ultralytics YOLO27:
Quay lại bảng thuật ngữ Ultralytics

Gradient Accumulation

Tìm hiểu cách gradient accumulation cho phép sử dụng batch size hiệu dụng lớn hơn trên GPU có memory hạn chế, cùng hướng dẫn thực tiễn về PyTorch và Ultralytics YOLO.

Tích lũy gradient là một kỹ thuật huấn luyện, trong đó các gradient từ một số batch nhỏ, gọi là microbatch, được cộng dồn trước khi thực hiện một lần cập nhật trọng số model. Kỹ thuật này xấp xỉ việc huấn luyện với kích thước batch lớn hơn khi bộ nhớ GPU khả dụng không thể chứa toàn bộ batch cùng lúc. Điều này giúp gradient descent tiêu tốn nhiều bộ nhớ trở nên khả thi mà không cần thay đổi kiến trúc model hoặc giảm độ phân giải đầu vào.

Cách thức hoạt động của tích lũy Gradient#

Trong quá trình huấn luyện thông thường, mỗi batch trải qua ba bước chính: tính loss, sử dụng backpropagation để tính gradient, và để optimizer cập nhật trọng số model. Sau đó, các gradient được xóa trước batch tiếp theo.

Tích lũy gradient trì hoãn việc cập nhật của optimizer. Mỗi microbatch thực hiện một lượt lan truyền xuôi và lan truyền ngược, nhưng các gradient của nó vẫn được giữ trong bộ nhớ và cộng với gradient từ các microbatch tiếp theo. Hành vi này bắt nguồn tự nhiên từ thao tác backward của PyTorch, vốn tích lũy các giá trị trong trường gradient của từng parameter.

Sau số bước tích lũy đã cấu hình:

  1. Optimizer cập nhật trọng số model.
  2. Các gradient được đặt lại bằng một thao tác như Optimizer.zero_grad.
  3. Một khoảng tích lũy mới bắt đầu.

Kích thước batch hiệu dụng là:

microbatch size x accumulation steps x number of training devices

Ví dụ, một microbatch gồm 4 ảnh được tích lũy trong 8 bước sẽ hoạt động gần giống như một batch gồm 32 ảnh trên một GPU. Với bốn GPU, kích thước batch hiệu dụng toàn cục sẽ là 128.

Ảnh hưởng đến Bộ nhớ, Tốc độ và Quá trình học#

Tích lũy gradient làm giảm bộ nhớ đỉnh cần cho activation vì mỗi lần chỉ có một microbatch đi qua network. Kỹ thuật này không làm giảm đáng kể bộ nhớ được sử dụng bởi parameter của model, gradient hoặc trạng thái của optimizer.

Kỹ thuật này cũng thường không làm tăng tốc quá trình huấn luyện. Việc xử lý tám microbatch vẫn cần tám lượt lan truyền xuôi và lan truyền ngược, đồng thời các batch nhỏ hơn có thể sử dụng GPU kém hiệu quả hơn. Lợi ích chính là đưa một batch hiệu dụng mong muốn vào giới hạn bộ nhớ. Một lợi ích phụ có thể xuất hiện trong huấn luyện phân tán, khi các implementation có thể tránh đồng bộ gradient cho đến cuối khoảng tích lũy bằng các tính năng như DistributedDataParallel no_sync.

Một implementation thủ công thường chia loss của mỗi microbatch cho số bước tích lũy để gradient kết quả đại diện cho giá trị trung bình thay vì tổng. Các trainer cấp cao có thể tự động xử lý việc chuẩn hóa, vì vậy việc áp dụng thêm phép scale có thể tạo ra các lần cập nhật không chính xác.

Tích lũy có thể xấp xỉ một batch lớn thực sự, nhưng kết quả không phải lúc nào cũng giống hệt nhau. Các thống kê của batch normalization được tính từ từng microbatch, trong khi các phép toán ngẫu nhiên và thứ tự tính toán số thực cũng có thể tạo ra khác biệt. Do đó, learning rate có thể cần được kiểm chứng thay vì tự động scale.

Các Kỹ thuật Liên quan và Khác biệt Chính#

Tích lũy gradient thường bị nhầm lẫn với các kỹ thuật khác về bộ nhớ hoặc độ ổn định:

  • Gradient checkpointing giảm bộ nhớ activation bằng cách tính toán lại các thao tác được chọn trong lượt lan truyền xuôi trong quá trình backpropagation. Tài liệu checkpointing activation của PyTorch mô tả sự đánh đổi giữa compute và bộ nhớ này. Ngược lại, tích lũy chia một batch lớn thành các microbatch nhỏ hơn.
  • Mixed precision lưu trữ hoặc tính toán các thao tác được chọn bằng các kiểu dữ liệu có độ chính xác thấp hơn. Kỹ thuật này có thể giảm bộ nhớ và cải thiện throughput, trong khi tích lũy thay đổi tần suất optimizer cập nhật. Hai kỹ thuật có thể được kết hợp bằng cách tuân theo quy trình tích lũy với automatic mixed precision chính xác.
  • Gradient clipping giới hạn độ lớn của gradient để giảm sự bất ổn do các lần cập nhật lớn bất thường. Kỹ thuật này không tạo ra batch hiệu dụng lớn hơn. Khi kết hợp với tích lũy, clipping thường nên được thực hiện sau khi gradient hoàn chỉnh đã được tích lũy, bằng một thao tác như clip_grad_norm.

Các ứng dụng trong thực tế#

Trong bài toán phân đoạn ảnh y tế độ phân giải cao, một GPU 12 GB có thể chỉ chứa được hai ảnh quét lớn cùng lúc. Việc tích lũy gradient qua tám microbatch tạo ra batch hiệu dụng gồm 16 ảnh mà vẫn duy trì độ phân giải cần thiết để xác định các cấu trúc giải phẫu nhỏ. Đổi lại, khoảng thời gian giữa các lần cập nhật của optimizer sẽ dài hơn.

Đối với bài toán phát hiện vật thể trên ảnh chụp từ trên không, một team kỹ thuật có thể huấn luyện trên bốn GPU với sáu ảnh trên mỗi thiết bị và bốn bước tích lũy. Batch hiệu dụng toàn cục là 96 ảnh. Điều này có thể giúp ổn định các lần cập nhật cho những cảnh chứa nhiều phương tiện hoặc tòa nhà nhỏ, đồng thời giữ cho mỗi thiết bị nằm trong giới hạn bộ nhớ. Các team có thể quản lý thử nghiệm cloud, dataset và các lượt chạy huấn luyện thông qua huấn luyện cloud trên Ultralytics Platform.

Tích lũy Gradient với Ultralytics YOLO#

Quy trình huấn luyện model của Ultralytics xác định hành vi tích lũy từ các thiết lập batch vật lý và nbs danh nghĩa. Với batch=4nbs=64, trainer hướng đến batch danh nghĩa là 64 bằng cách trì hoãn các lần cập nhật của optimizer qua nhiều microbatch.

from ultralytics import YOLO

# Load a pretrained YOLO26 detection model
model = YOLO("yolo26n.pt")

# Use a small physical batch and a larger nominal batch
results = model.train(
    data="coco8.yaml",
    epochs=10,
    batch=4,
    nbs=64,
)

Trainer cấp cao quản lý backpropagation, tích lũy, các bước của optimizer và việc xóa gradient. Hành vi này được mô tả trong tài liệu tham chiếu Ultralytics BaseTrainer. Trong thực tế, hãy chọn microbatch lớn nhất có thể chạy ổn định, tính batch hiệu dụng mong muốn và so sánh kết quả validation khi thay đổi số bước tích lũy, learning rate hoặc số lượng thiết bị.

Explore solutions

Thị giác máy tính cho hình ảnh trên không

Thị giác máy tính cho hình ảnh trên không

Biến đổi hình ảnh từ máyδ bay không người lái và ảnh chụp trên không thành thông tin chi tiết thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Mang thị giác AI đến với hoạt động giám sát trên không bằng các model Ultralytics YOLO. Cung cấp sức mạnh cho máy bay không người lái, quy trình hàng không vũ trụ, bảo tồn môi trường & ngành công nghiệp địa không gian với các giải pháp thị giác máy tính.
Tìm hiểu thêm

Bảo vệ mọi địa điểm bằng các model Ultralytics YOLO. Thị giác AI cung cấp sức mạnh cho việc giám sát chu vi, phát hiện mối đe dọa, nhận diện biển số xe và an toàn nơi làm việc.
Tìm hiểu thêm
Thị giác máy tính trong robotics

Thị giác máy tính trong robotics

Nâng cao năng lực cho máy móc thông minh hơn với các model Ultralytics YOLO. Vision AI trong robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh gọn logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ tracking hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp insight khách hàng thông minh hơn.
Tìm hiểu thêm
Computer vision trong healthcare

Computer vision trong healthcare

Xây dựng các giải pháp healthcare với các model Ultralytics YOLO. Vision AI trong healthcare thúc đẩy chẩn đoán hình ảnh nhanh hơn, chẩn đoán thông minh hơn và giám sát bệnh nhân.
Tìm hiểu thêm
Computer vision trong sản xuất

Computer vision trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Computer vision trong ngành ô tô

Computer vision trong ngành ô tô

Ứng dụng computer vision trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Computer vision trong nông nghiệp

Computer vision trong nông nghiệp

Đưa vision AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính cho hình ảnh trên không

Thị giác máy tính cho hình ảnh trên không

Biến đổi hình ảnh từ máyδ bay không người lái và ảnh chụp trên không thành thông tin chi tiết thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Mang thị giác AI đến với hoạt động giám sát trên không bằng các model Ultralytics YOLO. Cung cấp sức mạnh cho máy bay không người lái, quy trình hàng không vũ trụ, bảo tồn môi trường & ngành công nghiệp địa không gian với các giải pháp thị giác máy tính.
Tìm hiểu thêm

Bảo vệ mọi địa điểm bằng các model Ultralytics YOLO. Thị giác AI cung cấp sức mạnh cho việc giám sát chu vi, phát hiện mối đe dọa, nhận diện biển số xe và an toàn nơi làm việc.
Tìm hiểu thêm
Thị giác máy tính trong robotics

Thị giác máy tính trong robotics

Nâng cao năng lực cho máy móc thông minh hơn với các model Ultralytics YOLO. Vision AI trong robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh gọn logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ tracking hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp insight khách hàng thông minh hơn.
Tìm hiểu thêm
Computer vision trong healthcare

Computer vision trong healthcare

Xây dựng các giải pháp healthcare với các model Ultralytics YOLO. Vision AI trong healthcare thúc đẩy chẩn đoán hình ảnh nhanh hơn, chẩn đoán thông minh hơn và giám sát bệnh nhân.
Tìm hiểu thêm
Computer vision trong sản xuất

Computer vision trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Computer vision trong ngành ô tô

Computer vision trong ngành ô tô

Ứng dụng computer vision trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Computer vision trong nông nghiệp

Computer vision trong nông nghiệp

Đưa vision AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính cho hình ảnh trên không

Thị giác máy tính cho hình ảnh trên không

Biến đổi hình ảnh từ máyδ bay không người lái và ảnh chụp trên không thành thông tin chi tiết thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Mang thị giác AI đến với hoạt động giám sát trên không bằng các model Ultralytics YOLO. Cung cấp sức mạnh cho máy bay không người lái, quy trình hàng không vũ trụ, bảo tồn môi trường & ngành công nghiệp địa không gian với các giải pháp thị giác máy tính.
Tìm hiểu thêm

Bảo vệ mọi địa điểm bằng các model Ultralytics YOLO. Thị giác AI cung cấp sức mạnh cho việc giám sát chu vi, phát hiện mối đe dọa, nhận diện biển số xe và an toàn nơi làm việc.
Tìm hiểu thêm
Thị giác máy tính trong robotics

Thị giác máy tính trong robotics

Nâng cao năng lực cho máy móc thông minh hơn với các model Ultralytics YOLO. Vision AI trong robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh gọn logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ tracking hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp insight khách hàng thông minh hơn.
Tìm hiểu thêm
Computer vision trong healthcare

Computer vision trong healthcare

Xây dựng các giải pháp healthcare với các model Ultralytics YOLO. Vision AI trong healthcare thúc đẩy chẩn đoán hình ảnh nhanh hơn, chẩn đoán thông minh hơn và giám sát bệnh nhân.
Tìm hiểu thêm
Computer vision trong sản xuất

Computer vision trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Computer vision trong ngành ô tô

Computer vision trong ngành ô tô

Ứng dụng computer vision trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Computer vision trong nông nghiệp

Computer vision trong nông nghiệp

Đưa vision AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm

Hãy cùng xây dựng tương lai của AI!

Bắt đầu hành trình của bạn với tương lai của machine learning