[GPU in AI] Bài 7: Pytorch - Pytorch Lightning - Lightning Fabric
Nên dùng Pytorch hay Tensorflow ? Đây là câu hỏi mình thường nhận được từ các bạn mới học Deep Learning. Với cá nhân mình là PyTorch vì sự trực quan cũng như sự linh hoạt của nó. Và ở bài viết này mình sẽ giới thiệu 2 công cụ giúp Pytorch trở nên tiện lợi hơn nữa: Pytorch Lightning - Lightning Fabric
Pytorch - Pytorch Lightning - Lightning Fabric
Đối với các bạn thì Pytorch quá quen thuộc rồi, nhưng còn Pytorch Lightning và Lightning Fabric là gi ? Và sự khác biệt cũng như khi nào thì dùng chúng ?

PyTorch Lightning: nằm ở tầng cao nhất giúp:
- Quản lí toàn bộ training
- Tự động xử lí logging, checkpoint, distributed,..
=> Hay còn gọi là giảm boilerplate code - những phần code lặp đi lặp lại như training loop, validation loop, setup optimizer, multi-GPU,...
Core API của PyTorch Lightning gồm 3 phần chính:
- Trainer: Quản lý toàn bộ quá trình training (fit, validate, test, predict).
- LightningModule: Bao bọc nn.Module, nơi bạn định nghĩa model, loss, optimizer và các bước training/validation.
- LightningDataModule: Đóng gói toàn bộ xử lý dữ liệu (load, split, transform, dataloader).
Lightning Fabric: Là một lightweight wrapper trên PyTorch với 1 core API duy nhất là Fabric, Lightning Fabric giúp:
- Hỗ trợ distributed training (DDP, multi-GPU)
- Mixed precision (AMP)
- Device placement
- Quản lý gradient và scaling
Nhưng không thay đổi cấu trúc training loop của bạn.
Tóm lại:
Dùng Lightning Fabric khi đã có sẵn một training loop PyTorch và chỉ cần mở rộng (scale) lên multi-GPU, distributed hoặc mixed precision mà không muốn thay đổi cấu trúc code.
Dùng PyTorch Lightning khi sử dụng các mô hình phổ biến và training theo standard training loop, và muốn một framework quản lý toàn bộ quá trình training một cách tự động, sạch và chuẩn hóa.
Code


Ở các bài sau mình sẽ đi sâu vào Pytorch Lightning - Lightning Fabric để các bạn có thể thấy sự tiện lợi của nó
All rights reserved