Чи зможе ChatGPT замінити програмістів у найближчому майбутньому?

  • 28 марта, 20:09
  • 4746
  • 0

Кореспондент журналу New York Times та автор книг «Кодери: створення нового племені та перетворення світу» та «Розумніші, ніж ви думаєте: як технологія змінює нашу думку на краще»  Клайв Томпсон перевірив, чи зможе "нашумівший" останнім часом ChatGPT замінити програмістів в найближчий час, тому дав ШІ завдання створити просту програму. Нижче публікуємо його розповідь, що з цього вийшло:

Останнім часом я бачу людей, які використовують ChatGPT для написання коду. Один хлопець написав у Twitter про те, як він використав його, щоб створити просту версію Pong «менш ніж за 60 секунд», а інший написав сценарій Python для перейменування файлів.

Я хотів взяти участь у цьому, тож попросив ChatGPT — версію від 14 березня — створити просту веб-програму зі списком справ.

Я почав з цього прохання...

Я хотів би створити простий веб-додаток для справ. Покажіть мені код, який виконуватиме такі дії: відображатиме текст «Мій список справ» угорі з полем під ним, де я можу вводити елементи справ. Коли я вводжу новий елемент і натискаю «Enter», новий елемент з’являється у списку під полем введення.

Коли я натискаю будь-який список в елементі, він зникає.

Він створив простий код HTML і Javascript, який виконував саме те, що я просив.

Протягом наступних кількох хвилин я додав ще купу запитів: я сказав йому додати кнопку під назвою «Зберегти список», яка, коли ви її натискаєте, зберігатиме список локально у вашому браузері.

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

ChatGPT підказував мені, куди вирізати та вставити новий код, і що код робить.

Весь процес зайняв лише 15 хвилин, а остаточна версія тут, розміщена на Glitch, тож ви можете спробувати. 

 Отже, кодери захвилювались? Чи є ChatGPT початком «Зоряного шляху»: ми просто скажемо комп’ютеру, що ми хочемо від нього?

Коротка відповідь: не зараз і, можливо, не найближчим часом.

Це пов’язано з тим, що типи проблем кодування, з якими ChatGPT справляється, звичайні.

Якщо ви попросите його зробити щось, що вже робилося багато разів раніше, то, звичайно, він зробить дуже хорошу роботу. Списки справ? Понг? Вони були закодовані баджільйони разів раніше, і всі вони онлайн. OpenAI навчив свої моделі на всьому цьому існуючому коді. І чесно кажучи, існує багато кодування, яке повторюється.

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

Але справа в тому, що написання програмного забезпечення — це не просто написання базових алгоритмів для обробки даних так, як ви хочете.  Наприклад, програмне забезпечення дуже часто потребує «спілкуватися» з якоюсь іншою службою онлайн: як працює API для цієї іншої служби? Як написав користувач danwee на Hacker News цього тижня...

Я хочу бачити GPT-4, який має справу з цією ситуацією:

- вони: нам потрібна нова базова кінцева точка POST

- ми: круто, як виглядає контракт API? URL? Параметри запиту? Корисне навантаження? Відповідь? Код статусу?

- вони: Не впевнений. Стороння компанія XXQ повідомить вам подробиці. Саме вони викличуть цю нову кінцеву точку. Але по суті це має бути дуже просто: просто візьміть усе, що вони передадуть, і збережіть це в нашій базі даних

- ми: добре, круто.

Дозвольте мені зв'язатися з ними

– …через тиждень…

- компанія XXQ: ми отримали цей контракт тут: <contract_json>

- ми: дякую! Ми будемо над цим працювати

- …через 2 дні…

- us: ммм, у <contract_json> щось не вказано. А як щодо цієї частини, яка говорить про те, що...

- …через 2 дні…

- компанія XXQ: ага, звичайно, вибачте, ми пропустили цю частину.

Це так…

- …і так далі…


Ця справа надзвичайно складна, і зараз ChatGPT, здається, взагалі не в змозі це зробити.

Ось простий приклад із моїх власних експериментів кодування. Вчора я попросив ChatGPT створити версію мого «Пошуку дивних старих книг».

Це програма, яку я створив минулого року, яка приймає будь-який запит, який ви вводите, і надсилає його до API для Google Books. Він запитує лише книги до 1927 року (які є загальнодоступними), потім вибирає одну випадкову книгу з результатів і надсилає її вам. Я написав оригінальну програму за кілька вечорів; це досить просто, з точки зору коду.

Але коли я попросив ChatGPT переробити його, створений ним код не спрацював. (Ви можете побачити це тут, на Glitch.) Кожен запит отримував помилку 403 від Google Books API. Звичайно, ChatGPT міг швидко створити веб-форму для введення запиту, але робота з Google Books API призвела до збою.

Чи можливо, що OpenAI зможе навчити свої моделі на кожному існуючому API, у якийсь більш вичерпний і витончений спосіб? Може бути. З прогресом програмного забезпечення та ШІ я ніколи не кажу «ніколи».

Але навіть якби він міг це зробити, це лише верхівка айсберга в розробці програмного забезпечення. Чесно кажучи, найбільша частина створення продукту полягає не в кодуванні; воно полягає в тому, щоб допомогти вашому клієнту зрозуміти, що, чорт візьми, йому потрібно зробити. Це вимагає нескінченних годин розмов, розмов і розмов, перш ніж буде написаний будь-який рядок коду. (Те ж саме вірно, якщо ви є клієнтом, тобто якщо ви створюєте нову програму самостійно.) Автоматизація цих розмов і цього рішення - створення було б навіть важчим, ніж освоєння візантійських шляхів світових API.

Ось чому, якщо ви прочитаєте всю тему на Hacker News про те, чи замінять ChatGPT і AI кодерів, переважна більшість авторів стверджує, що: 

а) цього точно не буде в короткостроковій та середньостроковій перспективі,

і б) швидше за все, це просто розширить продуктивність існуючих розробників програмного забезпечення.

Я думаю, що це, мабуть, правильно. Це буде схоже на вплив Microsoft Word на створення ділових документів. Ще в 70-х і на початку 80-х років обробка тексту була дорогою справою — для цього потрібні були висококваліфіковані текстові процесори.

Створення нових цифрових документів було повільним і трудомістким. Але коли дешеві настільні комп’ютери дозволили будь-кому створити гарний діловий документ, загальний обсяг ділових документів просто вибухнув.

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

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

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

(Ми, звичайно, використовуємо передбачення в нашому пізнанні! Але наше пізнання — це не тільки передбачення.)

ChatGPT нічого не знає. Це просто спроба писати переконливо.

Це, очевидно, величезна проблема для того, щоб покладатися на будь-які факти, які ви отримуєте від ChatGPT. Він вигадує речі. (OpenAI називає це «галюцинаціями», але «вигадувати речі» здається точнішим.) Буквально вчора я поставив йому фактичне запитання, і ChatGPT дав мені цитату з однієї наукової статті, яка була ідеальною відповіддю — і ще двох, які, наскільки я можу судити, не існують зовсім.

Як виявилося, ChatGPT теж дурить, коли пише код.

Нещодавно Тайлер Глейл попросив ChatGPT написати код, який вирішував би деякі цікаві алгоритмічні проблеми, як-от прокладання маршруту через сітку з перешкодами або виявлення зіткнень для форм півмісяця…

З кожним випадком ChatGPT створював щось таке, що спрацювало — але не зовсім. Головне, що він не здався;  не було сказано «ні, я справді не можу цього зробити». Він просто впевнено видав код і сказав, звичайно, я зрозумів це. Але це було не так.

І, як зазначає Глейл, тут починаються проблеми:

Я думаю, що ChatGPT – це просто фігня. У нього немає відповіді, і він не може її придумати, тому зараз просто вигадує лайно.

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

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

Іноді це функції, які не існують у мові сценаріїв.

Таня Цуй намагався змусити ChatGPT виконати певну роботу з даними, і він створив код, який використовував атрибут «gridify» модуля «geopandas» ... якого не існує.

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

Мені буде цікаво побачити, як буде розвиватися написання коду ШІ в найближчі місяці та роки. Це до біса цікава частина цієї нової фази штучного інтелекту, і вона дуже корисна. Але він поділяє деякі небезпеки, пов’язані з великими мовними моделями, які пишуть англійською.


Теги: chatgpt
0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все