Створення методу забезпечення якості коментарів у системах контролю версій на основі трансформерних моделей
DOI:
https://doi.org/10.35681/1560-9189.2025.27.2.345503Ключові слова:
AdamW-алгоритм, BERT, commit message, DistilBERT, GitHub REST API, RoBERTa, Transformer, вихідний текст програми, ПЗ, повідомлення про внесені зміни, програмне забезпечення, репозиторій, середнє гармонійне, система контролю версійАнотація
Обґрунтовано важливість розв’язання задачі підвищення якості описів до змін у вихідних текстах програм у контексті систем контролю версій. Для фільтрації коментарів застосовано методи машинного навчання, зокрема нейронні мережі різних архітектур. Використання нейронних мереж є доцільним через потребу в автоматичному виявленні описів, що точно відображають призначення внесених змін. Проведено порівняльний аналіз моделей на основі Transformer-архітектур, таких як BERT, RoBERTa та DistilBERT, та їхнє застосування у бінарних класифікаторах для фільтрації змін. Здійснено навчання моделей на множині описів до внесених змін, отриманих за допомогою спеціального програмного інтерфейсу GitHub REST API. Проведено оцінювання точності моделей через використання метрик: точності (Accuracy) та середнього гармонійного (F1-score). Також підтверджено ефективність середовища Google Colab для прототипування моделей машинного навчання.
Посилання
Jiang S., Armaly A., and McMillan C., “Automatically generating commit messages from diffs using neural machine translation,” in Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering, 2017.
Buse R. and Weimer W., “Automatically documenting program changes,” in Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, 2010.
P. Xue et al., “Automated Commit Message Generation With Large Language Models: An Empirical Study and Beyond,” IEEE Transactions on Software Engineering, vol. 50, no. 12, pp. 3208–3224, 2024, doi: 10.1109/TSE.2024.3478317
“How to Write a Git Commit Message,” cbeams. Accessed: Oct. 07, 2024. [Online]. Available: https://cbea.ms/git-commit/#seven-rules
S. Pogorilyy and B. Semonov, “The Implementation of a Commit Messages Filter for Software Version Control Systems,” in The 9th International Conference on Control and Optimization with Industrial Applications, 2024, pp. 175–179.
GitHub Docs, “GitHub REST API,” GitHub Docs. Accessed: Oct. 07, 2024. [Online]. Available: https://docs.github.com/en/rest?apiVersion=2022-11-28
N.V. Otten, “How To Use Text Normalization Techniques In NLP With Python [9 Ways,” Spot Intelligence. Accessed: Oct. 07, 2024. [Online]. Available: https://spotintelligence.com/2023/01/25/text-normalization-techniquesnlp/
A. Joulin, E. Grave, P. Bojanowski, and T. Mikolov, “Bag of Tricks for Efficient Text Classification.” 2016. [Online]. Available: https://arxiv.org/abs/1607.01759
TensorFlow, “TensorFlow,” TensorFlow. Accessed: Oct. 07, 2024. [Online]. Available: https://www.tensorflow.org/
Loshchilov I. and Hutter F., “Decoupled weight decay regularization,” in Proceedings of the ICLR, 2019.
N.K. Nissa, “Text Messages Classification using LSTM, Bi-LSTM, and GRU,” Medium. Accessed: Oct. 07, 2024. [Online]. Available: https://nzlul.medium.com/theclassification-of-text-messages-using-lstm-bi-lstm-and-gruf79b207f90ad
PyTorch, “PyTorch documentation — PyTorch master documentation,” Pytorch.org. Accessed: Oct. 07, 2024. [Online]. Available: https://pytorch.org/docs/stable/index.html
Keras, “Home - Keras Documentation,” Keras.io. Accessed: Oct. 07, 2024. [Online]. Available: https://keras.io/
Scikit-Learn, “scikit-learn: machine learning in Python — scikit-learn 0.16.1 documentation,” Scikit-learn.org. Accessed: Oct. 07, 2024. [Online]. Available: https://scikit-learn.org/
J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova, “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.” 2019. [Online]. Available: https://arxiv.org/abs/1810.04805
Y. Liu et al., “RoBERTa: A Robustly Optimized BERT Pretraining Approach.” 2019. [Online]. Available: https://arxiv.org/abs/1907.11692
V. Sanh, L. Debut, J. Chaumond, and T. Wolf, “DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter.” 2020. [Online]. Available: https://arxiv.org/abs/1910.01108
A. Conneau et al., “Unsupervised Cross-lingual Representation Learning at Scale.” 2020. [Online]. Available: https://arxiv.org/abs/1911.02116
H. Jain, A. Agarwal, K. Shridhar, and D. Kleyko, “End to End Binarized Neural Networks for Text Classification,” ArXiv, vol. abs/2010.05223, 2020, [Online]. Available: https://api.semanticscholar.org/CorpusID:222290714
Google, “Colaboratory – Google,” research.google.com. Accessed: Oct. 07, 2024. [Online]. Available: https://research.google.com/colaboratory/faq.html