Nội dung bài viết
© 2025 AI VIET NAM. All rights reserved.
Tác giả: AI VIET NAM (AI VIET NAM)
Keywords: Mixed Precision, Gradient Scaler, FP16, Underflow, AI Training
Nhiều bạn khi bắt đầu tối ưu tốc độ huấn luyện mô hình thường nghe đến Mixed Precision. Khái niệm này khá trực quan: dùng số thực 16 bit (FP16) để tăng tốc tính toán và giảm RAM GPU. Tuy nhiên, nhiều mô hình khi bật FP16 lại bị “khựng”, loss không giảm, hoặc huấn luyện bất ổn.
Một trong những nguyên nhân phổ biến nhất nằm ở việc gradient bị quá nhỏ, dẫn đến bị làm tròn về 0. Đây là lúc Gradient Scaler xuất hiện.
Để hiểu điều này, ta quay lại nguyên tắc cốt lõi của đại số số thực trong máy tính.
Số thực 16 bit có biên độ biểu diễn nhỏ, đặc biệt ở vùng giá trị rất bé.
Khi mô hình thực hiện backpropagation, gradient ở các lớp sâu thường có giá trị nhỏ. Nếu gradient này quá nhỏ so với khả năng biểu diễn của FP16, GPU sẽ làm tròn chúng về 0.
Khi gradient bằng 0, quá trình cập nhật trọng số không xảy ra → mô hình không học được.
Gradient Scaler thực hiện thao tác “scale up”: nhân toàn bộ loss lên một hệ số lớn trước khi backpropagation.
Cơ chế này giúp hạn chế hiện tượng “gradient bị làm tròn về 0”, còn gọi là underflow.
Hãy tưởng tượng một mô hình phân loại ảnh đơn giản.
Trong các lớp gần cuối, gradient có thể nhỏ cỡ 1e-8 hoặc 1e-10.
Nếu dùng FP32, giá trị này vẫn được lưu chính xác.
Nhưng với FP16, giá trị quá nhỏ sẽ bị cắt xuống 0.
Khi dùng Gradient Scaler:
Về mặt toán học, mô hình học giống FP32 nhưng tốc độ và RAM tối ưu hơn.
Trong thực tế huấn luyện:
Việc hiểu cơ chế giúp bạn dễ debug hơn khi huấn luyện mô hình lớn.
Mixed Precision và Gradient Scaling thường xuất hiện khi học theo dòng DL:
Đây là các nhóm kiến thức nhiều người đi theo hướng AI/ML đều gặp qua.
Bạn có thể:
Các thử nghiệm nhỏ giúp hiểu bản chất toán học phía sau mô hình.
Mixed Precision có thể gây mất gradient không?
Có, nếu gradient quá nhỏ và dùng FP16 không đủ độ chính xác.
Gradient Scaler có làm thay đổi kết quả học không?
Không, vì giá trị được đưa về lại đúng tỉ lệ ban đầu.
Có cần dùng Gradient Scaler khi huấn luyện FP32 không?
Không, FP32 đủ khả năng biểu diễn gradient nhỏ.
Mixed Precision có làm mô hình học nhanh hơn không?
Có, do tận dụng tính toán tensor core và giảm bộ nhớ.
Q1. Con số 0 thì học nổi không?
Ans: Chỉ cần bạn có thời gian học. Điều quan trọng nhất không phải giỏi hay không, mà là có học đều mỗi ngày. Kiến thức – tài liệu – môi trường đã có team lo. Nếu bạn không có thời gian thì nên cân nhắc.
Q2. Ai dạy AIO?
Ans: Đội admin dạy toàn bộ. Admin trực tiếp hướng dẫn và hỗ trợ mọi câu hỏi của bạn trong suốt quá trình học.
Q3. Admin có “xịn” không?
Ans: Admin đều là người làm nghề thật, mỗi người một cách dạy. Quan trọng là bạn cảm thấy hợp cách truyền đạt. Admin không dám nói xịn, chỉ dạy bằng hết sức.
Q4. AIO có gì khác những nơi khác?
Ans: AIO không phải trung tâm. Đây là dự án học tập cộng đồng, được cải tiến qua từng khóa. Tinh thần của AIO: Cùng nhau học – cùng nhau khổ – cùng nhau lớn. Nếu hợp tinh thần đó, bạn sẽ thấy phù hợp.