Примечание редактора: с запуском ChatGPT на рынке появилось несколько помощников по генерации кода с искусственным интеллектом. Генеративный искусственный интеллект популярен и проник во все аспекты человеческой жизни. Действительно ли ИИ заменит людей-программистов? Разработчикам программ, как выжить и развиваться в мире ChatGPT? В этой статье мы поделимся четырьмя советами, которые помогут программистам опережать генеративный ИИ. Статья из перевода, надеюсь, она сможет вас вдохновить.
Источник изображения: сгенерировано Unbounded AI
Искусственный интеллект, особенно генеративный ИИ на основе больших языковых моделей (LLM), может изменить всю индустрию программистов. Но некоторые эксперты считают, что ИИ не заменит людей-программистов, по крайней мере, не сразу.
«Вам придется беспокоиться о людях, которые используют ИИ, чтобы заменить себя», — сказал Танишк Мэтью Абрахам, доктор биомедицинских технологий Калифорнийского университета в Дэвисе и генеральный директор MedARC, медицинского исследовательского центра искусственного интеллекта.
Итак, как разработчики программного обеспечения могут сделать себя более ценными и полезными по мере приближения эпохи кодирования LLM? Вот несколько советов и приемов для программистов, чтобы выжить и процветать в эпоху генеративного искусственного интеллекта.
Соблюдайте основные принципы и лучшие практики
Хотя многие помощники по кодированию на основе ИИ могут помочь нам писать код и генерировать код, базовая способность учиться программированию все еще существует, то есть способность читать и анализировать код, а также понимать, как код, который вы пишете, применим к большим системам. . **
«Я верю, что искусственный интеллект может значительно повысить производительность разработчиков программного обеспечения, но разработка программного обеспечения — это не только генерация кода, но и генерация пользовательских требований, отладка и тестирование и многое другое».
** Один из наиболее важных навыков программирования остается прерогативой программистов-людей: решение проблем. ** Анализ проблемы и поиск подходящего решения для нее остается высоко ценимым навыком кодирования.
«Программирование имеет свою творческую сторону, и эти навыки решения проблем важнее, чем фактический язык программирования или инструменты. Не увлекайтесь сравнениями с искусственным интеллектом, который является более или менее просто статистическим выводом большой языковой модели. Разработчики Существует разница между тем, что вы делаете, и тем, что выводит ваша модель, и для разработчика это нечто большее, чем просто написание кода», — сказала Инес Монтани, исследователь Python Software Foundation, соучредитель и генеральный директор Explosion.
Кроме того, **хорошие методы разработки программного обеспечения более ценны, чем когда-либо. **Эти методы включают планирование дизайна системы и архитектуры программного обеспечения, а программисты могут использовать инструменты искусственного интеллекта для более эффективного прогнозирования того, какой код понадобится дальше.
«Инженеры-программисты должны выяснить структуры данных для части кода, правильные абстракции для организации кода и требования к различным интерфейсам. Все это является основой практики разработки программного обеспечения, и они не исчезнут. на долгое время».
Найдите инструмент, который соответствует вашим потребностям
Поиск правильных инструментов ИИ имеет решающее значение. У каждого инструмента есть свой способ взаимодействия, и каждый инструмент можно интегрировать в рабочий процесс разработки различными способами, будь то автоматическое создание модульных тестов, генерация тестовых данных или написание документации.
Например, GitHub Copilot и другие помощники по программированию на основе ИИ могут расширить наши возможности кодирования и предоставить нам предложения по кодированию. ChatGPT и Google Bard, с другой стороны, больше похожи на диалоговых программистов ИИ, которые можно использовать для ответов на вопросы об API (интерфейс прикладного программирования) или для создания фрагментов кода.
** Главное экспериментировать. Попробуйте инструмент ИИ, ознакомьтесь с тем, как он работает, подумайте о качестве его вывода, а также будьте непредвзяты к другим инструментам ИИ. **Авраам сказал: «Область искусственного интеллекта быстро меняется. Вы не можете просто использовать определенный инструмент вечно, поэтому вам нужно быстро адаптироваться к новым инструментам».
Кроме того, рассмотрите соответствующий вариант использования. Генеративные инструменты искусственного интеллекта могут помочь нам быстро выучить новый язык программирования, а также могут создавать прототипы проектов за короткий промежуток времени.
Четкий и точный диалог необходим
При использовании помощника по кодированию ИИ уточните свои потребности и думайте об этом как об итеративном процессе. Абрахам предлагает написать комментарий, поясняющий код, чтобы помощник мог сгенерировать код, отвечающий вашим требованиям, на основе комментария.
Для программиста диалогового ИИ вам нужно знать, как лучше всего настроить подсказки, и именно здесь вступает в игру разработка подсказок.
Абрахам предложил использовать метод подсказки «цепочка мыслей». Этот метод на самом деле включает в себя стратегию «разделяй и властвуй», то есть разлагает проблему на несколько шагов, а затем решает их один за другим и, наконец, решает всю проблему. «Попросите модель сделать слишком много вещей за заданный промежуток времени, и она не будет работать должным образом. Что она должна делать, так это иметь возможность обрабатывать управляемые фрагменты информации и генерировать управляемые фрагменты кода», — сказал он.
Например, вместо того, чтобы просить программиста ИИ написать всю программу с нуля, хорошенько подумайте обо всех задачах, которые программа должна выполнить. ** Разделение этих задач также требует, чтобы модель писала определенные функции для каждой задачи, что требует от модели действий, которые необходимо предпринять для достижения определенной задачи. **
«Подумайте об этом как об умном стажере, который хорошо разбирается в предмете, но не имеет большого опыта», — говорит Абрахам.
Точность и четкость конструкции наконечника очень важны. Абрахам отметил: «Вы должны очень четко сказать модели, чего вы хотите, очень точно сказать, какую проблему вы просите ее решить, и убедиться, что вы ее выполняете».
** Также полезно изучить основные концепции искусственного интеллекта и машинного обучения, а также понять, как работают большие языковые модели, а также их сильные и слабые стороны. ** Вам нужно будет провести исследование, но для оценки результата необходим здравый смысл.
Чтобы помочь вам начать работу, Абрахам рекомендует OpenAI Cookbook, который включает главы о библиотеках и инструментах подсказок, руководствах с подсказками, видеоуроках и многом другом, а Вайслингейм рекомендует прочитать Illustrated Transformer, чтобы узнать больше об основах моделей и машинного обучения.
Будьте критичны и помните о рисках
Инженеры-программисты должны критически относиться к выходным данным больших языковых моделей, поскольку они склонны вызывать галлюцинации и генерировать фиктивный, неточный или даже ошибочный код. «Слепое использование кода, сгенерированного ИИ, может легко привести к тупикам, и трудно обнаружить тонкие ошибки», — сказал Вайслингейм.
«Вот почему так важно проверять сгенерированный код, который, добавляя некоторую работу, может принести больше вреда, чем пользы для производительности», — сказал Вайслингейм. нуля, и это гораздо более быстрый способ сгенерировать код, проверить его, а затем интегрировать в существующую кодовую базу».
Давайте проанализируем выходные данные этих моделей и зададим следующие вопросы: **На каких данных обучалась эта модель? Какие данные были отфильтрованы, а какие нет? Каковы данные обучения? На какой версии языка программирования, программного пакета или библиотеки обучалась модель? Ответы на эти вопросы могут повлиять на результаты и предоставить более актуальную информацию. **
Разработчикам также следует опасаться ввода в эти модели проприетарного кода. Некоторые компании, такие как Tabnine, предлагают корпоративные версии помощников по программированию на основе ИИ, которые изучают корпоративные шаблоны и стили кодирования, обеспечивая при этом конфиденциальность.
Еще одним соображением является авторское право, хотя, если вы используете эти инструменты для завершения нескольких строк кода или создания кода для обычных, тривиальных задач, вопросы авторского права вызывают меньше беспокойства, чем создание больших фрагментов кода.
«Программисты должны иметь некоторое представление об изобретательности того, что они пытаются сделать, и о том, насколько хорошо эта изобретательность вписывается в их среду», — сказал Лесама. «Если код, сгенерированный моделью, обладает некоторой оригинальностью, к нему нужно относиться с подозрением и подозрением, прежде чем помещать его в кодовую базу».
Более серьезной проблемой является безопасность кода, поскольку эти модели могут генерировать код, содержащий уязвимости. Вайслингейм считает, что передовые методы разработки программного обеспечения, такие как проверка кода и надежные конвейеры тестирования, могут помочь защититься от этого риска.
"Одна из вещей, которую более опытные инженеры-программисты могут предложить, - это наиболее распространенные уязвимости в коде и наиболее распространенные способы уязвимости кода, - сказал Лесама. - Они разовьют интуицию о том, где искать, какие места вызовет настороженность. В будущем такие технологии станут еще более важной частью портфеля разработки программного обеспечения. "
Чтобы программисты выжили в мире генеративного ИИ, им необходимо рассматривать ИИ как инструмент и интегрировать его в свой рабочий процесс, признавая при этом возможности и ограничения этих инструментов и полагаясь на способность человека кодировать для роста и развития.
Переводчик: Араон_
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Как программисты выживают в мире ChatGPT?
Источник: Бюро переводов «Божественный перевод».
Примечание редактора: с запуском ChatGPT на рынке появилось несколько помощников по генерации кода с искусственным интеллектом. Генеративный искусственный интеллект популярен и проник во все аспекты человеческой жизни. Действительно ли ИИ заменит людей-программистов? Разработчикам программ, как выжить и развиваться в мире ChatGPT? В этой статье мы поделимся четырьмя советами, которые помогут программистам опережать генеративный ИИ. Статья из перевода, надеюсь, она сможет вас вдохновить.
Искусственный интеллект, особенно генеративный ИИ на основе больших языковых моделей (LLM), может изменить всю индустрию программистов. Но некоторые эксперты считают, что ИИ не заменит людей-программистов, по крайней мере, не сразу.
«Вам придется беспокоиться о людях, которые используют ИИ, чтобы заменить себя», — сказал Танишк Мэтью Абрахам, доктор биомедицинских технологий Калифорнийского университета в Дэвисе и генеральный директор MedARC, медицинского исследовательского центра искусственного интеллекта.
Итак, как разработчики программного обеспечения могут сделать себя более ценными и полезными по мере приближения эпохи кодирования LLM? Вот несколько советов и приемов для программистов, чтобы выжить и процветать в эпоху генеративного искусственного интеллекта.
Соблюдайте основные принципы и лучшие практики
Хотя многие помощники по кодированию на основе ИИ могут помочь нам писать код и генерировать код, базовая способность учиться программированию все еще существует, то есть способность читать и анализировать код, а также понимать, как код, который вы пишете, применим к большим системам. . **
«Я верю, что искусственный интеллект может значительно повысить производительность разработчиков программного обеспечения, но разработка программного обеспечения — это не только генерация кода, но и генерация пользовательских требований, отладка и тестирование и многое другое».
** Один из наиболее важных навыков программирования остается прерогативой программистов-людей: решение проблем. ** Анализ проблемы и поиск подходящего решения для нее остается высоко ценимым навыком кодирования.
«Программирование имеет свою творческую сторону, и эти навыки решения проблем важнее, чем фактический язык программирования или инструменты. Не увлекайтесь сравнениями с искусственным интеллектом, который является более или менее просто статистическим выводом большой языковой модели. Разработчики Существует разница между тем, что вы делаете, и тем, что выводит ваша модель, и для разработчика это нечто большее, чем просто написание кода», — сказала Инес Монтани, исследователь Python Software Foundation, соучредитель и генеральный директор Explosion.
Кроме того, **хорошие методы разработки программного обеспечения более ценны, чем когда-либо. **Эти методы включают планирование дизайна системы и архитектуры программного обеспечения, а программисты могут использовать инструменты искусственного интеллекта для более эффективного прогнозирования того, какой код понадобится дальше.
«Инженеры-программисты должны выяснить структуры данных для части кода, правильные абстракции для организации кода и требования к различным интерфейсам. Все это является основой практики разработки программного обеспечения, и они не исчезнут. на долгое время».
Найдите инструмент, который соответствует вашим потребностям
Поиск правильных инструментов ИИ имеет решающее значение. У каждого инструмента есть свой способ взаимодействия, и каждый инструмент можно интегрировать в рабочий процесс разработки различными способами, будь то автоматическое создание модульных тестов, генерация тестовых данных или написание документации.
Например, GitHub Copilot и другие помощники по программированию на основе ИИ могут расширить наши возможности кодирования и предоставить нам предложения по кодированию. ChatGPT и Google Bard, с другой стороны, больше похожи на диалоговых программистов ИИ, которые можно использовать для ответов на вопросы об API (интерфейс прикладного программирования) или для создания фрагментов кода.
** Главное экспериментировать. Попробуйте инструмент ИИ, ознакомьтесь с тем, как он работает, подумайте о качестве его вывода, а также будьте непредвзяты к другим инструментам ИИ. **Авраам сказал: «Область искусственного интеллекта быстро меняется. Вы не можете просто использовать определенный инструмент вечно, поэтому вам нужно быстро адаптироваться к новым инструментам».
Кроме того, рассмотрите соответствующий вариант использования. Генеративные инструменты искусственного интеллекта могут помочь нам быстро выучить новый язык программирования, а также могут создавать прототипы проектов за короткий промежуток времени.
Четкий и точный диалог необходим
При использовании помощника по кодированию ИИ уточните свои потребности и думайте об этом как об итеративном процессе. Абрахам предлагает написать комментарий, поясняющий код, чтобы помощник мог сгенерировать код, отвечающий вашим требованиям, на основе комментария.
Для программиста диалогового ИИ вам нужно знать, как лучше всего настроить подсказки, и именно здесь вступает в игру разработка подсказок.
Абрахам предложил использовать метод подсказки «цепочка мыслей». Этот метод на самом деле включает в себя стратегию «разделяй и властвуй», то есть разлагает проблему на несколько шагов, а затем решает их один за другим и, наконец, решает всю проблему. «Попросите модель сделать слишком много вещей за заданный промежуток времени, и она не будет работать должным образом. Что она должна делать, так это иметь возможность обрабатывать управляемые фрагменты информации и генерировать управляемые фрагменты кода», — сказал он.
Например, вместо того, чтобы просить программиста ИИ написать всю программу с нуля, хорошенько подумайте обо всех задачах, которые программа должна выполнить. ** Разделение этих задач также требует, чтобы модель писала определенные функции для каждой задачи, что требует от модели действий, которые необходимо предпринять для достижения определенной задачи. **
«Подумайте об этом как об умном стажере, который хорошо разбирается в предмете, но не имеет большого опыта», — говорит Абрахам.
Точность и четкость конструкции наконечника очень важны. Абрахам отметил: «Вы должны очень четко сказать модели, чего вы хотите, очень точно сказать, какую проблему вы просите ее решить, и убедиться, что вы ее выполняете».
** Также полезно изучить основные концепции искусственного интеллекта и машинного обучения, а также понять, как работают большие языковые модели, а также их сильные и слабые стороны. ** Вам нужно будет провести исследование, но для оценки результата необходим здравый смысл.
Чтобы помочь вам начать работу, Абрахам рекомендует OpenAI Cookbook, который включает главы о библиотеках и инструментах подсказок, руководствах с подсказками, видеоуроках и многом другом, а Вайслингейм рекомендует прочитать Illustrated Transformer, чтобы узнать больше об основах моделей и машинного обучения.
Будьте критичны и помните о рисках
Инженеры-программисты должны критически относиться к выходным данным больших языковых моделей, поскольку они склонны вызывать галлюцинации и генерировать фиктивный, неточный или даже ошибочный код. «Слепое использование кода, сгенерированного ИИ, может легко привести к тупикам, и трудно обнаружить тонкие ошибки», — сказал Вайслингейм.
«Вот почему так важно проверять сгенерированный код, который, добавляя некоторую работу, может принести больше вреда, чем пользы для производительности», — сказал Вайслингейм. нуля, и это гораздо более быстрый способ сгенерировать код, проверить его, а затем интегрировать в существующую кодовую базу».
Давайте проанализируем выходные данные этих моделей и зададим следующие вопросы: **На каких данных обучалась эта модель? Какие данные были отфильтрованы, а какие нет? Каковы данные обучения? На какой версии языка программирования, программного пакета или библиотеки обучалась модель? Ответы на эти вопросы могут повлиять на результаты и предоставить более актуальную информацию. **
Разработчикам также следует опасаться ввода в эти модели проприетарного кода. Некоторые компании, такие как Tabnine, предлагают корпоративные версии помощников по программированию на основе ИИ, которые изучают корпоративные шаблоны и стили кодирования, обеспечивая при этом конфиденциальность.
Еще одним соображением является авторское право, хотя, если вы используете эти инструменты для завершения нескольких строк кода или создания кода для обычных, тривиальных задач, вопросы авторского права вызывают меньше беспокойства, чем создание больших фрагментов кода.
«Программисты должны иметь некоторое представление об изобретательности того, что они пытаются сделать, и о том, насколько хорошо эта изобретательность вписывается в их среду», — сказал Лесама. «Если код, сгенерированный моделью, обладает некоторой оригинальностью, к нему нужно относиться с подозрением и подозрением, прежде чем помещать его в кодовую базу».
Более серьезной проблемой является безопасность кода, поскольку эти модели могут генерировать код, содержащий уязвимости. Вайслингейм считает, что передовые методы разработки программного обеспечения, такие как проверка кода и надежные конвейеры тестирования, могут помочь защититься от этого риска.
"Одна из вещей, которую более опытные инженеры-программисты могут предложить, - это наиболее распространенные уязвимости в коде и наиболее распространенные способы уязвимости кода, - сказал Лесама. - Они разовьют интуицию о том, где искать, какие места вызовет настороженность. В будущем такие технологии станут еще более важной частью портфеля разработки программного обеспечения. "
Чтобы программисты выжили в мире генеративного ИИ, им необходимо рассматривать ИИ как инструмент и интегрировать его в свой рабочий процесс, признавая при этом возможности и ограничения этих инструментов и полагаясь на способность человека кодировать для роста и развития.
Переводчик: Араон_