Кто -нибудь может кодировать сейчас? Изучение помощи ИИ для не программистов

Кто -нибудь может кодировать сейчас? Изучение помощи ИИ для не программистов

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. Источники отчета о испытании

Ссылки

Figure 1 – Code generation using the GitHub Copilot editor extension. The portion highlighted in blue has been generated by the model. Left: a function body, generated based on a textual description in a comment. Right: a set of generated test cases. Source: copilot.github.com

Абстрактный

Большие языковые модели, такие как 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).

Эта статья естьДоступно на ArxivПод CC BY-NC-ND 4.0 Лицензия.

Авторы:

(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).


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE