Примітка редактора: із запуском ChatGPT на ринку з’явилася низка помічників для створення коду штучного інтелекту. Генеративний штучний інтелект зараз дуже популярний і проник у всі аспекти людського життя. Чи справді ШІ замінить людей-програмістів? Для розробників програм, як вижити та розвиватися у світі ChatGPT? У цій статті ви знайдете 4 поради, які допоможуть програмістам-людям випередити генеративний ШІ. Стаття з перекладу, сподіваюся, вона надихне вас.
Джерело зображення: створено Unbounded AI
Штучний інтелект, особливо генеративний ШІ на базі великих мовних моделей (LLM), має потенціал підірвати всю галузь програмістів. Але деякі експерти вважають, що ШІ не замінить людей-програмістів, принаймні не відразу.
«Вам доведеться турбуватися про людей, які використовують штучний інтелект, щоб замінити себе», — сказав Танішк Метью Абрахам, доктор філософії з біомедичної інженерії в Каліфорнійському університеті в Девісі та генеральний директор MedARC, медичного дослідницького центру штучного інтелекту.
Отже, як розробники програмного забезпечення можуть зробити себе більш цінними та корисними з наближенням епохи програмування LLM? Ось кілька порад і хитрощів для програмістів, щоб вижити й процвітати в епоху генеративного штучного інтелекту.
Дотримуйтесь основних принципів і найкращих практик
Незважаючи на те, що багато помічників кодування на основі штучного інтелекту можуть допомогти нам писати код і генерувати код, базові навички програмування все одно потрібні, тобто вміння читати й аналізувати код і розуміти, як код, який ви пишете, застосовується до великих систем. **
«Я вірю, що штучний інтелект може значно підвищити продуктивність розробників програмного забезпечення, але розробка програмного забезпечення полягає не лише у створенні коду, а й у створенні вимог користувача, налагодженні та тестуванні тощо».
**Одна з найбільш невід’ємних навичок програмування залишається сферою програмістів: вирішення проблем. ** Аналіз проблеми та пошук відповідного рішення залишається високо цінуваною майстерністю кодування.
«Програмування має свою творчу сторону, і ці навички вирішення проблем важливіші, ніж фактична мова програмування чи інструменти. Не зациклюйтесь на порівняннях зі штучним інтелектом, який більш-менш є просто статистичним результатом великої мовної моделі. Розробники Є різниця між тим, що ви робите, і тим, що видає ваша модель, і як розробник, це більше, ніж просто написання коду», – сказала Інес Монтані, дослідник Python Software Foundation і співзасновник і генеральний директор Explosion.
Крім того, **хороші методи розробки програмного забезпечення цінніші, ніж будь-коли. **Ці практики включають планування дизайну системи та архітектури програмного забезпечення, і програмісти можуть використовувати інструменти штучного інтелекту, щоб ефективніше передбачати, який код знадобиться наступним.
«Інженери-програмісти повинні з’ясувати структуру даних для частини коду, правильні абстракції для організації коду та вимоги до різних інтерфейсів. Усе це є основою практики розробки програмного забезпечення, і вони нікуди не зникнуть. ще довго».
Знайдіть інструмент, який відповідає вашим потребам
Знайти правильні інструменти штучного інтелекту дуже важливо. Кожен інструмент має власний спосіб взаємодії, і кожен інструмент може бути інтегрований у робочий процес розробки різними способами, будь то автоматичне створення модульних тестів, генерація тестових даних або написання документації.
Наприклад, GitHub Copilot та інші помічники кодування ШІ можуть розширити наші можливості кодування та надати нам пропозиції кодування. ChatGPT і Bard від Google, з іншого боку, більше схожі на розмовних програмістів штучного інтелекту, які можна використовувати для відповідей на запитання про API (інтерфейс програмування додатків) або генерувати фрагменти коду.
**Головне — експериментувати. Спробуйте інструмент штучного інтелекту, ознайомтеся з тим, як він працює, оцініть якість його результату, а також будьте відкритими до інших інструментів штучного інтелекту. **Авраам сказав: «Сфера штучного інтелекту швидко змінюється. Ви не можете просто використовувати певний інструмент вічно, тому вам потрібно швидко адаптуватися до нових інструментів».
Крім того, розгляньте відповідний випадок використання. Інструменти генеративного штучного інтелекту можуть допомогти нам швидко вивчити нову мову програмування, а також можуть створювати прототипи проектів за короткий проміжок часу.
Важливий чіткий і точний діалог
Користуючись помічником із кодування штучного інтелекту, уточніть свої потреби та сприймайте це як ітеративний процес. Абрахам пропонує написати коментар, який пояснює код, щоб помічник міг створити код, який відповідає вашим вимогам на основі коментаря.
Для розмовного програміста ШІ потрібно знати, як найкраще налаштувати підказки, і саме тут приходить розробка підказок.
Абрахам запропонував використовувати метод підказки ланцюга думок. Цей метод фактично передбачає стратегію «розділяй і володарюй», тобто розкладіть проблему на кілька кроків, а потім вирішуйте їх один за іншим і, нарешті, вирішуйте всю проблему. «Попросіть модель зробити занадто багато речей за певний проміжок часу, і це не спрацює добре. Все, що вона повинна робити, — це мати можливість обробляти керовані фрагменти інформації та генерувати керовані фрагменти коду», — сказав він.
Наприклад, замість того, щоб просити програміста штучного інтелекту написати всю програму з нуля, добре подумайте про всі завдання, які програма має виконати. **Дальший розподіл цих завдань вимагає від моделі написання конкретних функцій для кожного завдання, що вимагає від моделі кроків, які необхідно виконати для досягнення певного завдання. **
«Подумайте про це як про розумного стажера, який має знання предмета, але не має великого досвіду», — каже Абрахам.
Точність і чіткість розробки наконечників дуже важливі. Абрахам зазначив: «Ви повинні дуже чітко сказати моделі, чого ви хочете, дуже точно сказати, яку проблему ви просите її вирішити, і переконатися, що ви виконуєте її».
**Також важливо вивчити основні концепції штучного інтелекту та машинного навчання, а також зрозуміти, як працюють великі мовні моделі, їхні сильні та слабкі сторони. **Вам потрібно провести дослідження, але для оцінки результату необхідний здоровий глузд.
Щоб допомогти вам розпочати роботу, Абрахам рекомендує OpenAI Cookbook, який містить розділи про бібліотеки та інструменти підказок, посібники з підказками, відеоуроки тощо, а Weisslingame рекомендує прочитати Illustrated Transformer, щоб дізнатися більше про основи моделей і машинного навчання.
Будьте критичними та усвідомлюйте ризики
Розробники програмного забезпечення повинні критично ставитися до результатів великих мовних моделей, оскільки вони схильні до галюцинацій і генерують фіктивний, неточний або навіть помилковий код. «Сліпе використання коду, створеного штучним інтелектом, може легко призвести до глухих кутів, і важко помітити тонкі помилки», — сказав Вайслінгейм.
"Ось чому важливо перевіряти згенерований код, який, додаючи певну роботу, може принести більше шкоди, ніж користі для продуктивності", - сказав Вайслінгейм. Але Абрахам стверджує, що "в деяких випадках перевірити код набагато легше, ніж писати код з scratch, і це набагато швидший спосіб генерувати код, перевіряти його та потім інтегрувати в існуючу кодову базу».
Давайте проаналізуємо результати цих моделей і поставимо наступні запитання: **На яких даних навчалася ця модель? Які дані було відфільтровано, а які не включено? Скільки років навчальним даним? На якій версії мови програмування, програмного пакета чи бібліотеки навчалася модель? Відповіді на ці запитання можуть вплинути на результати та надати більш актуальну інформацію. **
Розробникам також слід остерігатися введення власного коду в ці моделі. Деякі компанії, такі як Tabnine, пропонують корпоративні версії помічників кодування на основі штучного інтелекту, які вивчають корпоративні шаблони та стилі кодування, забезпечуючи конфіденційність.
Авторське право є ще однією міркою, хоча якщо ви використовуєте ці інструменти для завершення кількох рядків коду або створення коду для звичайних, тривіальних завдань, проблеми з авторським правом не такі серйозні, як створення великих фрагментів коду.
«Програмісти повинні певною мірою усвідомлювати винахідливість того, що вони намагаються зробити, і наскільки добре ця винахідливість вписується в їхнє середовище», — сказав Лесама. «Якщо код, згенерований моделлю, має певну оригінальність, до нього потрібно ставитися з підозрою та підозрою, перш ніж помістити його в кодову базу».
Більше занепокоєння викликає безпека коду, оскільки ці моделі можуть генерувати код, який містить уразливості. Weisslingame вважає, що найкращі методи розробки програмного забезпечення, такі як перевірка коду та надійні конвеєри тестування, можуть допомогти захиститися від цього ризику.
«Одна з речей, яку можуть висвітлити досвідченіші інженери програмного забезпечення, — це найпоширеніші вразливості коду та найпоширеніші шляхи вразливості коду, — сказав Лесама. — Вони розвинуть інтуїцію щодо того, де шукати, у яких місцях викличе настороженість. У майбутньому такі технології стануть ще більш важливою частиною портфоліо розробки програмного забезпечення. "
Щоб програмісти вижили в генеративному світі штучного інтелекту, вони повинні розглядати штучний інтелект як інструмент і інтегрувати його у свій робочий процес, усвідомлюючи можливості й обмеження цих інструментів і покладаючись на здатність людини створювати коди для зростання й розвитку.
Перекладач: Араон_
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Як програмістам виживати у світі ChatGPT?
Джерело: Divine Translation Bureau
Примітка редактора: із запуском ChatGPT на ринку з’явилася низка помічників для створення коду штучного інтелекту. Генеративний штучний інтелект зараз дуже популярний і проник у всі аспекти людського життя. Чи справді ШІ замінить людей-програмістів? Для розробників програм, як вижити та розвиватися у світі ChatGPT? У цій статті ви знайдете 4 поради, які допоможуть програмістам-людям випередити генеративний ШІ. Стаття з перекладу, сподіваюся, вона надихне вас.
Штучний інтелект, особливо генеративний ШІ на базі великих мовних моделей (LLM), має потенціал підірвати всю галузь програмістів. Але деякі експерти вважають, що ШІ не замінить людей-програмістів, принаймні не відразу.
«Вам доведеться турбуватися про людей, які використовують штучний інтелект, щоб замінити себе», — сказав Танішк Метью Абрахам, доктор філософії з біомедичної інженерії в Каліфорнійському університеті в Девісі та генеральний директор MedARC, медичного дослідницького центру штучного інтелекту.
Отже, як розробники програмного забезпечення можуть зробити себе більш цінними та корисними з наближенням епохи програмування LLM? Ось кілька порад і хитрощів для програмістів, щоб вижити й процвітати в епоху генеративного штучного інтелекту.
Дотримуйтесь основних принципів і найкращих практик
Незважаючи на те, що багато помічників кодування на основі штучного інтелекту можуть допомогти нам писати код і генерувати код, базові навички програмування все одно потрібні, тобто вміння читати й аналізувати код і розуміти, як код, який ви пишете, застосовується до великих систем. **
«Я вірю, що штучний інтелект може значно підвищити продуктивність розробників програмного забезпечення, але розробка програмного забезпечення полягає не лише у створенні коду, а й у створенні вимог користувача, налагодженні та тестуванні тощо».
**Одна з найбільш невід’ємних навичок програмування залишається сферою програмістів: вирішення проблем. ** Аналіз проблеми та пошук відповідного рішення залишається високо цінуваною майстерністю кодування.
«Програмування має свою творчу сторону, і ці навички вирішення проблем важливіші, ніж фактична мова програмування чи інструменти. Не зациклюйтесь на порівняннях зі штучним інтелектом, який більш-менш є просто статистичним результатом великої мовної моделі. Розробники Є різниця між тим, що ви робите, і тим, що видає ваша модель, і як розробник, це більше, ніж просто написання коду», – сказала Інес Монтані, дослідник Python Software Foundation і співзасновник і генеральний директор Explosion.
Крім того, **хороші методи розробки програмного забезпечення цінніші, ніж будь-коли. **Ці практики включають планування дизайну системи та архітектури програмного забезпечення, і програмісти можуть використовувати інструменти штучного інтелекту, щоб ефективніше передбачати, який код знадобиться наступним.
«Інженери-програмісти повинні з’ясувати структуру даних для частини коду, правильні абстракції для організації коду та вимоги до різних інтерфейсів. Усе це є основою практики розробки програмного забезпечення, і вони нікуди не зникнуть. ще довго».
Знайдіть інструмент, який відповідає вашим потребам
Знайти правильні інструменти штучного інтелекту дуже важливо. Кожен інструмент має власний спосіб взаємодії, і кожен інструмент може бути інтегрований у робочий процес розробки різними способами, будь то автоматичне створення модульних тестів, генерація тестових даних або написання документації.
Наприклад, GitHub Copilot та інші помічники кодування ШІ можуть розширити наші можливості кодування та надати нам пропозиції кодування. ChatGPT і Bard від Google, з іншого боку, більше схожі на розмовних програмістів штучного інтелекту, які можна використовувати для відповідей на запитання про API (інтерфейс програмування додатків) або генерувати фрагменти коду.
**Головне — експериментувати. Спробуйте інструмент штучного інтелекту, ознайомтеся з тим, як він працює, оцініть якість його результату, а також будьте відкритими до інших інструментів штучного інтелекту. **Авраам сказав: «Сфера штучного інтелекту швидко змінюється. Ви не можете просто використовувати певний інструмент вічно, тому вам потрібно швидко адаптуватися до нових інструментів».
Крім того, розгляньте відповідний випадок використання. Інструменти генеративного штучного інтелекту можуть допомогти нам швидко вивчити нову мову програмування, а також можуть створювати прототипи проектів за короткий проміжок часу.
Важливий чіткий і точний діалог
Користуючись помічником із кодування штучного інтелекту, уточніть свої потреби та сприймайте це як ітеративний процес. Абрахам пропонує написати коментар, який пояснює код, щоб помічник міг створити код, який відповідає вашим вимогам на основі коментаря.
Для розмовного програміста ШІ потрібно знати, як найкраще налаштувати підказки, і саме тут приходить розробка підказок.
Абрахам запропонував використовувати метод підказки ланцюга думок. Цей метод фактично передбачає стратегію «розділяй і володарюй», тобто розкладіть проблему на кілька кроків, а потім вирішуйте їх один за іншим і, нарешті, вирішуйте всю проблему. «Попросіть модель зробити занадто багато речей за певний проміжок часу, і це не спрацює добре. Все, що вона повинна робити, — це мати можливість обробляти керовані фрагменти інформації та генерувати керовані фрагменти коду», — сказав він.
Наприклад, замість того, щоб просити програміста штучного інтелекту написати всю програму з нуля, добре подумайте про всі завдання, які програма має виконати. **Дальший розподіл цих завдань вимагає від моделі написання конкретних функцій для кожного завдання, що вимагає від моделі кроків, які необхідно виконати для досягнення певного завдання. **
«Подумайте про це як про розумного стажера, який має знання предмета, але не має великого досвіду», — каже Абрахам.
Точність і чіткість розробки наконечників дуже важливі. Абрахам зазначив: «Ви повинні дуже чітко сказати моделі, чого ви хочете, дуже точно сказати, яку проблему ви просите її вирішити, і переконатися, що ви виконуєте її».
**Також важливо вивчити основні концепції штучного інтелекту та машинного навчання, а також зрозуміти, як працюють великі мовні моделі, їхні сильні та слабкі сторони. **Вам потрібно провести дослідження, але для оцінки результату необхідний здоровий глузд.
Щоб допомогти вам розпочати роботу, Абрахам рекомендує OpenAI Cookbook, який містить розділи про бібліотеки та інструменти підказок, посібники з підказками, відеоуроки тощо, а Weisslingame рекомендує прочитати Illustrated Transformer, щоб дізнатися більше про основи моделей і машинного навчання.
Будьте критичними та усвідомлюйте ризики
Розробники програмного забезпечення повинні критично ставитися до результатів великих мовних моделей, оскільки вони схильні до галюцинацій і генерують фіктивний, неточний або навіть помилковий код. «Сліпе використання коду, створеного штучним інтелектом, може легко призвести до глухих кутів, і важко помітити тонкі помилки», — сказав Вайслінгейм.
"Ось чому важливо перевіряти згенерований код, який, додаючи певну роботу, може принести більше шкоди, ніж користі для продуктивності", - сказав Вайслінгейм. Але Абрахам стверджує, що "в деяких випадках перевірити код набагато легше, ніж писати код з scratch, і це набагато швидший спосіб генерувати код, перевіряти його та потім інтегрувати в існуючу кодову базу».
Давайте проаналізуємо результати цих моделей і поставимо наступні запитання: **На яких даних навчалася ця модель? Які дані було відфільтровано, а які не включено? Скільки років навчальним даним? На якій версії мови програмування, програмного пакета чи бібліотеки навчалася модель? Відповіді на ці запитання можуть вплинути на результати та надати більш актуальну інформацію. **
Розробникам також слід остерігатися введення власного коду в ці моделі. Деякі компанії, такі як Tabnine, пропонують корпоративні версії помічників кодування на основі штучного інтелекту, які вивчають корпоративні шаблони та стилі кодування, забезпечуючи конфіденційність.
Авторське право є ще однією міркою, хоча якщо ви використовуєте ці інструменти для завершення кількох рядків коду або створення коду для звичайних, тривіальних завдань, проблеми з авторським правом не такі серйозні, як створення великих фрагментів коду.
«Програмісти повинні певною мірою усвідомлювати винахідливість того, що вони намагаються зробити, і наскільки добре ця винахідливість вписується в їхнє середовище», — сказав Лесама. «Якщо код, згенерований моделлю, має певну оригінальність, до нього потрібно ставитися з підозрою та підозрою, перш ніж помістити його в кодову базу».
Більше занепокоєння викликає безпека коду, оскільки ці моделі можуть генерувати код, який містить уразливості. Weisslingame вважає, що найкращі методи розробки програмного забезпечення, такі як перевірка коду та надійні конвеєри тестування, можуть допомогти захиститися від цього ризику.
«Одна з речей, яку можуть висвітлити досвідченіші інженери програмного забезпечення, — це найпоширеніші вразливості коду та найпоширеніші шляхи вразливості коду, — сказав Лесама. — Вони розвинуть інтуїцію щодо того, де шукати, у яких місцях викличе настороженість. У майбутньому такі технології стануть ще більш важливою частиною портфоліо розробки програмного забезпечення. "
Щоб програмісти вижили в генеративному світі штучного інтелекту, вони повинні розглядати штучний інтелект як інструмент і інтегрувати його у свій робочий процес, усвідомлюючи можливості й обмеження цих інструментів і покладаючись на здатність людини створювати коди для зростання й розвитку.
Перекладач: Араон_