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

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.

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

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

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 Mixed Precision Training 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

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.