Enhancing Software Design and Developer Experience Via LLMs (Рубрика ML)
Иногда меня спрашивают почему я читаю whitepapers преимущественно от bigtech компаний. Часто я отвечаю, что они редко разачаровывают с точки зрения качества. Но тут я решил дать шанс другой статье, а точнее "Enhancing Software Design and Developer Experience Via LLMs" с "ASE '24: Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering"
Абстракт статьи звучит неплохо
- Первоначальное внимание уделяется способности моделей понимать концепции дизайна высокого уровня
- Впоследствии исследование переходит к расширенной генерации программных артефактов
- В конце вводятся методы, специфичные для организации или задачи, для повышения производительности и опыта разработчиков программного обеспечения. Но если читать дальше, то складывается ощущение, что саму статью писал LLM:) И из всего плана исследования сделан только обзор работы LLMs для генерации кода.
А дальше я расскажу подробности.
Во введении идет речь, что сейчас LLM обычно дают подсказки уже после коммитов, а хотелось бы давать их или на ранних стадиях или в рантайме. Для этого автор рассказывает, что создание софта - это не только про написание кода и там есть еще куча этапов CI/CD. Поэтому план исследования выглядит так
- Understand LLM - How LLMs handle code and natural language
- LLM for software design (Plan-Code-Build-Test), где автор выделил фазы
- Post commit. Identify problems and provide solutions
- Pre-commit. Predict problems
- Line level suggestion. Predict problems & provide hints while developers are working
- ML Plugin. Develop a framework that can provide ML hints to developers
- Generalize the framework. Apply the framework in other software development processes
Интересно, что автор фокусируется на использовании в своих предсказаниях логов
This project aims to advance the analysis and utilization of logs geneated during software development and testing. By implementing real-time log analysis and auto-suggestion features, the research seeks to improve the post-test phase and provide actionable insights for future testing, simulation, and maintenance activities
Во второй части статьи автор рассказывает базу про трансформеры, а также приводится обзор других статей, что исследовали эффективность LLMs при разработке софта.
В третьей части автор раскрывает карты и рассказывает про модель, которую он планирует использовать ... и это откопанная ~~стюардесса~~, а точнее методология Model-Driven Architecture (MDA) от Object Management Group прямиком из начала двухтысячных. Сама методология предполагает использование трех шагов
- Создание Platform-Independent Model (PIM)
- Преобразование PIM в Platform-Specific Model (PSM)
- И дальше генерация кода для выполнения
Автор исследования стремится предоставить решения, специфичные для организации или задачи, адаптированные к различным контекстам компании, а также структуру, способную обобщать эти решения для более широкого применения в индустрии программного обеспечения. Чтобы достичь этого, автор планирует сначала разработать PIM на основе домена, а затем PSM, которые отражают конкретные настройки и требования различных компаний. Впоследствии можно усовершенствовать первоначальную PIM на основе отзывов от PSM, тем самым создав стандартизированную архитектурную структуру, которую можно будет использовать в будущих проектах внутри определенного домена.
В четвертой части статьи авто рассказывает про то, как будет проиходить оценка работы моделей для PSM, где предплагается провести вычислительные эксперименты для предварительной обработки данных и оценки проектирования и процесса обучения модели. Это включает в себя файнтюнинг моделей и сравнение их производительности с другими предложенными моделями.
В пятой части автор рассказывает, что из всего описанного пока готов только обзор использования LLM при написании кода:)
P.S. В итоге, у нас whitepaper уровня курсовой работы студента, что он нагенерировал вместе с GPT-4 за пару вечеров - обзор нормальный, а все остальное в планах:)
#AI #ML #Software