Η Pytea, ένας στατικός αναλυτής για την ανίχνευση σφαλμάτων σχήματος τανυστή στον κώδικα Pytorch, έχει αρκετούς περιορισμούς παρά την αποτελεσματικότητά του στον εντοπισμό πιθανών αναντιστοιχιών σχήματος:
1. Έκρηξη και πολυπλοκότητα διαδρομής: Ενώ η Pytea χρησιμοποιεί συντηρητικό κλάδεμα για να διαχειριστεί τον αριθμό των διαδρομών εκτέλεσης, σύνθετα μοντέλα με πολλές υπό όρους δηλώσεις ή βρόχους θα μπορούσαν να οδηγήσουν σε έκρηξη διαδρομής, περιορίζοντας ενδεχομένως την επεκτασιμότητα της σε πολύ μεγάλες ή εξαιρετικά δυναμικές κώδικες [1] [ 3].
2. Τα μη εφαρμοσμένα APIs: Η Pytea μπορεί να δημιουργήσει ψευδείς συναγερμούς εάν συναντήσει τον Pytorch ή άλλα API τρίτων που δεν έχουν εφαρμοστεί στο πλαίσιο της. Αυτό σημαίνει ότι οι χρήστες πρέπει να γνωρίζουν ποια API υποστηρίζονται για να αποφευχθούν περιττές προειδοποιήσεις [5].
3. Περιορισμοί ανάλυσης εκτός σύνδεσης: Η ανάλυση offline χρησιμοποιώντας τον διαλυτή Z3 SMT μπορεί να οδηγήσει σε μη ασφαλείς διαδρομές εάν οι περιορισμοί είναι πολύ περίπλοκοι ή μη γραμμικοί, οδηγώντας σε χρονικά όρια. Αυτό μπορεί να μην παρέχει πάντα σαφή ένδειξη για το αν μια διαδρομή είναι έγκυρη ή όχι [5].
4. Ερμηνεία των αποτελεσμάτων: Οι χρήστες πρέπει να ερμηνεύουν προσεκτικά τα αποτελέσματα, καθώς η Pytea προσδιορίζει πιθανά σφάλματα που βασίζονται σε περιορισμούς που ενδέχεται να μην οδηγούν πάντα σε πραγματικά σφάλματα χρόνου εκτέλεσης. Αυτό απαιτεί την κατανόηση του πλαισίου και των δυνητικών διαδρομών εκτέλεσης του κώδικα [5].
5. Ενσωμάτωση και υποστήριξη: Ενώ η Pytea υποστηρίζει μεγάλες βιβλιοθήκες όπως το Torchvision, το Numpy και το PIL, η ενσωμάτωσή της σε περιβάλλοντα ανάπτυξης όπως το VSCode εξακολουθεί να βρίσκεται σε εξέλιξη. Αυτό σημαίνει ότι τα διαδραστικά χαρακτηριστικά εντοπισμού σφαλμάτων δεν είναι ακόμη πλήρως ώριμα [2].
Αναφορές:[1] https://arxiv.org/pdf/2112.09037.pdf
[2] https://www.reddit.com/r/machinelearning/comments/rm4fgz/p_a_static_analyzzer_for_detecting_tensor_shape/
[3] https://sf.snu.ac.kr/pytea/
[4] https://www.researchgate.net/publication/370473038_static_analysis_of_shape_in_tensorflow_programs
[5] https://github.com/ropas/pytea
[6] https://arxiv.org/pdf/2106.02887.pdf
[7] https://dl.acm.org/doi/10.1145/3510454.3528638
[8] https://towardsdatascience.com/understanding-tensors-learning-a-data-sructure-through-3-pesky-erors-6d674776be0c/