КАРТОЧКА ПРОЕКТА ФУНДАМЕНТАЛЬНЫХ И ПОИСКОВЫХ НАУЧНЫХ ИССЛЕДОВАНИЙ,
ПОДДЕРЖАННОГО РОССИЙСКИМ НАУЧНЫМ ФОНДОМ
Информация подготовлена на основании данных из Информационно-аналитической системы РНФ, содержательная часть представлена в авторской редакции. Все права принадлежат авторам, использование или перепечатка материалов допустима только с предварительного согласия авторов.
ОБЩИЕ СВЕДЕНИЯ
Номер проекта 22-21-00493
НазваниеМетоды предварительного обучения графовых нейронных сетей для задач моделирования исходного кода программ
Руководитель Иванов Владимир Владимирович, Кандидат физико-математических наук
Организация финансирования, регион Автономная некоммерческая организация высшего образования "Университет Иннополис" , Республика Татарстан (Татарстан)
Конкурс №64 - Конкурс 2021 года «Проведение фундаментальных научных исследований и поисковых научных исследований малыми отдельными научными группами»
Область знания, основной код классификатора 01 - Математика, информатика и науки о системах; 01-726 - Системы и технологии интеллектуального анализа данных и распознавания образов
Ключевые слова анализ программного кода, векторные представления на графах, глубокие нейронные сети
Код ГРНТИ50.41.25
ИНФОРМАЦИЯ ИЗ ЗАЯВКИ
Аннотация
Программное обеспечение (ПО) присутствует практически в любой современной сфере деятельности человека. Однако спустя более чем полвека, прошедшие с зарождения программной инженерии, разработка ПО испытывает всё те же трудности. Большая часть проектов не укладывается либо в сроки, либо в бюджет. Несмотря на развитие новых методологий, автоматизации процессов разработки, одной из основных проблем в программной инженерии является низкое качество ПО. Одним из возможных путей для разрешения этой проблемы является автоматизация семантического анализа и поиска программного кода. Поэтому проект посвящен именно этой фундаментальной задаче: разработке и исследованию нового типа семантических представлений для анализа и поиска программного кода.
Современные методы анализа семантики текстов во многом опираются на векторные представления – вложения объектов в векторные пространства. Этот подход позволяет работать с текстовыми данными в рамках математических моделей. Современные методы создания векторных представлений, например word2vec (Mikolov T. et al. Distributed representations of words and phrases and their compositionality //Advances in neural information processing systems. – 2013. – С. 3111-3119.), позволяют сохранять семантику и взаимоотношения между объектами. Для обучения векторных представлений, таких как word2vec, требуются большие неразмеченные корпуса.
За последние 5 лет аналогичные методы успешно применялись и к программному коду. Основная причина применения таких подходов заключается в том, что не все дефекты исходного кода возможно обнаружить традиционными методами с высокой надежностью. Так, некоторые проблемы в исходном коде, например использование неправильных типов, легко обнаруживаются современными статическими анализаторами. В то же время, проблемы выявления неправильного использования переменных (не связанных с несовпадением типов), достаточно сложно формализовать. Использование методов машинного обучения позволяет заменить необходимость создания формального описания ошибки подготовкой размеченного набора данных и последующим обучением. Векторные представления лежат в основе любых современных методов машинного обучения. Однако, существующие векторные представления для кода имеют ряд недостатков, которые ограничивают их широкое применение. В данном проекте предлагается разработать новый вид векторных представлений на графах, которые будут более эффективны для работы именно с программным кодом, в частности для решения задач детектирования дефектов ПО, семантического анализа и поиска.
Проект направлен на решение научной проблемы исследования методов предварительного обучения графовых нейронных сетей для задач моделирования исходного кода программ.
ОТЧЁТНЫЕ МАТЕРИАЛЫ
Публикации
1.
Романов В.А., Иванов В.В.
Assessing the Importance of Global Relationships for Source Code Analysis Using Graph Neural Networks
Lecture Notes in Networks and Systems, volume 716, pp. 437–447 (год публикации - 2023)
10.1007/978-3-031-35501-1_44
2.
Романов В.А., Иванов В.В.
Prediction of Types in Python with Pre-trained Graph Neural Networks
2022 Ivannikov Memorial Workshop (IVMEM), IEEE, pp. 54-60 (год публикации - 2022)
10.1109/IVMEM57067.2022.9983956
Публикации
1.
Виталий Романов, Гсинизве Дламини, Айдар Валеев, Владимир Иванов
Leveraging Transformer and Graph Neural Networks for Variable Misuse Detection
SCITEPRESS – Science and Technology Publications, Lda., Proceedings of the 18th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE 2023), pages 727-733 ISBN: 978-989-758-647-7; ISSN: 2184-4895 (год публикации - 2023)
10.5220/0011997300003464
2.
Виталий Романов, Владимир Иванов
Сравнение графовых векторных представлений исходного кода с текстовыми моделями на основе архитектур CNN и CodeBERT
Труды Института системного программирования РАН (Труды ИСП РАН), Труды ИСП РАН, том 35, вып. 1, 2023 г., стр. 237-264 (год публикации - 2023)
10.15514/ISPRAS–2023–35(1)–15
3. Гсинизве Дламини, Ахмад Усман, Рэндалл Кхаркранг, Владимир Иванов Detecting design patterns in Android applications with CodeBERT embeddings and CK metrics Lecture Notes in Computer Science (год публикации - 2023)
4. Андрей Вагин, Виталий Романов, Владимир Иванов Evaluating Baselines for Type Inference: Static Code Analysis versus Large Language Model Lecture Notes in Networks and Systems (год публикации - 2024)