Тема: Исследование генеративных моделей в задаче поиска оптимального ответа на специализированные вопросы на примере StackOverflow
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
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
📖 Введение
Сообщество разработчиков и множество разрабатываемых ими проектов растет очень быстро. Количество пользователей 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. В рамках исследования будет предложен новый метод дообучения таких моделей с учетом специфики данной задачи. После этого будут проведены эксперименты, направленные на подтверждение эффективности предложенного метода.
✅ Заключение
Успешность проведенных экспериментов подводит к мысли, что добавление предметноориентированных знаний в качестве подсказок помогает улучшить качество больших генеративных моделей в общем случае. Что имеет большой смысл: генеративные модели в первую очередь учатся генерировать правдоподобный и последовательный текст, что не гарантирует какое-либо знание предметной области. Поэтому обучение отдельных моделей, которые понимают связи между ключевыми словами в области, и добавление этих знаний к генеративным моделям ведет к более качественной генерации.
Результаты работы были приняты к докладу на конференции 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"





