Pytea ، محلل ثابت لاكتشاف أخطاء شكل الموتر في رمز Pytorch ، يتعامل مع مسارات التنفيذ المعقدة من خلال استخدام العديد من الاستراتيجيات:
1. التقليم المحافظ: يستخدم Pytea تقنية تقليم محافظة لتقليل عدد مسارات التنفيذ. تساعد هذه الطريقة في منع انفجار المسار ، والذي يمكن أن يحدث عند تحليل الكود مع العديد من الفروع الشرطية. من خلال تقليم المسارات الأقل صلة ، يركز Pytea على مسارات التنفيذ الأكثر أهمية التي من المحتمل أن تحتوي على أخطاء في شكل الموتر [1] [2].
2. التجريد الرمزي: يعتمد Pytea على التجريد الرمزي لتبسيط تحليل الحلقات والبيانات الشرطية. يتيح هذا التجريد Pytea تحليل الكود دون الحاجة إلى تنفيذه ، مما يجعله أكثر كفاءة لمعالجة مسارات المعقدة [1] [2].
3. معالجة الحلقة: للحلقات ، تقوم Pytea بإلغاء حلقات ثابتة وتحليل إصدار رمز الخط المستقيم. بالنسبة للحلقات ذات الحدود غير المعروفة ، مثل تلك التي تكرر على مجموعات البيانات ، يحلل Pytea هيكل الحلقة لحالتين: حافلة صغيرة الحجم ومينيوية متبقية أصغر. يبسط هذا النهج تحليل الحلقات التي قد تعقد تحليل مسار التنفيذ [1] [2] [2].
4. آلية المهلة: إذا كان عدد مسارات التنفيذ لا يزال يصبح كبيرًا جدًا على الرغم من التقليم ، فإن Pytea يستخدم آلية مهلة. هذا يضمن أن التحليل لا يستغرق وقتًا طويلاً للغاية ، حتى لو كان ذلك يعني عدم استكشاف جميع المسارات الممكنة تمامًا [1] [2].
من خلال الجمع بين هذه الاستراتيجيات ، يتعامل Pytea بكفاءة مع مسارات التنفيذ المعقدة في رمز Pytorch ، مما يسمح لها باكتشاف أخطاء شكل الموتر بسرعة وبدقة.
الاستشهادات:[1] https://sf.snu.ac.kr/publications/pytea.pdf
[2] https://arxiv.org/pdf/2112.09037.pdf
[3] https://sf.snu.ac.kr/pytea/
[4] https://www.researchgate.net/publication/357114953_a_static_analyzer_for_detecting_tensor_shape_errors_in_deep_neural_network_training_code
[5] https://dl.acm.org/doi/10.1145/3510454.3528638
[6] https://discuss.pytorch.org/t/pytorch-coding-conventions/42548
[7] https://www.computer.org/csdl/proceedings-article/icse-companion/2022/959800a337/1eapbbou12
[8] https://stackoverflow.com/questions/57410835/define-a-relative-path-folder-ainside-a-function-that-run-code-on-both-cmd-and-id