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

Điểm kiểm tra độ dốc

Điểm kiểm tra gradient (còn gọi là điểm kiểm tra kích hoạt) là một thủ thuật tiết kiệm bộ nhớ giúp loại bỏ hầu hết 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 một cách nhanh chóng trong quá trình truyền ngược.

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

Tổng quan

Nó cho phép bạn đào tạo các mạng sâu hơn, lớn hơn bằng cách trao đổi điện toán bổ sung để sử dụng bộ nhớ thấp hơn nhiều.

Lặn sâu

Mạng nơ-ron huấn luyện thường lưu trữ các kích hoạt của mọi lớp trong quá trình chuyển tiếp vì quá trình lan truyền ngược cần chúng để tính toán độ dốc. Đối với các mô hình sâu, những kích hoạt này chiếm ưu thế trong bộ nhớ. Thay vào đó, điểm kiểm tra độ dốc chỉ lưu các kích hoạt ở một tập hợp các lớp 'điểm kiểm tra' thưa thớt và loại bỏ phần còn lại. Khi backprop đến một khu vực có kích hoạt bị hủy, nó sẽ chạy lại tính toán chuyển tiếp cho phân đoạn đó để tạo lại những gì nó cần, sau đó tiếp tục. Với các điểm kiểm tra được đặt gần như ở mọi lớp căn bậc hai của N, bộ nhớ dành cho kích hoạt giảm từ thứ tự N xuống thứ tự căn bậc hai của N, trong khi khả năng tính toán chỉ tăng thêm khoảng một lần chuyển tiếp (chậm hơn khoảng 20-30%). Điều này giúp có thể lắp các kích thước lô lớn hơn hoặc các máy biến áp sâu hơn trên cùng một GPU.

Hiểu biết kỹ thuật

Kỹ thuật này khai thác sự cân bằng giữa thời gian và bộ nhớ. Lưu trữ tất cả các kích hoạt nhanh nhưng ngốn bộ nhớ; việc tính toán lại chúng trên các máy gia tốc hiện đại không tốn kém so với chi phí khi hết bộ nhớ. Các khung như PyTorch (torch.utils.checkpoint) bao bọc một mô-đun để đầu ra chuyển tiếp của nó được lưu nhưng các phần bên trong của nó được tính toán lại trong quá trình lùi. Việc chọn vị trí điểm kiểm tra rất quan trọng: khoảng cách đều nhau của các phân đoạn khoảng sqrt(N) sẽ giảm thiểu tổng bộ nhớ trong khi chỉ thêm một lượt chuyển tiếp bổ sung duy nhất của tổng thể điện 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 điểm kiểm tra độ dốc

Điểm kiểm tra gradient hiện là tiêu chuẩn trong đào tạo mô hình lớn và ngày càng được tự động hóa, với các thư viện chọn vị trí điểm kiểm tra tối ưu cho bạn. Nó kết hợp tự nhiên với FSDP, độ chính xác hỗn hợp và giảm tải để đẩy kích thước mô hình lên cao hơn. Yêu cầu điểm kiểm tra 'có chọn lọc' chỉ tính toán lại các hoạt động rẻ tiền trong khi vẫn lưu trữ các hoạt động đắt tiền (như ma trận chú ý), cùng với các phương pháp tiếp cận dựa trên trình biên dịch trong các công cụ như torch.compile của PyTorch tự động quyết định những gì cần lưu so với tính toán lại để cân bằng bộ nhớ tốc độ tốt nhất.

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

Huấn luyện một máy biến áp sâu với kích thước lô lớn hơn trên một GPU bằng cách loại bỏ và tính toán lại các kích hoạt lớp.

Tinh chỉnh các mô hình tầm nhìn trên hình ảnh có độ phân giải cao trong đó bản đồ kích hoạt sẽ làm tràn bộ nhớ GPU.

Ôm khuôn mặt Transformers cho phép gradient_checkpointing=True phù hợp với các mô hình tỷ tham số trong quá trình tinh chỉnh.

Kết hợp điểm kiểm tra với FSDP để cả tham số và kích hoạt đều được giữ ở mức nhỏ, cho phép đào tạo các mô hình ngôn ngữ rất lớn.

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 Checkpointing 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

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

Điểm kiểm tra độ dốc là gì?

Điểm kiểm tra gradient (còn gọi là điểm kiểm tra kích hoạt) là một thủ thuật tiết kiệm bộ nhớ giúp loại bỏ hầu hết 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 một cách nhanh chóng trong quá trình truyền ngược. Nó cho phép bạn đào tạo các mạng sâu hơn, lớn hơn bằng cách trao đổi điện toán bổ sung để sử dụng bộ nhớ thấp hơn nhiều.

Điểm kiểm tra độ dốc chủ yếu giao dịch gì để tiết kiệm bộ nhớ?

Điểm kiểm tra gradient sẽ tính toán lại các kích hoạt bị loại bỏ trong quá trình truyền ngược, tiêu tốn nhiều điện toán hơn để đổi lấy bộ nhớ giảm đáng kể.

Tại sao kích hoạt thường được lưu trữ trong quá trình chuyển tiếp?

Backprop tính toán độ dốc bằng cách sử dụng các kích hoạt trung gian từ lượt chuyển tiếp, do đó chúng phải có sẵn trừ khi chúng được tính toán lại.

Bộ nhớ kích hoạt sẽ mở rộng như thế nào nếu các điểm kiểm tra được đặt ở mỗi lớp sqrt(N) trong mạng N-layer?

Khoảng cách các điểm kiểm tra về mỗi lớp căn bậc hai của N làm giảm bộ nhớ kích hoạt được lưu trữ từ thứ tự N xuống thứ tự sqrt(N).

Điểm kiểm tra độ dốc được đặt đúng chỗ thường bổ sung thêm khoảng bao nhiêu điện toán?

Với vị trí điểm kiểm tra tốt, chi phí hoạt động gần như chỉ là một lần chuyển tiếp bổ sung, thường giảm tốc độ khoảng 20-30%.

Trong PyTorch, tiện ích nào thường được sử dụng để áp dụng điểm kiểm tra độ dốc cho mô-đun?

torch.utils.checkpoint bao bọc một mô-đun để các kích hoạt bên trong của nó được tính toán lại trong quá trình lùi thay vì được lưu trữ.