Применение глубокого машинного обучения к синтезу цепочки вызовов C#
Автор: Чебыкин А.Е., Кириленко Я.А.
Журнал: Труды Института системного программирования РАН @trudy-isp-ran
Статья в выпуске: 3 т.30, 2018 года.
Бесплатный доступ
Большая часть стандартных для программирования задач - например, соединение с базой данных, отображение картинки, чтение файла - давно реализована в различных библиотеках и доступна через соответствующие Application Programming Interfaces (APIs). Однако чтобы воспользоваться ими, разработчик должен сначала узнать, что они существуют, а затем - как правильно с ними работать. В настоящее время Интернет кажется наилучшим и самым популярным источником подобной информации. Недавно был предложен другой подход, основанный на глубоком машинном обучении и реализованный в виде инструмента под названием DeepAPI. По описанию желаемой функциональности на английском языке он генерирует цепочку вызовов Java функций. В данной статье мы показываем, как подход может быть перенесен на другой язык программирования (C# вместо Java), на котором доступно меньше открытого кода; мы описываем техники, позволившие достичь результата, близкого к оригинальному, а также техники, которые не улучшили производительность. Наконец, чтобы облегчить будущие исследования в области, мы публикуем наши набор данных, код и обученную модель.
Глубокое обучение, поиск кода, рекуррентная нейронная сеть, обучение с подкреплением
Короткий адрес: https://sciup.org/14916551
IDR: 14916551 | DOI: 10.15514/ISPRAS-2018-30(3)-5