Застосування моделей на основі трансформаторів для виявлення помилок у вихідному коді

Автор(и)

  • Ілля Анатолійович Вохранов Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», Україна https://orcid.org/0009-0000-1702-0460
  • Богдан Вікторович Булах Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського», Україна https://orcid.org/0000-0001-5880-6101

DOI:

https://doi.org/10.15587/2706-5448.2024.310822

Ключові слова:

трансформатори, великі мовні моделі, виявлення помилок, виявлення дефектів, статичний аналіз коду, нейронні мережі

Анотація

У цій роботі досліджується використання трансформаторних моделей для виявлення помилок у вихідному коді з метою кращого розуміння здатності цих моделей вивчати складні шаблони та зв’язки в коді. Традиційні інструменти статичного аналізу дуже обмежені у своїй здатності виявляти семантичні помилки, що призводить до численних дефектів, які переходять до етапу виконання коду. Це дослідження є кроком до вдосконалення статичного аналізу коду за допомогою нейронних мереж.

Експерименти були розроблені як завдання бінарної класифікації для виявлення помилкових фрагментів коду, кожен з яких націлений на певний тип дефекту, як-от NameError, TypeError, IndexError, AttributeError, ValueError, EOFError, SyntaxError і ModuleNotFoundError. Використовуючи набір даних «RunBugRun», який ґрунтується на результатах виконання коду, моделі – BERT, CodeBERT, GPT-2 і CodeT5 – були налаштовані та порівняні за ідентичних умов і гіперпараметрів. Ефективність оцінювалася за допомогою F1-Score, Precision і Recall.

Результати показали, що моделі на основі трансформаторів, особливо CodeT5 і CodeBERT, були ефективними у виявленні різних дефектів, демонструючи їхню здатність вивчати складні шаблони коду. Однак продуктивність різнилася залежно від типу дефекту, причому деякі дефекти, такі як IndexError і TypeError, виявити складніше. Результати підкреслюють важливість високоякісних, різноманітних навчальних даних і висвітлюють потенціал моделей на основі трансформаторів для досягнення більш точного раннього виявлення дефектів.

Майбутні дослідження мають продовжити дослідження передових архітектур трансформаторів для виявлення складних дефектів і дослідити інтеграцію додаткової контекстної інформації в процес виявлення. Це дослідження підкреслює потенціал сучасних архітектур машинного навчання для вдосконалення практики розробки програмного забезпечення, що веде до більш ефективної та надійної розробки програмного забезпечення.

Біографії авторів

Ілля Анатолійович Вохранов, Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського»

Аспірант

Кафедра системного проектування

Богдан Вікторович Булах, Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського»

Кандидат технічних наук, доцент

Кафедра системного проектування

Посилання

  1. Tassey, G. (2002). The Economic Impacts of Inadequate Infrastructure for Software Testing (NIST Planning Report 02-3). RTI International. National Institute of Standards and Technology. Available at: https://www.nist.gov/system/files/documents/director/planning/report02-3.pdf Last accessed: 22.07.2024.
  2. Nachtigall, M., Schlichtig, M., Bodden, E. (2022). A large-scale study of usability criteria addressed by static analysis tools. Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis. https://doi.org/10.1145/3533767.3534374
  3. Vaswani, A., Shazeer, N. M., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N. et al. (2017). Attention is All you Need. Neural Information Processing Systems. https://doi.org/10.48550/arXiv.1706.03762
  4. Bahdanau, D., Cho, K., Bengio, Y. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. CoRR, abs/1409.0473. https://doi.org/10.48550/arXiv.1409.0473
  5. Hou, X., Zhao, Y., Liu, Y., Yang, Z., Wang, K., Li, L. et al. (2023). Large Language Models for Software Engineering: A Systematic Literature Review. ArXiv, abs/2308.10620. https://doi.org/10.48550/arXiv.2308.10620
  6. Sun, Z., Li, L., Liu, Y., Du, X. (2022). On the Importance of Building High-quality Training Datasets for Neural Code Search. 2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE), 1609–1620. https://doi.org/10.1145/3510003.3510160
  7. Prenner, J. A., Robbes, R. (2023). RunBugRun – An Executable Dataset for Automated Program Repair. ArXiv, abs/2304.01102. https://doi.org/10.48550/arXiv.2304.01102
  8. Hu, J. E., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Chen, W. (2021). LoRA: Low-Rank Adaptation of Large Language Models. ArXiv, abs/2106.09685. https://doi.org/10.48550/arXiv.2106.09685
  9. Built-in exceptions. Python Documentation. Python Software Foundation. Available at: https://docs.python.org/3/library/exceptions.html Last accessed: 22.07.2024
  10. Marjanov, T., Pashchenko, I., Massacci, F. (2022). Machine Learning for Source Code Vulnerability Detection: What Works and What Isn’t There Yet. IEEE Security & Privacy, 20 (5), 60–76. https://doi.org/10.1109/msec.2022.3176058
  11. Fang, C., Miao, N., Srivastav, S., Liu, J., Zhang, R., Fang, R. et al. (2023). Large Language Models for Code Analysis: Do LLMs Really Do Their Job? ArXiv, abs/2310.12357. https://doi.org/10.48550/arXiv.2310.12357
  12. Xiao, Y., Zuo, X., Xue, L., Wang, K., Dong, J. S., Beschastnikh, I. (2023). Empirical Study on Transformer-based Techniques for Software Engineering. ArXiv, abs/2310.00399. https://doi.org/10.48550/arXiv.2310.00399
Transformer-based models application for bug detection in source code

##submission.downloads##

Опубліковано

2024-08-31

Як цитувати

Вохранов, І. А., & Булах, Б. В. (2024). Застосування моделей на основі трансформаторів для виявлення помилок у вихідному коді. Technology Audit and Production Reserves, 5(2(79), 6–15. https://doi.org/10.15587/2706-5448.2024.310822

Номер

Розділ

Інформаційні технології