Khi sử dụng `Torch.compile`, một số cạm bẫy phổ biến có thể phát sinh:
1. Biến đổi hiệu suất: `Torch.compile` không phải lúc nào cũng cải thiện hiệu suất và đôi khi có thể dẫn đến việc thực hiện chậm hơn hoặc tăng sử dụng bộ nhớ. Điều quan trọng là phải so sánh hiệu suất của mô hình được biên dịch với mô hình gốc [2] [4].
2. Break Breaks: Nếu `Torch.compile` gặp mã không được hỗ trợ hoặc các hoạt động phức tạp, nó có thể giới thiệu" Break Breaks ", chia mã thành các phần được tối ưu hóa và không được tối ưu hóa. Mặc dù không gây tử vong, những lần nghỉ này có thể hạn chế lợi ích tối ưu hóa. Viết lại các phần có vấn đề có thể giúp [2] [4].
3. Thông báo lỗi khó hiểu: Lỗi biên dịch thường tạo ra các thông báo lỗi khó hiểu khó gỡ lỗi mà không cần sự trợ giúp từ nhóm Pytorch. Điều này có thể làm cho việc khắc phục sự cố thách thức [2] [4].
4. Thời gian biên dịch dài: Bản thân quá trình biên dịch có thể tốn thời gian, đôi khi mất vài phút hoặc thậm chí lâu hơn cho các mô hình lớn hơn. Điều này làm cho nó nên đánh giá `Torch.compile` cho đến hết phát triển hơn là trong các giai đoạn ban đầu [1] [4].
5. Hình dạng động và tái thông thường: `Torch.compile` ban đầu giả định các hình dạng tenxơ tĩnh. Nếu hình dạng thay đổi, việc sắp xếp lại có thể xảy ra trừ khi các hình dạng động được bật. Điều này có thể dẫn đến các lần chạy ban đầu chậm hơn do tái biên ký [1].
6. Vấn đề đa luồng: Hiện tại, MultiThreading với `Torch.compile` là lỗi, có thể hạn chế việc sử dụng nó trong các môi trường đồng thời [3].
7.
Để giảm thiểu các vấn đề này, nên áp dụng `Torch.compile` cho các hàm cấp cao, sử dụng các hình dạng động khi cần thiết và kiểm tra kỹ lưỡng hiệu suất của mô hình được biên dịch so với bản gốc [1] [2].
Trích dẫn:[1] https://pytorch.org/docs/stable/torch.compiler_troubleshooting.html
[2] https://lightning.ai/docs/fabric/2.2.3/advanced/compile.html
[3] http://blog.ezyang.com/2024/11/ways-to-use-torch-compile/
[4] https://lightning.ai/docs/pytorch/stable/advanced/compile.html
[5] https://pytorch.org/docs/stable/torch.compiler_faq.html
[6] https://stackoverflow.com/questions/75886125/how-should-i-use-torch-compile-properly
[7] https://www.aionlinecourse.com/blog/how-should-i-use-torch-compile-properly
[8] https://github.com/patrick-kidger/jaxtyping/issues/196