Tích lũy gradient

Cách các mô hình thực sự học, từ gradient descent thuần túy đến Adam

Tích lũy gradient mô phỏng một batch lớn hơn khi bộ nhớ bị giới hạn. Thay vì thực hiện bước cập nhật sau mỗi micro-batch, bạn cộng dồn gradient từ nhiều micro-batch, rồi thực hiện một bước cập nhật của bộ tối ưu hóa.

Kích thước batch hiệu dụng là kích thước micro-batch nhân với số bước tích lũy. Điều này cho phép một GPU nhỏ hành xử giống như nó đã huấn luyện trên một batch lớn hơn.

Một thùng hứng nước mưa nắm bắt được ý tưởng này. Một cái cốc nhỏ không thể tưới cả khu vườn cùng một lúc, nên bạn đổ nhiều cốc vào một thùng rồi dùng lượng nước trong thùng. Tích lũy gradient thu thập nhiều đóng góp gradient nhỏ trước khi thực hiện một bước cập nhật. Hình bên dưới chính là quá trình này: mỗi số hạng mới là một cốc nước, và các cột đang tăng lên là thùng nước đang đầy dần tới tổng số của nó. Tích lũy gradient là một tổng riêng phần của các gradient mà bạn đổi lấy một bước cập nhật duy nhất.

Vị trí của nó trong MLTích lũy gradient thường gặp với các mô hình ngôn ngữ lớn, ảnh lớn, và bộ nhớ GPU hạn chế. Nó cho phép các nhóm chọn một kích thước batch hiệu dụng mà không đòi hỏi toàn bộ batch đó phải vừa cùng một lúc.
▶ Tích lũy gradient
← Chia tỷ lệ kích thước batchKhởi tạo & thang đo tín hiệu →