Рубріки: Думка

Як розробникам “вижити” у світі ChatGPT: 4 поради, щоб подолати конкуренцію зі ШІ

Анастасія Пономарьова

ChatGPT — ворог програмістів, що залишить фахівців без роботи, чи все ж таки союзник?

Цим питанням задалася Ріна Даян Кабаллар — авторка видання Spectrum та колишній інженер-програміст із Веллінгтона, і знайшла відповідь. Публікуємо адаптацію тексту.


Штучний інтелект, особливо генеративний штучний інтелект на базі великих мовних моделей (LLM) може погіршити становище багатьох програмістів. Але деякі експерти стверджують, що ШІ не замінить живих фахівців — принаймні, не відразу.

«Вам доведеться хвилюватися про те, що люди, які використовують штучний інтелект, замінять вас», — зазначив Танішк Метью Абрахам, доктор філософії, кандидат біомедичної інженерії в Університеті Каліфорнії та гендиректор науково-дослідного центру медичного ШІ MedARC.

Тож як розробники ПЗ можуть стати більш корисними та актуальними в епоху програмування, орієнтованого на LLM? Ось кілька порад і методів, які допоможуть програмістам не тільки вижити, а й процвітати в цьому “дивовижному новому світі”.

Дотримуйтесь основ і найкращих практик програмування

Незважаючи на те, що численні помічники з написання коду на основі штучного інтелекту можуть допомогти з доповненням та генерацією коду, основи програмування з нами залишаються. Тобто ви повинні розвивати здатність читати та обміркувати свій власний та чужий код, а також мати розуміння, як написаний вами код вписується у більшу систему.

«Я вважаю, що штучний інтелект може значно підвищити продуктивність розробників програмного забезпечення, але розробка програмного забезпечення — це набагато більше, ніж просто генерування коду — від виявлення вимог користувачів до налагодження, тестування тощо», — говорить Пріян Вайтілінгам, доктор філософії, який працює на перетині взаємодії людини з комп’ютером і мов програмування в Школі інженерії та прикладних наук ім. Полсона Гарвардського університету.

Одна з найбільш цінних навичок програмування продовжує залишатися за “людськими” програмістами: це вирішення проблем.

«У цьому полягає творчий аспект професії. Навички вирішення проблеми є важливішими, ніж якась фактична мова чи інструменти, — каже Інес Монтані, співробітник Python Software Foundation, співзасновник і генеральний директор Explosion. — Не попадайтеся в пастку, порівнюючи себе з ШІ, який є більш-менш статистичним результатом великої моделі. Існують відмінності в тому, що створює розробник, і в тому, що видає модель. Бути розробником — це щось більше, ніж просто писати довільні рядки коду».

Крім того, передові практики розробки програмного забезпечення виявилися ще більш цінними, ніж раніше. Ці практики включають планування дизайну системи та архітектури програмного забезпечення, що служить хорошим контекстом для інструментів на основі штучного інтелекту, щоб ефективніше передбачати, який код вам знадобиться далі.

«Людина-кодер все ще визначає структуру фрагмента коду, правильні абстракції, навколо яких його можна організувати, і вимоги до різних інтерфейсів, — каже Армандо Солар-Лезама, головний операційний директор лабораторії комп’ютерних наук і штучного інтелекту Массачусетського технологічного інституту. — Усі вони є центральними для розробки, і вони не скоро зникнуть».

Знайдіть інструмент, який відповідає вашим потребам

Тож, ми визначилися, що ШІ має бути помічником програміста. Після цього вам важливо знайти правильний інструмент на основі ШІ, адже кожен з них має власні способи взаємодії. Також існують різні способи включити кожен інструмент у процес розробки — чи то автоматизація створення модульних тестів, чи то створення тестових даних або написання документації.

GitHub Copilot та інші помічники кодування AI, наприклад, можуть розширити можливості розробника, пропонуючи варіанти коду під час програмування. ChatGPT і Bard від Google, з іншого боку, діють більше як програмісти-консультанти та можуть дати відповідь на запитання про API (інтерфейс програмування застосунків) або генерування фрагментів коду.

Розуміння користі ШІ з’являється в процесі експериментування. Пограйтеся з інструментом штучного інтелекту, відчуйте, як він працює, оцініть якість його результатів, але будьте відкритими до інших інструментів.

«Штучний інтелект – це сфера, яка швидко розвивається. Ви не зможете зупинитися на інструменті й потім використовувати його до кінця свого життя. Вам потрібно буде швидко адаптуватися до нових», – говорить Абрахам.

Також подумайте про відповідні випадки використання тих чи інших інструментів з ШІ. Так, інструменти Generative AI можуть забезпечити швидкий шлях до вивчення нових мов програмування або фреймворків, а також вони пришвидшать запуск невеликих проєктів і створення прототипів.

Чіткі та детальні запити є ключовими

Користуючись “розмовними” помічниками кодування штучного інтелекту (той самий ChatGPT), уточніть, що вам потрібно, і розглядайте взаємодію з інструментом як ітеративний процес. Абрахам пропонує написати коментар, який пояснює потрібний код, щоб ШІ-помічник міг генерувати максимально відповідні вашим вимогам пропозиції.

Вам треба найкраще оформити підказки. Тут на допомогу приходить оперативне проєктування. Один із підходів, запропонований Абрахамом, — спонукання за ланцюгом думок. Це передбачає стратегію «розділяй і володарюй», коли ви розбиваєте проблему на кілька кроків і вирішуєте кожен з них окремо, щоб вирішити всю проблему.

«Якщо просити модель зробити занадто багато роботи в певний момент часу, це може призвести до катастрофи. Вам потрібно будувати взаємодію так, щоб ШІ міг працювати з керованими порціями інформації та створювати керовані фрагменти коду», — каже він.

Замість того, щоб просити ШІ закодувати всю програму з нуля, наприклад, розгляньте різні завдання, які програма зможе виконати. Розділіть ці завдання далі та попросіть модель написати конкретні функції для кожного. Можливо, вам знадобиться порозумітися з моделлю про кроки, які вона має зробити, щоб виконати завдання — тобто вам треба буде провести двосторонню розмову.

«Ставтеся до ШІ майже як до розумного стажиста, який багато знає про предмет, але не має такого досвіду, як у вас», — каже Абрахам.

Точність і чіткість запитів є життєво важливими для швидкого проєктування.

«Ви повинні дуже чітко запитати модель, чого ви хочете досягти, бути дуже точним щодо того, що ви вимагаєте від неї, і переконатися, що ШІ виконуєте свої дії», — говорить Абрахам.

Також може бути корисним вивчення основних концепцій штучного інтелекту та машинного навчання, а також дізнатися про те, як працюють великі мовні моделі, про їхні сильні та слабкі сторони. Вам не потрібно глибоко занурюватися в цю нішу, але володіння деякими загальними знаннями може дати вам бонуси під час роботи з ШІ та більш якісні результати.

Для початку Абрахам рекомендує OpenAI Cookbook, у якому є розділи про бібліотеки та інструменти підказок, посібники з підказками та відеокурси, а Вайтілінгам пропонує прочитати The Illustrated Transformer, щоб дізнатися більше про моделі та основи машинного навчання.

Будьте критичними та розумійте ризики

Розробники повинні критично ставитися до результатів роботи великих мовних моделей, оскільки вони схильні до викривлень і часто створюють неточний або неправильний код.

«Легко застрягти в кролячій норі налагодження, сліпо використовуючи згенерований штучним інтелектом код, адже тонкі помилки важко помітити», — каже Вайтілінгам.

Ось чому перевірка згенерованого ШІ коду є надзвичайно важливим етапом, хоча це — додатковий крок, який часом може більше зашкодити продуктивності, ніж підвищити її. Але Абрахам стверджує, що у деяких випадках легше перевірити код, ніж написати його з нуля. Тож дійте по ситуації.

Розробникам також слід остерігатися введення власного коду в ці мовні моделі. Деякі компанії, такі як Tabnine, пропонують корпоративні версії своїх ШІ-помічників, забезпечуючи конфіденційність, але одночасно вивчаючи шаблони та стиль кодування організації.

Авторське право є ще одним фактором, який слід враховувати під час користування ШІ — ви ж не хочете, щоб якийсь ображений розробник судився з вам через викрадення його коду (хоч це зробив ШІ, а не ви). Ризик суттєво зменшується, якщо ви використовуєте ШІ-інструменти для завершення кількох рядків коду, або ж створення коду для тривіальних буденних завдань. Не варто використовувати великі шматки коду.

«Програмісти повинні мати певне уявлення про те, наскільки оригінальним є те, що вони намагаються зробити, і наскільки це унікально для їхнього контексту, — говорить Солар-Лезама. — Якщо модель виробляє дещо оригінальний фрагмент коду, важливо бути підозрілим і скептичним, тобто оцінити потенційні ризики та користь, перш ніж розміщувати його у власній робочій кодовій базі».

Ще більшою проблемою є безпека, оскільки ці моделі можуть генерувати код із уразливими місцями. За словами Вайтілінгама, найкращі методи розробки програмного забезпечення, такі як перевірка коду та надійні тестові конвеєри, можуть допомогти захиститися від цього ризику.

«Одна з речей, на яку більш досвідчені фахівці звертають увагу, — це найпоширеніші уразливості у коді та найпоширеніші способи, якими можна зробити код уразливим, — каже Солар-Лезама. — Вони формують інтуїцію щодо того, на що варто звернути увагу та що викликає тривогу. Рухаючись вперед, такі методи стають більш важливими частинами комплексу розробки програмного забезпечення».

Щоб програмісти вижили в генеративному світі штучного інтелекту, їм потрібно буде прийняти штучний інтелект як інструмент і включити його у свій робочий процес, усвідомлюючи можливості й обмеження цих інструментів — і все ще покладаючись на свої власні здібності кодування, щоб процвітати.

Останні статті

Можна мобілізуватись колективом. В Резерв+ додадуть направлення на ВЛК і функції рекрутингу

Застосунок Резерв+, в якому військовозобовʼязані можуть оновити дані про себе, додатуть додаткові функції. Зокрема, це онлайн-рекрутинг і…

20.05.2024

Боїться, що у людей заберуть роботу: «хрещений батько ШІ» пропонує універсальний базовий дохід

«Хрещений батько штучного інтелекту» Джеффрі Гінтон вважає, що запровадження універсального базового доходу може вирішити проблему…

20.05.2024

Slack без попереджень збирає дані для навчання ШІ. І прохання про відмову треба слати на email

Користувачі популярного месенджера Slack від Salesforce помітили, що сервіс використовує повідомлення та файли для навчання…

20.05.2024

Вручити повістку військовозобов’язаному зможуть і роботодавці — Міноборони

Військовозобов'язаному можуть вручити повістку тепер і роботодавці, керівники підприємств, установ і організацій. Про це розповів речник Міноборони…

20.05.2024

EXMO.com збільшила ставки для ETH, USDT та USDC: заробляйте до 5% і 9% на рік з найпопулярніших альткоїнів!

Популярна криптобіржа EXMO.com підняла річні ставки на ETH, USDT та USDC у програмі Earn. Отримуйте…

15.05.2024

MacPaw запустила бету маркетплейса Setapp Mobile для iOS в ЄС

Українська компанія MacPaw випустила новий маркетплейс Setapp Mobile. Доступний він в бета-версії та лише за…

15.05.2024