Nội dung bài viết
© 2025 AI VIET NAM. All rights reserved.
Tác giả: AI VIET NAM (AI VIET NAM)
Keywords: torch.manual_seed, reproducibility, PyTorch RNG
Trong PyTorch, nhiều thao tác dựa trên số ngẫu nhiên: khởi tạo trọng số, chia batch, dropout, data augmentation. Những giá trị ngẫu nhiên này được tạo bởi một bộ sinh số ngẫu nhiên (random number generator – RNG). Khi gọi torch.manual_seed(), bạn đặt lại trạng thái của RNG về một điểm cố định. Khi RNG bắt đầu từ cùng ""điểm xuất phát"", chuỗi số ngẫu nhiên sinh ra cũng giống nhau → toàn bộ mô hình sẽ tái lập cùng kết quả nếu các yếu tố khác giữ nguyên.
Tái lập kết quả là yếu tố thiết yếu trong:
Trong các kiến thức thuộc Module 4 đến Module 7 (Machine Learning và Deep Learning), quá trình tối ưu hóa có nhiều bước phụ thuộc ngẫu nhiên như khởi tạo trọng số hoặc shuffling dữ liệu. Khi seed cố định, bạn dễ dàng quan sát mô hình thay đổi ra sao khi điều chỉnh từng thành phần nhỏ.
Một bài toán phân loại ảnh cơ bản thường gồm:
Nếu seed không được đặt:
Khi seed được cố định:
Ở môi trường dự án, reproducibility giúp nhóm thống nhất được các bước xử lý:
Các module như MLOps Series rải rác từ Module 4 đến Module 12 thường nhấn vào việc kiểm soát version và log. Việc đặt seed là một phần nhỏ nhưng quan trọng trong toàn bộ quy trình đó.
Bạn có thể thấy seed xuất hiện từ:
Giữ seed cố định là nền tảng để hiểu cách hệ thống phản hồi trước từng thay đổi nhỏ.
Bạn có thể bắt đầu bằng các bài toán nhỏ để quan sát sự khác nhau giữa hai lần chạy khi có và không đặt seed. Từ đó, bạn hiểu rõ hơn cách RNG hoạt động trong pipeline.
1. Đặt torch.manual_seed() có giúp tái lập hoàn toàn kết quả không?
Có, nếu toàn bộ các yếu tố ngẫu nhiên khác cũng được kiểm soát.
2. Có cần đặt seed cho CUDA không?
Có, nếu mô hình chạy trên GPU và bạn muốn kết quả ổn định hơn.
3. Dropout có bị ảnh hưởng khi đặt seed không?
Có, vì dropout dựa trên số ngẫu nhiên.
4. DataLoader shuffling có tái lập khi đặt seed không?
Có, nhưng cần kết hợp seed và thiết lập worker_init_fn phù hợp.
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.