Будут ли большие языковые модели поставить конец программированию?
Как большие языковые модели изменят мир программирования?
На прошлой неделе OpenAI отметила значимый этап, представив GPT-4 Turbo на своем мероприятии OpenAI DevDay. Одной из главных особенностей GPT-4 Turbo является расширенное контекстное окно в 128 000, что значительно превышает 8 000 предыдущей версии GPT-4. Это улучшение позволяет обрабатывать текст в 16 раз больше, чем предыдущая версия, что эквивалентно примерно 300 страницам текста.
Этот прогресс связан с другим значимым развитием: потенциальным влиянием на ландшафт стартапов SaaS.
Появление ChatGPT Enterprise от OpenAI с его передовыми возможностями ставит перед многими стартапами SaaS вызов. Эти компании, которые предлагали продукты и услуги вокруг ChatGPT или его API, теперь сталкиваются с конкуренцией от инструмента с возможностями корпоративного уровня. Предлагаемые ChatGPT Enterprise функции, такие как проверка домена, одноэлементная аутентификация и аналитика использования, напрямую перекрываются с несколькими существующими B2B-сервисами, что может подвергнуть опасности выживание этих стартапов.
На ключевом событии генеральный директор OpenAI Сэм Альтман объявил еще одно значительное развитие: расширение временного ограничения знаний для GPT-4 Turbo. В отличие от GPT-4, которая владела информацией только до 2021 года, GPT-4 Turbo обновлен информацией до апреля 2023 года, что является значительным шагом вперед в актуальности и применимости искусственного интеллекта.
- Десять паттернов и антипаттернов в экспериментах с глубоким обучением
- «Может ли синтетическое создание клинических текстов повернуть клинические задачи NLP в сторону революции? Познакомьтесь с ClinGen Искусственный интеллект, включающий извлечение клинических знаний и контекстно-поддерживаемый LLM-подход».
- Можно ли упростить блоки трансформатора, не ущемляя эффективность? Эта научная статья ИИ от Этского университета исследует баланс между сложностью конструкции и производительностью.
ChatGPT Enterprise выделяется функциями такими, как улучшенная безопасность и конфиденциальность, быстрый доступ к GPT-4 и расширенное контекстное окно для длинных вводов. Его возможности для анализа данных, настройки и отсутствие ограничений на использование делают его превосходным выбором по сравнению с его предшественниками. Возможность обработки больших вводов и файлов, а также неограниченный доступ к расширенным инструментам анализа данных, таким как ранее известный Code Interpreter, дополнительно подтверждают его привлекательность, особенно среди ранее сомневающихся бизнесов из-за проблем безопасности данных.
Эпоха ручного создания кода уступает место системам, основанным на искусственном интеллекте, обученным, а не программированным, что означает фундаментальное изменение в разработке программного обеспечения.
Скучные задачи программирования вскоре могут быть доверены искусственному интеллекту, минимизируя необходимость в глубоком знании кодирования. Инструменты, такие как GitHub’s CoPilot и Ghostwriter от Replit, которые помогают в кодировании, являются ранними индикаторами расширения роли искусственного интеллекта в программировании, указывая на будущее, где искусственный интеллект превосходит помощь и полностью управляет процессом программирования. Представьте себе обычную ситуацию, когда программист забывает синтаксис для развертывания списка на определенном языке. Вместо поиска на онлайн-форумах и статей CoPilot предлагает немедленную помощь, ориентируя программиста на цель.
Переход от низкоуровневого кодирования к разработке, основанной на искусственном интеллекте
Инструменты low-code и no-code упростили процесс программирования, автоматизировали создание основных блоков кода и освободили разработчиков для концентрации на творческих аспектах своих проектов. Однако, с появлением новой волны искусственного интеллекта, ландшафт меняется далее. Простота пользовательского интерфейса и возможность генерировать код с помощью простых команд вроде “Создайте для меня веб-сайт для выполнения X” революционизируют процесс.
Влияние искусственного интеллекта на программирование уже огромно. Аналогично тому, как ранние компьютерные ученые перешли от фокуса на электротехнику к более абстрактным концепциям, будущие программисты могут считать подробное кодирование устаревшим. Быстрое развитие искусственного интеллекта не ограничивается генерацией текста/кода. В областях, таких как генерация изображений и диффузионные модели, например Runway ML, DALL-E 3, наблюдаются значительные улучшения. Примером может служить твит от Runway, демонстрирующий их последнюю функцию.
Introducing, Motion Brush.
A new way to add controlled movement to your generations.
Coming soon to Gen-2. pic.twitter.com/htyjf1gstz
— Runway (@runwayml) November 10, 2023
Выходя за пределы программирования, влияние искусственного интеллекта на креативные отрасли также обещает быть преобразовательным. Джефф Катценберг, гигант в киноиндустрии и бывший председатель студий Уолта Диснея, предсказывает, что искусственный интеллект значительно снизит стоимость производства анимационных фильмов. Согласно недавней статье от Bloomberg, Катценберг предвидит радикальное сокращение затрат на 90%. Это может включать автоматизацию трудоемких задач, таких как создание фрагментов в традиционной анимации, отрисовка сцен, а также помощь в творческих процессах, таких как создание персонажей и создание сценария.
Экономическая эффективность использования ИИ при написании кода
Анализ затрат на найм программиста:
- Общая компенсация: Средняя зарплата программиста, включая дополнительные льготы, в технологических центрах, таких как Силиконовая Долина или Сиэтл, составляет примерно 312 000 долларов в год.
Анализ затрат в день:
- Рабочие дни в году: Учитывая, что в году примерно 260 рабочих дней, ежедневная стоимость найма программиста составляет около 1200 долларов.
- Результативность кодирования: Полагаясь на щедрую оценку 100 законченных, протестированных, рецензируемых и утвержденных строк кода в день, эта ежедневная продуктивность является основой для сравнения.
Анализ затрат использования GPT-3 для генерации кода:
- Стоимость токена: Стоимость использования GPT-3, на момент видео, составляла примерно 0,02 доллара за 1000 токенов.
- Токенов в строке кода: В среднем, строка кода может содержать около 10 токенов.
- Стоимость 100 строк кода: Таким образом, стоимость генерации 100 строк кода (или 1000 токенов) с использованием GPT-3 составляет примерно 0,12 доллара.
Сравнительный анализ:
- Стоимость строки кода (человек против ИИ): Сравнивая затраты, генерация 100 строк кода в день обойдется в 1200 долларов при выполнении человеком-программистом, в отличие от всего лишь 0,12 доллара при использовании GPT-3.
- Фактор стоимости: Это разница в стоимости примерно в 10 000 раз, ИИ значительно дешевле.
Этот анализ указывает на экономический потенциал ИИ в области программирования. Низкая стоимость кода, созданного ИИ, по сравнению с высокими расходами на разработчиков, предполагает будущее, в котором ИИ может стать предпочтительным методом генерации кода, особенно для стандартных или повторяющихся задач. Этот переход может привести к значительным экономическим выгодам для компаний и переоценке роли человеческих программистов, возможно, сосредоточивая их умения на более сложных, творческих или контрольных задачах, которые ИИ пока не может обработать.
Вариативность ChatGPT распространяется на различные контексты программирования, включая сложные взаимодействия с фреймворками веб-разработки. Рассмотрим ситуацию, когда разработчик работает с React, популярной библиотекой JavaScript для создания пользовательских интерфейсов. Традиционно, в этой задаче требуется изучение обширной документации и предоставленных сообществом примеров, особенно при работе с сложными компонентами или управлении состоянием.
С помощью ChatGPT этот процесс упрощается. Разработчик может просто описать функциональность, которую он хочет реализовать в React, и ChatGPT предоставит соответствующие и готовые к использованию фрагменты кода. Это может быть создание основной структуры компонента или более сложные функции, такие как управление состоянием с помощью хуков или интеграция с внешними API. За счет сокращения времени, затраченного на исследования и проб и ошибок, ChatGPT повышает эффективность и ускоряет разработку проектов в контексте веб-разработки.
Проблемы в программировании, основанном на ИИ
Поскольку ИИ продолжает менять ландшафт программирования, важно учесть ограничения и проблемы, связанные с полной зависимостью от ИИ для программирования. Эти проблемы подчеркивают необходимость сбалансированного подхода, использующего преимущества ИИ, но учитывающего его ограничения.
- Качество кода и его поддержка: Иногда код, созданный ИИ, может быть длинным или неэффективным, что может привести к сложностям в поддержке. Хотя ИИ может создавать функциональный код, обеспечение его соответствия лучшим практикам по читаемости, эффективности и поддержке остается задачей человека.
- Ошибки и обработка исключений: Системы ИИ могут быстро создавать код, но не всегда справляются с отладкой или пониманием тонкостей ошибок в существующем коде. Сложности отладки, особенно в больших и сложных системах, часто требуют искусного понимания и опыта человека.
- Зависимость от исходных данных: Эффективность ИИ в программировании в значительной степени зависит от качества и охвата обучающих данных. Если обучающие данные не содержат примеров определенных ошибок, шаблонов или сценариев, способность ИИ управлять этими ситуациями ограничена.
- Этические и безопасность вопросы: При более активной роли ИИ в кодировании возникают этические и безопасности вопросы, особенно в отношении конфиденциальности данных и возможных предубеждений в коде, созданном ИИ. Обеспечение этичного использования и устранение этих предубеждений является важным для ответственной разработки программных инструментов, основанных на ИИ.
Сбалансирование навыков искусственного интеллекта и традиционного программирования
В будущем разработке программного обеспечения, возможно, появится гибридная модель. Менеджеры продукта могут переводить требования в указания для генераторов кода искусственного интеллекта. Человеческий контроль по-прежнему может потребоваться для обеспечения качества, но акцент будет смещен с написания и поддержки кода на проверку и настройку результатов, созданных искусственным интеллектом. Это изменение предполагает сокращение внимания к традиционным принципам кодирования, таким как модульность и абстракция, так как код, созданный искусственным интеллектом, не обязан соответствовать стандартам обслуживания, ориентированным на человека.
В этой новой эпохе роль инженеров и компьютерных ученых значительно изменится. Они будут взаимодействовать с LLM, предоставляя обучающие данные и примеры для выполнения задач, перекладывая акцент с тонкой разработки кода на стратегическую работу с моделями искусственного интеллекта.
Основной вычислительный блок перейдет от традиционных процессоров к масштабным предварительно обученным моделям LLM, что представляет собой отход от предсказуемых статических процессов к динамичным, адаптивным агентам искусственного интеллекта.
Фокус переходит от создания и понимания программ к руководству моделями искусственного интеллекта, переопределяя роли компьютерных ученых и инженеров и перекраивая наше взаимодействие с технологией.
Постоянная необходимость человеческого понимания в коде, созданном искусственным интеллектом
Будущее программирования связано менее с кодированием и больше с направлением интеллекта, который будет управлять нашим технологическим миром.
Уверенность в том, что искусственный интеллект может полностью заменить точность и сложность формальных математических обозначений и традиционного программирования, наилучшем случае, преждевременна. Переход к использованию искусственного интеллекта в программировании не исключает необходимость в строгости и точности, которые могут обеспечить только формальное программирование и математические навыки.
Кроме того, остается значительная проблема тестирования кода, созданного искусственным интеллектом, для решения ранее неразрешимых проблем. Техники, такие как тестирование на основе свойств, требуют глубокого понимания программирования, навыков, которые искусственный интеллект в своем текущем состоянии не может воспроизвести или заменить.
В итоге, хотя искусственный интеллект обещает автоматизацию многих аспектов программирования, человеческий элемент остается важным, особенно в областях, требующих творчества, сложного решения проблем и этического контроля.