Tiếp theoHướng dẫn tiếp theo
Độ dốc biến mất và bùng nổ
kỹ thuật
HƯỚNG DẪN KỸ THUẬT
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ố.
Nghe hướng dẫn nàyAI thuật lại · ~2 min
Đó 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.
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.
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.
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ể.
Bản tin miễn phí
Ba câu chuyện AI đã được xác minh vào mỗi buổi sáng các ngày trong tuần, được viết bằng tiếng Anh đơn giản. Miễn phí mãi mãi, không có quảng cáo.
Một email mỗi ngày trong tuần. Hủy đăng ký trong một cú nhấp chuột. Chúng tôi không bao giờ bán hoặc chia sẻ địa chỉ của bạn.
Tự kiểm tra
Phản hồi tức thì về mọi câu trả lời và chứng chỉ có thể chia sẻ với ID có thể xác minh sau khi bạn vượt qua khóa học.
Hỗ trợ giáo dục AI miễn phí. AI Understanding là tổ chức phi lợi nhuận 501(c)(3) — không bao giờ có quảng cáo, không có tường phí. Hãy quyên góp
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.
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.
Accumulate gradients across N micro-batches, call optimizer.step() once for the effective batch, then clear gradients before the next window; begin training with cleared buffers.
Đị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ỏ.
Batch-dependent forward computations break exact equivalence.
Tiếp tục học hỏi
Đã chọn thêm hướng dẫn cho chủ đề này
Tiếp theoHướng dẫn tiếp theo
Độ dốc biến mất và bùng nổ
kỹ thuật