Tổng quan
ZeRO (Trình tối ưu hóa dự phòng bằng không) loại bỏ việc sao chép lãng phí bộ nhớ của tính song song dữ liệu bằng cách bảo vệ trạng thái tối ưu hóa, độ dốc và trọng số trên các GPU. Nó cho phép bạn đào tạo các mô hình khổng lồ với sự đơn giản của song song dữ liệu nhưng chỉ chiếm một phần nhỏ bộ nhớ trên mỗi GPU.
ZeRO và Sharded Optimizers là một khối xây dựng kỹ thuật ảnh hưởng đến chất lượng mô hình, chi phí cơ sở hạ tầng, độ trễ và độ tin cậy trên quy mô lớn.
Lặn sâu
Trong song song dữ liệu thông thường, mỗi GPU đều lưu trữ một bản sao đầy đủ dự phòng của trạng thái tối ưu hóa, độ dốc và tham số, điều này cực kỳ lãng phí, đặc biệt đối với Adam, nơi trạng thái tối ưu hóa có thể lớn gấp vài lần kích thước của chính mô hình. ZeRO, được giới thiệu bởi Microsoft trong DeepSpeed, loại bỏ sự dư thừa này bằng cách phân vùng các tensor này trên các GPU để mỗi thiết bị chỉ sở hữu một lát. ZeRO có ba giai đoạn lũy tiến: Trạng thái tối ưu hóa phân đoạn Giai đoạn 1, Giai đoạn 2 thêm phân đoạn độ dốc và Giai đoạn 3 tự phân chia các tham số. Khi cần, GPU sẽ thu thập các phần còn thiếu thông qua giao tiếp, tính toán rồi giải phóng chúng. Kết quả là bộ nhớ trên mỗi GPU thấp hơn đáng kể, cho phép đào tạo từ hàng tỷ đến hàng nghìn tỷ tham số, trong khi vẫn duy trì mô hình lập trình song song dữ liệu dễ dàng.
Hiểu biết kỹ thuật
ZeRO giao dịch thêm giao tiếp để tiết kiệm bộ nhớ. Trong Giai đoạn 3, trước khi chuyển tiếp một lớp, một bộ thu thập tất cả sẽ thu thập các thông số đầy đủ của lớp đó trên mỗi GPU; sau đó các lát không thuộc sở hữu sẽ bị loại bỏ để lấy lại bộ nhớ. Các gradient được giảm phân tán nên mỗi GPU chỉ giữ lại phần gradient phù hợp với các tham số mà nó sở hữu. FSDP (Song song dữ liệu được phân chia hoàn toàn) của PyTorch thực hiện cùng một ý tưởng, gói các mô-đun thành phân đoạn và chia lại một cách nhanh chóng.
Làm chủ ZeRO và Trình tối ưu hóa được phân chia
ZeRO (Trình tối ưu hóa dự phòng bằng không) loại bỏ việc sao chép lãng phí bộ nhớ của tính song song dữ liệu bằng cách bảo vệ trạng thái tối ưu hóa, độ dốc và trọng số trên các GPU. Nó cho phép bạn đào tạo các mô hình khổng lồ với sự đơn giản của song song dữ liệu nhưng chỉ chiếm một phần nhỏ bộ nhớ trên mỗi GPU. ZeRO và Sharded Optimizers là một khối xây dựng kỹ thuật ảnh hưởng đến chất lượng mô hình, chi phí cơ sở hạ tầng, độ trễ và độ tin cậy trên quy mô lớn. Để xây dựng sự hiểu biết sâu sắc, hãy coi ZeRO và Sharded Optimizers như một mô hình hoạt động chứ không phải một tính năng duy nhất: xác định kết quả mong muốn, làm rõ các giả định và tách biệt những gì hệ thống có thể thực hiện một cách đáng tin cậy với những gì vẫn cần đến sự đánh giá của chuyên gia.
Trong thực tế, các nhóm mạnh sử dụng ZeRO và Sharded Optimizers sẽ tối ưu hóa các lựa chọn về kiến trúc, dữ liệu và cơ sở hạ tầng theo độ tin cậy và chi phí. Họ ghi lại các tiêu chí thành công rõ ràng, kiểm tra dựa trên dữ liệu và quy trình làm việc thực tế, đồng thời lặp lại dựa trên các kiểu thất bại được quan sát thay vì chiến thắng điểm chuẩn một lần. Đây là nơi sự hiểu biết về mặt lý thuyết biến thành khả năng bền vững trên toàn bộ sản phẩm, chính sách và hoạt động.
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. Đồng thời, Tối ưu hóa một điểm chuẩn có thể che giấu những điểm yếu lớn hơn của hệ thống. Cách tiếp cận linh hoạt nhất là kết hợp tốc độ thử nghiệm với kỷ luật quản trị: chạy thử nghiệm, thu thập bằng chứng, xuất bản nhật ký quyết định và liên tục cập nhật các biện pháp bảo vệ khi hành vi của mô hình, kỳ vọng của người dùng và các yêu cầu pháp lý phát triển.
Tác động chiến lược
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.
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. Trong quá trình triển khai chất lượng cao, điều này được chuyển thành các quy tắc vận hành, ranh giới quyền sở hữu và quy trình đánh giá định kỳ có thể đo lường được để các nhóm có thể mở rộng quy mô một cách tự tin thay vì mở rộng quy mô sự mơ hồ.
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.
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. Trong quá trình triển khai chất lượng cao, điều này được chuyển thành các quy tắc vận hành, ranh giới quyền sở hữu và quy trình đánh giá định kỳ có thể đo lường được để các nhóm có thể mở rộng quy mô một cách tự tin thay vì mở rộng quy mô sự mơ hồ.
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.
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. Trong quá trình triển khai chất lượng cao, điều này được chuyển thành các quy tắc vận hành, ranh giới quyền sở hữu và quy trình đánh giá định kỳ có thể đo lường được để các nhóm có thể mở rộng quy mô một cách tự tin thay vì mở rộng quy mô sự mơ hồ.
Triển khai trong thế giới thực
Sử dụng DeepSpeed ZeRO Giai đoạn 2 để tinh chỉnh mô hình ngôn ngữ nhiều tỷ thông số có thể làm tràn bộ nhớ GPU.
Đào tạo với PyTorch FSDP, giúp phân chia các tham số, độ dốc và trạng thái tối ưu hóa trên các GPU và tập hợp chúng theo từng lớp theo yêu cầu.
Áp dụng ZeRO-Offload để đẩy trạng thái tối ưu hóa vào bộ nhớ CPU, cho phép một GPU duy nhất đào tạo một mô hình lớn hơn nhiều lần so với VRAM của nó.
Mở rộng mô hình nghìn tỷ tham số với ZeRO-Infinity bằng cách truyền phát các phân đoạn tham số từ bộ lưu trữ NVMe khi hết bộ nhớ GPU và CPU.
Các mẫu triển khai
Trình tối ưu hóa Zero và Sharded trong thực tế
Sử dụng DeepSpeed ZeRO Giai đoạn 2 để tinh chỉnh mô hình ngôn ngữ nhiều tỷ thông số có thể làm tràn bộ nhớ GPU.
Sử dụng DeepSpeed ZeRO Giai đoạn 2 để tinh chỉnh mô hình ngôn ngữ nhiều tỷ thông số có thể làm tràn bộ nhớ GPU Các nhóm thường đạt được kết quả tốt hơn khi xác định trước các ngưỡng chất lượng, theo dõi lộ trình leo thang của con người đối với các trường hợp khó khăn và theo dõi cả mức tăng năng suất và chi phí lỗi theo thời gian.
Trình tối ưu hóa Zero và Sharded trong thực tế
Đào tạo với PyTorch FSDP, giúp phân chia các tham số, độ dốc và trạng thái tối ưu hóa trên các GPU và tập hợp chúng theo từng lớp theo yêu cầu.
Đào tạo với PyTorch FSDP, phân chia các tham số, độ dốc và trạng thái tối ưu hóa trên các GPU và tập hợp chúng trên mỗi lớp theo yêu cầu. Các nhóm thường nhận được kết quả tốt hơn khi xác định trước các ngưỡng chất lượng, duy trì lộ trình leo thang của con người cho các trường hợp biên và theo dõi cả mức tăng năng suất và chi phí lỗi theo thời gian.
Trình tối ưu hóa Zero và Sharded trong thực tế
Áp dụng ZeRO-Offload để đẩy trạng thái tối ưu hóa vào bộ nhớ CPU, cho phép một GPU duy nhất đào tạo một mô hình lớn hơn nhiều lần so với VRAM của nó.
Áp dụng ZeRO-Offload để đẩy trạng thái tối ưu hóa vào bộ nhớ CPU, cho phép một GPU duy nhất đào tạo một mô hình lớn hơn nhiều lần so với VRAM của nó. Các nhóm thường đạt được kết quả tốt hơn khi họ xác định trước các ngưỡng chất lượng, duy trì lộ trình leo thang của con người đối với các trường hợp phức tạp và theo dõi cả mức tăng năng suất và chi phí lỗi theo thời gian.
Trình tối ưu hóa Zero và Sharded trong thực tế
Mở rộng mô hình nghìn tỷ tham số với ZeRO-Infinity bằng cách truyền phát các phân đoạn tham số từ bộ lưu trữ NVMe khi hết bộ nhớ GPU và CPU.
Mở rộng mô hình nghìn tỷ thông số với ZeRO-Infinity bằng cách truyền phát các phân đoạn tham số từ bộ lưu trữ NVMe khi hết bộ nhớ GPU và CPU. Các nhóm thường nhận được kết quả tốt hơn khi xác định trước ngưỡng chất lượng, duy trì lộ trình leo thang của con người cho các trường hợp biên và theo dõi cả mức tăng năng suất và chi phí lỗi theo thời gian.
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.
Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai. Hãy coi mỗi bước như một cổng bằng chứng: nếu không đáp ứng được các tiêu chí, hãy tạm dừng triển khai, thu hẹp khoảng cách và chỉ sau đó mới mở rộng mức sử dụng.
Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.
Điểm chuẩn trong điều kiện tải và dữ liệu thực tế. Hãy coi mỗi bước như một cổng bằng chứng: nếu không đáp ứng được các tiêu chí, hãy tạm dừng triển khai, thu hẹp khoảng cách và chỉ sau đó mới mở rộng mức sử dụng.
Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.
Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng. Hãy coi mỗi bước như một cổng bằng chứng: nếu không đáp ứng được các tiêu chí, hãy tạm dừng triển khai, thu hẹp khoảng cách và chỉ sau đó mới mở rộng mức sử 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ô.
Chuẩn bị đường dẫn khôi phục và ứng phó sự cố trước khi mở rộng quy mô. Hãy coi mỗi bước như một cổng bằng chứng: nếu không đáp ứng được các tiêu chí, hãy tạm dừng triển khai, thu hẹp khoảng cách và chỉ sau đó mới mở rộng mức sử dụng.