Sự đánh đổi tính toán lại kích hoạt
Tính toán lại kích hoạt (điểm kiểm tra độ dốc hoặc kích hoạt) giúp tiết kiệm bộ nhớ GPU trong quá trình đào tạo bằng cách loại bỏ các kích hoạt trung gian trong quá trình chuyển tiếp và tính toán lại chúng trong quá trình chuyển ngược.
Tổng quan
It trades extra compute for the ability to train larger models or longer sequences on the same hardware.
Lặn sâu
Lan truyền ngược cần kích hoạt chuyển tiếp để tính toán độ dốc, do đó, theo mặc định, đầu ra của mỗi lớp đều được lưu trữ — chi phí bộ nhớ rất lớn tăng theo kích thước mô hình, kích thước lô và độ dài chuỗi. Quá trình tính toán lại kích hoạt chỉ giữ lại một số tensor 'điểm kiểm tra' (thường chỉ là ranh giới lớp) và loại bỏ phần còn lại. Trong quá trình truyền ngược, nó chạy lại tính toán chuyển tiếp giữa các điểm kiểm tra để tạo lại các kích hoạt bị loại bỏ theo yêu cầu. Kết quả kinh điển là với các điểm kiểm tra được đặt trên mỗi lớp sqrt(N), bộ nhớ giảm xuống khoảng O(sqrt(N)) trong khi thêm khoảng một lần chuyển tiếp bổ sung (tính toán nhiều hơn ~ 33%). Các biến thể chọn lọc chỉ tính toán lại các hoạt động rẻ nhưng tốn nhiều bộ nhớ (như chú ý hoặc bỏ học) trong khi lưu vào bộ đệm những hoạt động đắt tiền, tận dụng tối đa mức tiết kiệm bộ nhớ với chi phí tính toán lại ít hơn nhiều.
Hiểu biết kỹ thuật
Sự cân bằng cơ bản là bộ nhớ so với FLOP. Việc tính toán lại toàn bộ sẽ thêm một lần chuyển tiếp bổ sung cho mỗi bước (chậm hơn ~ 30-40%) nhưng có thể cắt giảm bộ nhớ kích hoạt theo một bậc độ lớn. Bước đi thông minh là điểm kiểm tra có chọn lọc: xác định các hoạt động có bộ nhớ lớn nhưng tính toán rẻ (softmax, layernorm, GELU, điểm chú ý) và chỉ tính toán lại những hoạt động đó, trong khi vẫn lưu trữ kết quả của các GEMM đắt tiền — giảm thiểu lãng phí tính toán.
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 sự đánh đổi tính toán lại kích hoạt
Việc tính toán lại ngày càng được tự động hóa và có chọn lọc. Các khung giờ đây lập hồ sơ bộ nhớ của từng hoạt động và chi phí FLOP để chọn điểm kiểm tra tối ưu, đồng thời kết hợp tính toán lại với việc kích hoạt giảm tải cho CPU/NVMe và với các chiến lược song song. Khi độ dài bối cảnh và kích thước mô hình tiếp tục tăng, hãy mong đợi các chính sách dựa trên trình biên dịch (trong PyTorch, JAX/XLA) sẽ tự động chọn các quyết định tính toán lại theo mỗi hoạt động, cộng với sự chồng chéo chặt chẽ hơn của tính toán lại với giao tiếp để các FLOP bổ sung bị ẩn một phần.
Triển khai trong thế giới thực
Huấn luyện một máy biến áp lớn không phù hợp bằng cách kiểm tra từng khối lớp
Sử dụng torch.utils.checkpoint của PyTorch để bọc các khối biến áp và cắt bộ nhớ kích hoạt
Tính toán lại có chọn lọc sự chú ý/softmax trong Megatron-LM để tiết kiệm bộ nhớ với tốc độ chậm tối thiểu
Kích hoạt độ dài chuỗi dài hơn trên ngân sách GPU cố định bằng cách tính toán lại các kích hoạt thay vì lưu trữ chúng
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
Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai.
Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.
Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.
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 Activation Recomputation Tradeoffs quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
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
SmoothQuant và Lượng tử hóa kích hoạt
Câu hỏi thường gặp
What is Activation Recomputation Tradeoffs?
Tính toán lại kích hoạt (điểm kiểm tra độ dốc hoặc kích hoạt) giúp tiết kiệm bộ nhớ GPU trong quá trình đào tạo bằng cách loại bỏ các kích hoạt trung gian trong quá trình chuyển tiếp và tính toán lại chúng trong quá trình chuyển ngược. Nó đánh đổi khả năng tính toán bổ sung để có khả năng huấn luyện các mô hình lớn hơn hoặc các chuỗi dài hơn trên cùng một phần cứng.
Việc tính toán lại kích hoạt sẽ đánh đổi điều gì để tiết kiệm bộ nhớ?
Quá trình tính toán lại sẽ loại bỏ các kích hoạt đã lưu trữ và tái tạo chúng theo chiều ngược lại, tốn thêm công sức tính toán để giảm mức sử dụng bộ nhớ.
Tại sao các kích hoạt chuyển tiếp thường được lưu trữ?
Quá trình lùi sử dụng các kích hoạt tiến để tính toán độ dốc, do đó, theo mặc định, chúng được lưu trong bộ nhớ cho đến khi quá trình lùi chạy.
Việc tính toán lại kích hoạt đầy đủ thường thêm bao nhiêu tính toán bổ sung?
Quá trình tính toán lại toàn bộ sẽ chạy lại tính toán chuyển tiếp trong quá trình chuyển ngược, thêm khoảng một lần chuyển tiếp bổ sung — theo thứ tự tính toán nhiều hơn 30-40%.
Ý tưởng đằng sau việc tính toán lại có chọn lọc (không đầy đủ) là gì?
Tính toán lại có chọn lọc nhắm mục tiêu các hoạt động sử dụng nhiều bộ nhớ nhưng tính toán ít (như softmax hoặc layernorm), đồng thời lưu vào bộ nhớ đệm các kết quả GEMM đắt tiền để giảm thiểu FLOP lãng phí.
Kỹ thuật bổ sung nào thường được kết hợp với tính toán lại để tiết kiệm nhiều bộ nhớ hơn?
Giảm tải kích hoạt sẽ chuyển một số kích hoạt sang bộ lưu trữ CPU/NVMe và thường được kết hợp với tính toán lại và xử lý song song để tiết kiệm bộ nhớ hơn nữa.