Является ли парный программист ИИ лучше, чем модель генерации кода на естественном языке?

С появлением все более сложных алгоритмов и моделей машинного обучения появляются новые увлекательные реализации ИИ. Начиная от автоматизации рабочих мест на складах Amazon и заканчивая прогнозированием фондового рынка, ИИ обучают выполнять задачи с большей скоростью и точностью, чем когда-либо прежде.

Наиболее заметным для разработки программного обеспечения является выпуск OpenAI Codex и GitHub Copilot, который вызвал шок в сообществе разработчиков программного обеспечения, и многие опасались, что они неизбежно захватят рабочие места разработчиков. Теперь, когда нет особых причин опасаться замены на ИИ, такой как OpenAI Codex или GitHub Copilot, перед разработчиками был задан интересный вопрос. Должен ли я использовать кодирующий ИИ? И если да, то какой мне использовать?

Стоит ли использовать кодирующий ИИ?

Давайте поговорим о первом вопросе: стоит ли использовать кодирующий ИИ? Проще говоря, ответ, вероятно, да. Во-первых, мы должны спросить себя, почему крупные технологические компании так много вкладывают в машинное обучение, а Microsoft инвестирует миллиарды долларов в фирму по разработке ИИ OpenAI, создателя Codex. Что ж, самые большие затраты, с которыми сталкивается большинство фирм-разработчиков, — это затраты на разработчиков.

Каждый час работы разработчика может стоить от 20 до 200 долларов в час. Умножьте это на тысячи разработчиков, работающих годами, и вы увидите значительное преимущество в увеличении скорости написания кода разработчиками. Внедрив такого помощника, как GitHub Copilot, разработчикам больше не нужно беспокоиться о мозговом штурме алгоритма или функции для выполнения конкретной задачи (по крайней мере, не так, как раньше), и вместо этого они могут сосредоточиться на реализации этой функции или алгоритма. .

Ускоряя рабочий процесс, фирмы-разработчики могут повысить производительность своих разработчиков и тратить меньше средств, получая при этом больше. Поэтому вполне вероятно, что через несколько лет кодирование вместе с ИИ станет нормой, а может быть, даже требованием для некоторых профессий. Таким образом, ИИ для кодирования не только повышает вашу производительность и позволяет вам больше сосредоточиться на том, что вы хотите, но и может стать необходимостью в ближайшее десятилетие.

Итак, какой ИИ следует использовать?

Если вам просто нужен краткий ответ, вы, вероятно, захотите использовать GitHub Copilot.

Однако, как и большинство вещей, это немного сложнее, чем кажется. GitHub Copilot и OpenAI Codex — это ИИ, которые при появлении запроса будут выводить код на разных языках, который часто очень точно соответствует тому, что вы ищете.

При этом основное различие между ними заключается в их соответствующих областях. OpenAI Codex и GitHub Copilot — это модели, обученные на модели языкового прогнозирования GPT-3, созданной OpenAI. Однако в то время как GitHub Copilot пишет код вместе с вами в вашем текстовом редакторе (как следует из названия), Codex требует, чтобы вы обращались к нему через их API или Playground.

Это может сделать использование Codex для завершения кода довольно утомительным из-за всех необходимых шагов. Возьмите этот небольшой пример в JavaScript, где я использую пакет узлов OpenAI для получения простой функции:

Как видите, все это для простой функции, которая возвращает квадратный корень из произведения. Самым большим предостережением OpenAI является его интерфейс, это будет просто процесс получения хорошего завершения кода от Codex, по крайней мере, на данный момент.

При этом довольно круто, что мы можем получить функцию на заданном языке, попросив ИИ сделать это для нас, используя наш собственный код. Итак, как бы мы сделали это с GitHub Copilot? Вот тот же пример с этим:

Теперь это довольно изящно; Мы не только значительно сокращаем время, необходимое для получения завершения, но мы можем использовать это непосредственно в нашем коде, нажимая клавишу Tab, или, если мы не чувствуем первое предложение, которое оно нам дает, мы можем нажать ATL + ] и ATL + [ для переключения между предложениями.

На данный момент ответ может показаться очевидным: GitHub Copilot можно использовать напрямую для автозаполнения вашего кода без необходимости выполнять утомительный процесс или взаимодействовать с движком на веб-сайте OpenAI. Однако есть несколько причин, по которым вы можете захотеть дать OpenAI больше шансов.

Прежде всего, GitHub Copilot действительно можно использовать только в нескольких IDE, список доступен здесь. Это означает, что разработчики, использующие неподдерживаемые IDE, не будут иметь большого доступа к этому инструменту, по крайней мере, пока. Поэтому на данный момент, по крайней мере, те из вас, кто не использует VSCode, могут принять недостатки интерфейса Codex для получения этих отличных дополнений кода.

Во-вторых, у Codex есть кое-что в рукаве, чего нет в наличии у пользователей GitHub Copilot — обучение. Правильно, вы можете создать свою собственную отлаженную модель OpenAI, передав ей обучающие данные из файлов. Если вы сделаете это, то теоретически он сможет генерировать гораздо более точные и подробные ответы, чем то, на что способен GitHub Copilot.

GitHub Copilot может понимать контекст файла и генерировать на его основе очень точное, но специфическое завершение кода. Однако, если вам нужно обучить модель Кодекса, скажем, на наборе файлов и коде из большого проекта, над которым вы работаете, то его завершение будет иметь гораздо больший контекст приложения, над которым вы работаете, потому что оно не ограничен файлом, в котором он находится.

В конце концов, при выборе между двумя из них имеет значение ваш вариант использования. Если вы хотите повысить свою производительность и быстрее писать код с быстрым, точным и встроенным завершением кода, вы, вероятно, смотрите на GitHub Copilot.

Честно говоря, большинство разработчиков, вероятно, находятся в этой группе и примут такое решение. При этом, если у вас есть конкретный вариант использования, когда вам нужны действительно точные и подробные завершения, API для взаимодействия с вашим приложением или вы не используете Microsoft IDE, OpenAI предоставит вам Codex.

Цены

В последнее время GitHub Copilot был выпущен для разработчиков, чтобы все могли попробовать… по цене. Теперь вы можете рассчитывать на 10 долларов в месяц, начиная с августа, за доступ к GitHub Copilot, если вы не можете доказать, что вы студент, или вы не поддерживаете большую базу кода с открытым исходным кодом. Таким образом, вы можете немного больше присматриваться к Кодексу сейчас с возможностью создания собственных инструментов автозавершения и API.

При этом Codex пока остается в закрытой бета-версии, и без доступа вы не получите ни одной из его функций. Codex также может позже перейти на платную или бесплатную подписку, как и большинство API, но мы не узнаем об этом, пока модель не будет выпущена.

На данный момент я бы посоветовал использовать GitHub Copilot, пока есть возможность, а затем, когда вам придется заплатить за него, подумайте больше о своих возможностях. Тем не менее, GitHub Copilot по-прежнему является отличным инструментом, и я думаю, что он стоит своих денег за производительность, которую он повышает в вашем рабочем процессе. В любом случае, я сомневаюсь, что вы будете разочарованы любым выбором.

Удачного программирования всем!