Naudojant „Torch.compile“, gali atsirasti kelios įprastos spąstai:
1. Našumo kintamumas: „Torch.compile“ ne visada pagerina našumą ir kartais gali sukelti lėtesnį vykdymą ar padidinti atminties naudojimą. Labai svarbu palyginti sudaryto modelio našumą su pradiniu modeliu [2] [4].
2. Diagramos pertraukos: Jei „torch.compile“ susiduria nepalaikomas kodas ar sudėtingos operacijos, jis gali įvesti „grafiko pertraukas“, kodo padalijimą į optimizuotas ir neoptimizuotas dalis. Nors šios pertraukos nėra mirtinos, jie gali apriboti optimizavimo naudą. Gali padėti perrašyti probleminius skyrius [2] [4].
3. Šlapimo klaidų pranešimai: Kompiliacijos gedimai dažnai sukelia kriptų klaidų pranešimus, kuriuos sunku derinti be „Pytorch“ komandos pagalbos. Tai gali padaryti sudėtingą trikčių šalinimą [2] [4].
4. Ilgas kompiliavimo laikas: Pats kompiliavimo procesas gali būti reikalaujantis daug laiko, kartais trunkantis keletą minučių ar net ilgiau didesniems modeliams. Dėl to patartina įvertinti „torch.compile“ vystymosi pabaigoje, o ne pradiniais etapais [1] [4].
5. Dinaminės formos ir pakartotinis kompiliacija: „Torch.compile“ iš pradžių prisiima statines tenzorines formas. Jei formų pasikeitimas pasikeis, gali įvykti pakartotinis kompiliacija, nebent įjungtos dinaminės formos. Dėl pakartotinio kompiliavimo tai gali sukelti lėtesnius pradinius važiavimus [1].
6. Daugialypės terpės problemos: Šiuo metu daugialypės terpės su „Torch.compile“ yra klaidinga, kuri gali apriboti jo naudojimą lygiagrečioje aplinkoje [3].
7. Nepalaikomos savybės: Kai kurios „Numpy“ funkcijos ar sudėtingos operacijos negali būti palaikomos „torch.compile“, dėl kurių sudaromos kompiliacijos problemos ar grafiko pertraukos [5].
Norint sušvelninti šias problemas, rekomenduojama pritaikyti „torch.compile“ aukšto lygio funkcijoms, prireikus naudokite dinamines formas ir kruopščiai išbandykite sudaryto modelio našumą, palyginti su originaliu [1] [2].
Citatos:[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/stabled/advanced/compile.html
[5] https://pytorch.org/docs/stable/torch.compiler_faq.html
[6] https://stackoverflow.com/questions/75886125/how-hould-i-use-torch-compile-properly
[7] https://www.aionlinecourse.com/blog/how-hould-i-use-torch-compile-properly
[8] https://github.com/patrick-kidger/jaxtyping/issues/196