HƯỚNG DẪN KỸ THUẬT

Tích lũy độ dốc

Tích lũy độ dốc cho phép bạn mô phỏng kích thước lô lớn trên bộ nhớ GPU hạn chế bằng cách tính tổng độ dốc qua một số lô nhỏ trước khi cập nhật trọng số.

Đọc trong 2 phútCập nhật lần cuối

Tổng quan

It is the standard workaround for training big models when memory is the bottleneck.

Lặn sâu

Thông thường, bước huấn luyện xử lý một đợt, tính toán độ dốc và cập nhật ngay các tham số. Với việc tích lũy độ dốc, bạn chạy một số lượt tiến và lùi trên các lô vi mô nhỏ hơn, cộng các độ dốc của chúng lại với nhau trong vùng đệm tham số và chỉ gọi bước tối ưu hóa (và không có độ dốc) sau N lô vi mô. Kích thước lô hiệu quả sẽ bằng kích thước lô vi mô nhân với N, mặc dù bộ nhớ tối đa chỉ chứa một lô kích hoạt vi mô. Điều này quan trọng vì nhiều công thức đào tạo giả định các lô lớn để có số liệu thống kê ổn định và vì các mô hình như máy biến áp lớn không thể chứa toàn bộ lô mục tiêu trên một thiết bị. Lưu ý: số liệu thống kê chuẩn hóa theo lô được tính toán trên mỗi vi lô, do đó, chỉ tiêu lớp hoặc chỉ tiêu nhóm sẽ kết hợp tốt hơn với sự tích lũy và bạn phải chia tỷ lệ tổn thất một cách chính xác để duy trì tốc độ học tập hiệu quả ở mức phù hợp.

Hiểu biết kỹ thuật

Bởi vì độ dốc của tổng tổn thất có tính cộng, nên việc tích lũy độ dốc trên N lô vi mô về mặt toán học tương đương với một lô lớn, miễn là bạn tính trung bình đúng cách. Việc triển khai thường chia mỗi tổn thất vi mô cho N trước khi lùi lại, do đó độ dốc tích lũy bằng giá trị trung bình trên toàn bộ lô hiệu quả. Bạn bỏ qua Optimizer.step() và zero_grad() cho đến vi lô thứ N, đánh đổi thời gian tính toán bổ sung để giảm bộ nhớ tối đa.

Tác động chiến lược

Chi phí và ngân sách

Các quyết định về kiến ​​trúc sẽ thúc đẩy hiệu suất và chi phí vận hành trong nhiều năm.

Quyết định rõ ràng hơn

Giáo dục kỹ thuật giúp các nhóm chọn nhóm phù hợp chứ không chỉ nhóm mới nhất.

Kiểm soát chất lượng

Lựa chọn kỹ thuật tốt hơn làm giảm sự cố về độ tin cậy trong sản xuất.

Tương lai của tích lũy gradient

Tích lũy độ dốc sẽ vẫn là đòn bẩy mặc định vì kích thước mô hình vượt quá bộ nhớ của một thiết bị. Nó ngày càng kết hợp với độ chính xác hỗn hợp, điểm kiểm tra kích hoạt, phân mảnh ZeRO và tính song song của quy trình trong các khung như DeepSpeed ​​và FSDP. Mong đợi sự tự động hóa chặt chẽ hơn trong đó các thư viện tự động điều chỉnh các bước tích lũy theo ngân sách bộ nhớ và tầm quan trọng tiếp tục đối với việc tinh chỉnh các mô hình lớn trên phần cứng khiêm tốn, bao gồm cả GPU tiêu dùng, nơi nó mở khóa đào tạo mà lẽ ra là không thể.

Triển khai trong thế giới thực

Tinh chỉnh mô hình ngôn ngữ lớn trên một GPU tiêu dùng bằng cách tích lũy hơn 8 hoặc 16 lô vi mô để đạt được lô hàng trăm hiệu quả.

Đào tạo các mô hình phân đoạn hoặc tầm nhìn có độ phân giải cao trong đó ngay cả một lô 2 cũng phù hợp, nhưng công thức cần một lô 32 hiệu quả.

Hugging Face Trainer và PyTorch Lightning hiển thị cài đặt gradient_accumulation_steps được sử dụng thường xuyên trong các thiết lập VRAM giới hạn.

Tái tạo kết quả lô lớn của bài báo trên phần cứng nhỏ hơn bằng cách khớp với kích thước lô hiệu quả thông qua tích lũy.

Rủi ro & lan can

Tối ưu hóa một điểm chuẩn có thể che giấu những điểm yếu của hệ thống rộng hơn.

Chi phí cơ sở hạ tầng và bảo trì thường được đánh giá thấp.

Khoảng cách về bảo mật và khả năng quan sát có thể tăng lên khi hệ thống trở nên phức tạp hơn.

Lộ trình thực hiện

1

Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai.

2

Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.

3

Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.

4

Chuẩn bị đường dẫn khôi phục và ứng phó sự cố trước khi mở rộng quy mô.

Tiếp tục khám phá

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Gradient Accumulation quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Bắt đầu bài kiểm tra

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Hướng dẫn tiếp theo

Độ dốc biến mất và bùng nổ

Câu hỏi thường gặp

What is Gradient Accumulation?

Tích lũy độ dốc cho phép bạn mô phỏng kích thước lô lớn trên bộ nhớ GPU hạn chế bằng cách tính tổng độ dốc qua một số lô nhỏ trước khi cập nhật trọng số. Đó là giải pháp tiêu chuẩn để đào tạo các mô hình lớn khi bộ nhớ gặp khó khăn.

Tích lũy độ dốc chủ yếu cho phép bạn làm gì?

Bằng cách tính tổng các gradient qua một số lô vi mô trước khi cập nhật, bạn bắt chước một lô lớn mà không lưu tất cả vào bộ nhớ cùng một lúc.

Trong quá trình tích lũy, khi nào bạn gọi bước của trình tối ưu hóa và độ dốc bằng 0?

Bạn tích lũy gradient trên N vi lô và chỉ cập nhật một lần vào cuối chu kỳ.

Lớp chuẩn hóa nào kết hợp rõ ràng hơn với sự tích lũy độ dốc?

Định mức hàng loạt tính toán số liệu thống kê trên mỗi vi lô, do đó, định mức lớp hoặc nhóm sẽ tránh được sự không khớp với các vi lô nhỏ.