Тип работы:
Предмет:
Язык работы:


Исследование генеративных моделей в задаче поиска оптимального ответа на специализированные вопросы на примере StackOverflow

Работа №143081

Тип работы

Дипломные работы, ВКР

Предмет

математика

Объем работы34
Год сдачи2023
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
15
Не подходит работа?

Узнай цену на написание


1 Обзор литературы 6
1.1 Архитектура Трансформер 6
1.1.1 Модуль самовнимания 6
1.1.2 Position-wise FF 8
1.1.3 Резидуальное соединение и нормализация 8
1.1.4 Позиционные презентации 9
1.2 Использование архитектуры Трансформер 9
1.3 Использование архитектуры Трансформер для задачи генерации кода 10
1.4 Обучение языковых моделей 11
1.5 Support Vector Machine 12
1.6 Метрики 12
2 Методы исследования 15
2.1 Фреймворк 15
2.2 Выбор списка ключевых слов 15
2.3 Необходимые наборы данных 16
2.4 Процедура обучения 17
3 Реализация 18
3.1 Задача и датасеты 18
3.2 Обучение классификатора ключевых слов 20
3.3 Выбор генеративных моделей 20
3.4 Обучение генеративной модели 20
3.5 Процедура эвалюации 21
4 Эксперименты и результаты 22
4.1 Обучение классификатора ключевых слов 22
4.2 Генерация кода на датасете CoNaLa 22
4.3 Генерация кода на датасете SO 23
4.4 Примеры сгенерированных фрагментов кода из датасета SO 24
4.4.1 Пример из таблицы 3 24
4.4.2 Пример из таблицы 4 24
4.5 Примеры сгенерированных фрагментов кода из датасета CoNaLa 25
4.5.1 Пример из таблицы 5 25
4.5.2 Пример из таблицы 6 27
4.6 Ограничения 27
4.6.1 Ограничения метрик 27
4.6.2 Ограничения метода 27
4.6.3 Ограничения моделей 29

Платформы CQA (Community Question Answering), где разработчики могут задавать вопро­сы по программированию и отвечать на них, революционировали способ поиска информации в интернете. Когда пользователь сталкивается с проблемой, он ищет решение через поис­ковые системы, такие как Yandex и Google. Исследования показывают, что разработчики Google делают в среднем около 12 поисковых запросов в неделю. Часто поисковые систе­мы направляют пользователей на платформы CQA, где они могут найти точные и полезные решения. Одним из наиболее популярных веб-сервисов такого типа является Stack Overflow. На момент мая 2023 года на этой платформе содержится более 24 миллионов вопросов, 35 миллионов ответов и 21 миллион активных пользователей.
Сообщество разработчиков и множество разрабатываемых ими проектов растет очень быстро. Количество пользователей GitHub, крупнейшего сервиса для совместной разработ­ки и хостинга проектов, выросло с 40 до 73 миллионов человек всего за два года. Такой стремительный рост в лишний раз подчеркивает важность Q&A платформ и, в частности, правильных ответов на них. Возможность быстро получить ответ/решение задачи помогает сохранить время каждого из миллионов разработчиков.
С появлением больших предобученных генеративных моделей, основанных на механизме внимания, таких как BERT и GPT, возник вопрос о возможности обучения модели для ответов на более сложные и специализированные вопросы, такие как те, которые встречают­ся на платформе Stack Overflow. Исследования показали, что модели, обученные на текстах, включающих как естественный язык, так и фрагменты кода, обладают способностью пони­мать программную составляющую таких текстов. Это открывает новые перспективы для разработки моделей, которые могут предоставлять качественные и точные ответы на вопро­сы, связанные с программированием.
Модель GPT-4, которая была недавно представлена, вызывает восхищение своими уни­кальными возможностями. Она успешно проходит экзамены по различным предметам, вклю­чая письменные работы, историю, биологию и другие области знаний, попадая в лучшие 10% участников тестов. В сравнении с предыдущей моделью GPT-3.5, которая попадала в среднем в 10% худших участников, это значительное улучшение. GPT-4 владеет более чем 20 языками, и на самых популярных языках в интернете она способна вести практически безошибочные разговоры.
Одной из впечатляющих особенностей GPT-4 является ее способность работать с визу­альным входом. Например, модель может объяснить содержимое и изображения на схемах, представленных на фотографиях учебника физики на французском языке. Это демон­стрирует значительное расширение возможностей языковых моделей, позволяющих им взаи­модействовать с различными типами данных и предоставлять более полные и точные ответы.
Быстрый прогресс и развитие больших языковых моделей, таких как GPT-4, подчеркива­ют актуальность и значимость исследований в этой области. Это открывает новые перспек­тивы для применения и улучшения подобных моделей в различных сферах, где требуется обработка естественного языка и анализ данных.
На бенчмарке по пониманию кода CodeXGLUE именно модели на основе механизма внимания являются SOTA (State Of The Art) во всех задачах, которых множество: детекция дефектов, исправление кода, перевод кода(с одного языка программирования на другой), предсказание типов и другие. Модели на основе механизма внимания позволяют улавливать зависимости и контекст в коде, а также использовать информацию из больших наборов дан­ных для улучшения своих предсказательных способностей.
Эти SOTA результаты свидетельствуют об эффективности моделей на основе механизма внимания в области понимания кода. Исследования в этой области продолжаются, и ожи­дается, что модели будут продолжать улучшаться и демонстрировать еще более точные и полезные результаты в различных задачах, связанных с анализом и обработкой программ­ного кода.
Данная работа направлена на исследование потенциала имеющихся языковых моделей в задаче поиска ответа на вопросы, заданные на платформе Stack Overflow. В рамках исследо­вания будет предложен новый метод дообучения таких моделей с учетом специфики данной задачи. После этого будут проведены эксперименты, направленные на подтверждение эф­фективности предложенного метода.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Результаты экспериментов, проведенных в этом исследовании показывают высокую эффек­тивность разработанной методики в задаче генерирования фрагмента кода по его описанию. Обученная модель SVM эффективно предсказывает необходимые библиотеки, а их добав­ление к запросу ведет к генерации более точных ответов. На публичном датасете CoNaLa лучшая модель смогла набрать 0.44 по метрике BLEU, что является заметным улучшением по сравнению с текущим лучшим результатом в 0.34.
Успешность проведенных экспериментов подводит к мысли, что добавление предметно­ориентированных знаний в качестве подсказок помогает улучшить качество больших генера­тивных моделей в общем случае. Что имеет большой смысл: генеративные модели в первую очередь учатся генерировать правдоподобный и последовательный текст, что не гарантирует какое-либо знание предметной области. Поэтому обучение отдельных моделей, которые пони­мают связи между ключевыми словами в области, и добавление этих знаний к генеративным моделям ведет к более качественной генерации.
Результаты работы были приняты к докладу на конференции International Conference on Computational science (ICCS 2023, A-rank) и публикации в издании Lecture Notes in Computer Science (Q2) на тему “Fine-Tuning Large Language Models for Answering Programming Questions with Code Snippets"


[1] Caitlin Sadowski, Kathryn T Stolee, and Sebastian Elbaum. How developers search for code: a case study. In Proceedings of the 2015 10th joint meeting on foundations of software engineering, pages 191-201, 2015.
[2] Stackexchange sites. https://stackexchange.com/sites. Accessed: 26.05.2023.
[3] Github’s global growth sees it reach developers in emerging markets. https://techmonitor.ai/technology/software/github-users-microsoft-thomas-dohmke. Accessed: 26.05.2023.
[4] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. Attention is all you need. Advances in neural information processing systems, 30, 2017.
[5] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.0f805,
2018.
[6] Yue Wang, Weishi Wang, Shafiq Joty, and Steven CH Hoi. Codet5: Identifier-aware unified pre-trained encoder-decoder models for code understanding and generation. arXiv preprint arXiv:2109.00859, 2021.
[7] OpenAI. Gpt-4 technical report, 2023.
[8] Shuai Lu, Daya Guo, Shuo Ren, Junjie Huang, Alexey Svyatkovskiy, Ambrosio Blanco, Colin Clement, Dawn Drain, Daxin Jiang, Duyu Tang, et al. Codexglue: A machine learning benchmark dataset for code understanding and generation. arXiv preprint arXiv:2102.04664, 2021.
[9] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770-778, 2016.
[10] Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E Hinton. Layer normalization. arXiv preprint arXiv:1607.06450, 2016.
[11] Kunihiko Fukushima. Cognitron: A self-organizing multilayered neural network. Biological cybernetics, 20(3-4):121-136, 1975.
[12] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N Dauphin. Convolutional sequence to sequence learning. In International conference on machine learning, pages 1243-1252. PMLR, 2017.
[13] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J Liu. Exploring the limits of transfer learning with a unified text-to-text transformer. The Journal of Machine Learning Research, 21(1):5485—5551, 2020.
[14] Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov, and Luke Zettlemoyer. Bart: Denoising sequence-to-sequence pre­training for natural language generation, translation, and comprehension. arXiv preprint arXiv:1910.13461, 2019.
[15] Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. Roberta: A robustly optimized bert pretraining approach. arXiv preprint arXiv:1907.11692, 2019.
... всего 51 источников


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ