
Кто -нибудь может кодировать сейчас? Изучение помощи ИИ для не программистов
4 августа 2025 г.Таблица ссылок
Аннотация и 1 введение
2. Предыдущие концептуализации интеллектуальной помощи для программистов
3. Краткий обзор больших языковых моделей для генерации кода
4. Коммерческие инструменты программирования, которые используют большие языковые модели
5. Надежность, безопасность и последствия безопасности моделей ИИ, генерирующих код,
6. Изузаение юзабилити и дизайна программирования A-ассистентного
7. Опыт отчетов и 7.1. Писать эффективные подсказки сложно
7.2 Активность программирования сдвигается в сторону проверки и незнакомой отладки
7.3. Эти инструменты полезны для шаблона и повторного использования кода
8. Неадекватность существующих метафор для программирования A-A-Advisted
8.1. Помощь ИИ в качестве поиска
8.2. Помощь ИИ в качестве компиляции
8.3. Помощь ИИ в качестве парного программирования
8.4. Отчетливый способ программирования
9. Проблемы с применением программирования конечного пользователя
9.1. Выпуск 1: Спецификация намерений, разложение проблемы и вычислительное мышление
9.2. Выпуск 2: Правильность кода, качество и (над) уверенность
9.3. Выпуск 3: Понимание и обслуживание кода
9.4. Выпуск 4: Последствия автоматизации в программировании конечных пользователей
9.5. Выпуск 5: Код без кода и дилемма прямого ответа
10. Заключение
A. Источники отчета о испытании
Ссылки
Абстрактный
Большие языковые модели, такие как Codex Openai и альфакод DeepMind, могут генерировать код для решения различных проблем, выраженных на естественном языке. Эта технология уже была коммерциализирована по крайней мере в одном широко используемом расширении редактора программирования: GitHub Copilot.
В этой статье мы исследуем, как программирование с большими языковыми моделями (программирование с помощью LLM) аналогично и отличается от предварительной концептуализации помощи программиста. Мы опираемся на общедоступные отчеты об опыте программы с помощью LLM, а также предварительные исследования удобства использования и дизайна. Мы обнаруживаем, что, хотя программирование с помощью LLM разделяет некоторые свойства компиляции, парного программирования и программирования посредством поиска и повторного использования, существуют фундаментальные различия как в технических возможностях, так и в практическом опыте. Таким образом, программирование с помощью LLM должно рассматриваться как новый способ программирования с его собственными свойствами и проблемами.
Наконец, мы опираемся на наблюдения из пользовательского исследования, в котором программисты, не являющиеся экспертами, используют инструменты с помощью LLM для решения задач данных в электронных таблицах. Мы обсуждаем проблемы, которые могут возникнуть и открыть проблемы исследований, при применении крупных языковых моделей к программированию конечных пользователей, особенно с пользователями, которые практически не имеют опыта в программировании.
1. Введение
Сделанная помощь для программистов проявилась в различных формах, таких как программирование с помощью демонстрации, декларативных языков программирования и синтеза программы (раздел 2). Крупные языковые модели, такие как GPT, отмечают количественную и качественную пошаговую изменение в автоматической генерации кода и текста естественного языка. Это может быть связано с совокупными инновациями вектора-пространства встроенных слов, архитектуры трансформатора, крупных текстовых корпораций и предварительно обученных языковых моделей (раздел 3).
Эти модели были коммерциализированы в виде API, таких как Codex Openai, или в качестве инструментов программирования, таких как Copilot Github и Tabnine. Эти инструменты функционируют как своего рода расширенное автозаполнение, способное синтезировать несколько строк кода на основе подсказки в редакторе кода, который может быть естественным языком (например, комментарий), код (например, подпись функции) или специальная смесь. Возможности таких инструментов выходят далеко за рамки традиционного синтаксического автозаполнения и включают в себя возможность синтезировать целые функции, записать тестовые примеры и полные повторяющиеся шаблоны (раздел 4). Эти инструменты имеют последствия надежности, безопасности и безопасности (раздел 5).
Предыдущие лабораторные и телеметрические исследования в области удобства использования таких инструментов обнаруживают, что разработчики обычно ценят возможности этих инструментов и считают, что они являются положительным активом опыта разработки, несмотря на отсутствие сильного влияния на время выполнения задач или правильность. Основные проблемы с юзабилитию включают в себя задачу правильности кадрирования подсказок, а также усилия, необходимые для проверки и сгенерированного кода отладки (раздел 6).
Рассказы о продольном опыте о разработчиках поддерживают некоторые из лабораторных результатов, одновременно противоречащие другим. Проблемы правильных подсказок кадрирования и усилия по отладки также появляются здесь. Тем не менее, есть много сообщений о том, что эти инструменты на самом деле сильно сокращают время задачи (то есть ускоряют процесс разработки) (раздел 7).
Программирование с большими языковыми моделями предполагает сравнение с связанными способами программирования, такими как поиск, компиляция и парное программирование. Несмотря на то, что с каждым из них действительно есть сходства, эмпирические отчеты об опыте таких инструментов также показывают важные различия. Таким образом, поиск, компиляция и парное программирование являются неадекватными метафорами для природы программирования с помощью LLM; Это отличный способ программирования с собственной уникальной смесью свойств (раздел 8).
В то время как программирование с помощью LLM в настоящее время предназначено для экспертных программистов, возможно, самыми большими бенефициарами их способностей будут невыполненные программисты конечных пользователей. Тем не менее, есть проблемы с их прямым применением в сценариях программирования конечных пользователей. Благодаря изучению программирования конечного пользователя с помощью LLM в электронных таблицах мы раскрываем проблемы в спецификации намерения, правильности кода, понимания, настройки LLM и поведения конечного пользователя и мотивируем необходимость дальнейшего изучения в этой области (раздел 9).
Эта статья есть
Авторы:
(1) Advait Sarkar, Microsoft Research, Кембриджский университет (advait@microsoft.com);
(2) Эндрю Д. Гордон, Microsoft Research, Эдинбургский университет (adg@microsoft.com);
(3) Карина Негрину, Microsoft Research (cnegreanu@microsoft.com);
(4) Christian Poelitz, Microsoft Research (cpoelitz@microsoft.com);
(5) Sruti Srinivasa Ragavan, Microsoft Research (a-srutis@microsoft.com);
(6) Бен Зорн, Microsoft Research (ben.zorn@microsoft.com).
Оригинал