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

Trình tối ưu hóa trạng thái tải xuống CPU và NVMe

Một thủ thuật tiết kiệm bộ nhớ giúp xử lý việc ghi chép quá trình đào tạo nặng nề (trạng thái tối ưu hóa, độ dốc, đôi khi là trọng số) trong RAM CPU hoặc trên ổ SSD NVMe thay vì bộ nhớ GPU khan hiếm.

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

Tổng quan

It lets people train far larger models than their GPU's memory would otherwise allow.

Lặn sâu

Khi bạn huấn luyện mạng nơ-ron bằng trình tối ưu hóa như Adam, mọi tham số đều mang theo nhiều thông tin bổ sung: hai số liệu thống kê đang chạy (động lượng và phương sai), cộng với một bản sao chính xác đầy đủ của trọng số, cộng với độ dốc của nó. Trong đào tạo có độ chính xác hỗn hợp, tổng số này có thể là khoảng 16 byte cho mỗi tham số, giảm đi 2 byte cho chính trọng số. Việc giảm tải sẽ di chuyển hành lý đó ra khỏi GPU. Việc giảm tải CPU truyền các trạng thái tối ưu hóa vào RAM hệ thống thông thường qua bus PCIe, trong khi việc giảm tải NVMe sẽ đẩy chúng xuống các ổ đĩa thể rắn có tốc độ nhanh. Được phổ biến bởi ZeRO-Infinity và ZeRO-Offload của DeepSpeed, kỹ thuật này đánh đổi tốc độ thô lấy dung lượng, cho phép một GPU hoặc cụm nhỏ tinh chỉnh các mô hình với hàng tỷ tham số.

Hiểu biết kỹ thuật

Điều quan trọng là chuyển động dữ liệu chồng chéo với tính toán. Các trạng thái của trình tối ưu hóa nằm trong CPU/NVMe; trong quá trình truyền ngược, các phân vùng được tìm nạp trước trên PCIe ngay trước khi chúng cần thiết và bản thân bước tối ưu hóa thường chạy trên CPU. ZeRO-Offload giữ trọng số chính của float32 và khoảnh khắc Adam trên CPU, do đó, chỉ có phép toán tiến và lùi vẫn còn trên GPU. NVMe bổ sung bộ nhớ đệm theo cấp độ để các trạng thái ở quy mô terabyte tràn vào đĩa trong khi các phân vùng nóng vẫn nằm trong RAM.

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 việc giảm tải trạng thái tối ưu hóa cho CPU và NVMe

Khi các mô hình tiếp tục phát triển bộ nhớ GPU, việc giảm tải theo cấp bậc đang trở thành tiêu chuẩn thay vì kỳ lạ. Mong đợi sự tích hợp chặt chẽ hơn với các kết nối nhanh hơn như nhóm bộ nhớ NVLink-C2C và CXL làm mờ ranh giới CPU-GPU, cộng với bộ lập lịch thông minh hơn có thể dự đoán trạng thái nào sẽ tìm nạp trước. Kiến trúc bộ nhớ hợp nhất như Grace Hopper giảm thiểu hình phạt PCIe và các khung công tác đang hướng tới việc giảm tải nhiều tầng gần như minh bạch để những người có sở thích có thể tinh chỉnh các mô hình lớn trên phần cứng khiêm tốn.

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

Tinh chỉnh LLM 13 tỷ tham số trên một GPU tiêu dùng 24 GB bằng cách sử dụng DeepSpeed ​​ZeRO-Offload để đẩy trạng thái Adam sang RAM CPU.

Một phòng thí nghiệm nghiên cứu nhỏ đang đào tạo mô hình nhiều tỷ tham số trên một số GPU bằng cách chuyển trạng thái tối ưu hóa sang ổ NVMe với ZeRO-Infinity.

Ôm mặt Tăng tốc cấu hình cho phép giảm tải CPU để người dùng có thể chạy các công việc tinh chỉnh đầy đủ mà nếu không sẽ gây ra lỗi hết bộ nhớ.

Các công ty khởi nghiệp quan tâm đến chi phí thuê GPU đám mây có bộ nhớ thấp hơn, rẻ hơn và giảm tải cho NVMe đính kèm thay vì trả tiền cho thẻ 80 GB cao cấp nhất.

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 Optimizer State Offloading to CPU and NVMe 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

Adam và Trình tối ưu hóa thích ứng

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

What is Optimizer State Offloading to CPU and NVMe?

Một thủ thuật tiết kiệm bộ nhớ giúp xử lý việc ghi chép quá trình đào tạo nặng nề (trạng thái tối ưu hóa, độ dốc, đôi khi là trọng số) trong RAM CPU hoặc trên ổ SSD NVMe thay vì bộ nhớ GPU khan hiếm. Nó cho phép mọi người đào tạo các mô hình lớn hơn nhiều so với mức bộ nhớ GPU của họ cho phép.

Mục tiêu chính của việc giảm tải trạng thái tối ưu hóa cho CPU hoặc NVMe là gì?

Việc giảm tải sẽ chuyển các trạng thái tối ưu hóa nặng của GPU sang RAM CPU hoặc NVMe, giải phóng bộ nhớ GPU để các mô hình lớn hơn có thể được đào tạo trên cùng một phần cứng.

Đối với trình tối ưu hóa Adam ở độ chính xác hỗn hợp, dữ liệu nào thường tiêu tốn bộ nhớ NHIỀU NHẤT cho mỗi tham số?

Adam lưu trữ động lượng, phương sai và trọng số chính có độ chính xác hoàn toàn, tổng cộng khoảng 16 byte cho mỗi tham số, nhiều hơn nhiều so với trọng số có độ chính xác nửa byte là 2 byte.

Khung nào có tính năng giảm tải trình tối ưu hóa quy mô lớn phổ biến?

ZeRO-Offload và ZeRO-Infinity của DeepSpeed ​​đã giới thiệu và phổ biến các trạng thái tối ưu hóa giảm tải cho CPU và NVMe trên quy mô lớn.

Chi phí hiệu năng chính của việc giảm tải cho CPU hoặc NVMe là bao nhiêu?

Việc chuyển trạng thái ra khỏi GPU có nghĩa là truyền dữ liệu qua PCIe hoặc sang NVMe, tốc độ này chậm hơn so với bộ nhớ trên GPU, do đó thông lượng sẽ giảm trừ khi bị chồng chéo với hoạt động điện toán.

Làm thế nào để các hệ thống giảm tải che giấu phần lớn độ trễ truyền tải?

Trình lập lịch trình tìm nạp trước các phân vùng cần thiết qua PCIe trong khi GPU vẫn đang tính toán, chồng chéo giao tiếp với tính toán để che giấu độ trễ.