Huấn luyện chính xác hỗn hợp
Quá trình đào tạo có độ chính xác hỗn hợp giúp tăng tốc quá trình đào tạo mạng lưới thần kinh và giảm mức sử dụng bộ nhớ bằng cách thực hiện hầu hết các phép toán ở dạng dấu phẩy động 16 bit thay vì 32 bit.
Tổng quan
It lets the same GPU train bigger models faster with almost no loss in accuracy.
Lặn sâu
Chương trình đào tạo truyền thống lưu trữ trọng số và chạy phép toán ở dạng dấu phẩy động 32 bit (FP32). Độ chính xác hỗn hợp sử dụng các định dạng 16 bit có độ chính xác thấp hơn (FP16 hoặc bfloat16) cho phép nhân ma trận nặng, đồng thời giữ 'bản sao chính' 32 bit của trọng số để cập nhật ổn định. Vì số 16 bit có kích thước bằng một nửa nên bộ nhớ GPU phù hợp hơn và Lõi Tensor xử lý chúng nhanh hơn khoảng 2-8 lần. Điểm hấp dẫn là phạm vi hẹp của FP16: độ dốc nhỏ có thể tràn về 0. Cách khắc phục tiêu chuẩn là chia tỷ lệ tổn thất, nhân tổn thất với hệ số lớn trước khi truyền ngược để các độ dốc nhỏ vẫn có thể biểu thị được, sau đó chia lại trước khi cập nhật trọng số. Apex của NVIDIA và AMP (Automatic Mixed Precision) tích hợp trong PyTorch và TensorFlow tự động hóa việc này.
Hiểu biết kỹ thuật
FP16 chỉ có 5 bit số mũ, tạo ra dải động nhỏ gây ra hiện tượng tràn gradient. Bfloat16 giữ 8 bit số mũ (phù hợp với phạm vi của FP32) nhưng ít bit mantissa hơn, do đó, nó hiếm khi cần chia tỷ lệ tổn thất — một lý do chính khiến Google TPU và GPU hiện đại ưa chuộng nó. Lõi Tensor tăng tốc công việc bằng cách nhân các toán hạng 16 bit nhưng tích lũy một phần tổng trong FP32, duy trì độ chính xác trong đó các lỗi tính tổng sẽ cộng dồ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 đào tạo chính xác hỗn hợp
Độ chính xác tiếp tục giảm. Đào tạo FP8, được hỗ trợ trên GPU NVIDIA Hopper và Blackwell, đang trở thành tiêu chuẩn cho các mô hình tiên phong, đồng thời nghiên cứu về FP4 và các định dạng vi mô (MXFP) còn đẩy mạnh hơn nữa. Mong đợi các khung sẽ tự động chọn độ chính xác trên mỗi lớp, phần cứng để xử lý nguyên bản các định dạng ngày càng hẹp hơn và đào tạo nhận thức lượng tử hóa để làm mờ ranh giới giữa đào tạo và suy luận có độ chính xác thấp, giảm chi phí đào tạo các mô hình nghìn tỷ tham số.
Triển khai trong thế giới thực
Torch.cuda.amp.autocast của PyTorch gói một vòng đào tạo để giảm gần một nửa bộ nhớ và tăng gấp đôi thông lượng trên một GPU
Đào tạo các mô hình ngôn ngữ lớn như máy biến áp kiểu GPT trong bfloat16 trên TPU để tránh điều chỉnh tỷ lệ mất mát
Điều chỉnh kích thước lô lớn hơn trên GPU RTX dành cho người tiêu dùng bằng cách chuyển đào tạo hình ảnh ResNet từ FP32 sang FP16
Độ chính xác hỗn hợp FP8 trên GPU NVIDIA H100 để cắt giảm chi phí đào tạo trước các mô hình quy mô biên giới
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 Mixed Precision Training 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
Dán nhãn giả và tự đào tạo
Câu hỏi thường gặp
What is Mixed Precision Training?
Quá trình đào tạo có độ chính xác hỗn hợp giúp tăng tốc quá trình đào tạo mạng lưới thần kinh và giảm mức sử dụng bộ nhớ bằng cách thực hiện hầu hết các phép toán ở dạng dấu phẩy động 16 bit thay vì 32 bit. Nó cho phép cùng một GPU đào tạo các mô hình lớn hơn nhanh hơn mà hầu như không làm giảm độ chính xác.
Tại sao quá trình huấn luyện có độ chính xác hỗn hợp lại giữ một 'bản sao chính' 32 bit của trọng lượng?
Cập nhật trọng lượng thường rất nhỏ; tích lũy chúng trong 16-bit sẽ làm mất độ chính xác, do đó, một bản sao chính có độ chính xác hoàn toàn sẽ giúp các bản cập nhật luôn chính xác.
Việc chia tỷ lệ tổn thất giải quyết được vấn đề gì trong quá trình đào tạo FP16?
FP16 có dải động hạn chế nên độ dốc nhỏ có thể làm tròn về 0; nhân số lỗ trước backprop giúp chúng có thể biểu diễn được.
bfloat16 có ưu điểm gì hơn FP16?
Bfloat16 giữ 8 bit số mũ như FP32 nên dải động của nó lớn và hiếm khi xảy ra hiện tượng tràn gradient.
Làm cách nào để lõi Tensor duy trì độ chính xác khi sử dụng đầu vào 16 bit?
Lõi Tensor nhân các toán hạng 16 bit nhưng tích lũy trong 32 bit, ngăn chặn các lỗi tính tổng gộp lại.
Lợi ích chính của việc sử dụng giá trị 16 bit thay vì 32 bit trong quá trình đào tạo là gì?
Các số có kích thước một nửa phù hợp với nhiều dữ liệu hơn trong bộ nhớ GPU và cho phép phần cứng chuyên dụng xử lý phép toán ma trận nhanh hơn nhiều lần.