Експеримент із ChatGPT. Ми попросили айтівців поставити чат-боту задачі з розробки — ось що з цього вийшло

18 лютого ChatGPT — нейромережевий чат-бот від OpenAI, реліз якого запустив нові перегони big tech у сфері штучного інтелекту, — став доступним на території України.

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

Сергій Бутенко, Software Engineer CleanMyMac у MacPaw

Я вирішив попросити ChatGPT знайти у кошику файли, які видаляє CleanMyMac.

❔ Запит: Find trashes files on macOS using Swift

❕ Відповідь:

Виглядає нормально, хоча я не просив видаляти ці файли. А якщо запустити цей код, то ми отримуємо «The file „Trash“ couldn’t be opened because you don’t have permission to view it».

Так і скажемо ChatGPT.

❕ Відповідь:

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

❔ Запит: It doesn’t help

❕ Відповідь:

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

❔ Запит: Is it because of a lack of full disk access?

❕ Відповідь:

Нарешті ми з’ясували, у чому проблема! Ми надали FDA нашому застосунку і тепер можемо отримати доступ до файлів у кошику.

⚪Висновки:

  1. ChatGPT може видати код, який компілюється.
  2. ChatGPT може видати код, який робить щось зайве або має вразливості.
  3. ChatGPT може давати поради, але вони не завжди правдиві. І все треба мати досвід у домені, з яким працюєш.
  4. Як для пошукових систем, так і для ChatGPT треба правильно підбирати запит. Наприклад, вказувати, що ти хочеш код на Swift і саме під платформу macOS. Тобто дати якомога більше обмежень, щоб отримати максимально релевантну відповідь.

Володимир Кирилов, Machine Learning Engineer у Zencastr

Нещодавно я працював з методами генерації текстів з моделі GPT-2. У моєму редакторі відкрита реалізація алгоритму Beam Search, яка вже обросла складними конструкціями. Чи може ChatGPT додати мені свіжих ідей?

❔ Запит: Implement beam search decoding from GPT-2 from scratch a pretrained model

❕ Відповідь:

Я припустився помилки в запиті, і модель все одно згенерувала потрібну мені відповідь.

Написаний код достатньо простий і поєднує тензори PyTorch і стандартні структури даних у Python. Алгоритм залежить від гіперпараметрів, і бот запропонував мені практичні значення.

Пояснення алгоритму містить його основну ідею — для кожної послідовності згенерували beam_width найкращих токенів, отримали beam_width^2 кандидатів. Відсортували всі послідовності за оцінками, залишили найкращі beam_width послідовностей, побігли далі. Запам’ятаю це формулювання для наступної дискусії з колегами.

Пояснення алгоритму

Чи працює цей код? Для перевірки скопіював його в новий файл і побачив список з найкращих п’яти послідовностей:

Працює!

Перевірка

Чи точно цей алгоритм робить те, що треба? Попросив його згенерувати цей код іншим чином.

❔ Запит: use huggingface beam search implementation on the same example with the same parameters

У відповідь отримав задовгий код. Я запустив його та отримав помилку. Повернув її боту.

❔ Запит: ImportError: cannot import name ’BeamSearchDecoder’ from ’transformers’

Бот пробурмотів щось про версії трансформерів і дав новий, коротший і кращий код, а головне — він працює.

Тут я дізнаюся про магічний параметр `no_repeat_ngram_size`, який робить щось нове. Запам’ятаю! Для мого тесту виставлю цей параметр у 0 у своєму редакторі.

Я бачу, що цей код генерує тільки одну послідовність. Прошу бота виправити це.

❔ Запит: Use the same hyperparameters as the original code

Так, бот вгадав параметр num_return_sequences!

Працює!

⚪ Висновки

Під час роботи з різними алгоритмами часто потрібно знати, які параметри краще брати за замовчуванням, які бібліотеки для реалізації обирати, які приклади підбирати. ChatGPT може написати алгоритм за запитом і запропонувати додаткові деталі, які можуть каталізувати якусь мою ідею. За це я йому і вдячний:

Владислав, Front-end Developer

Ще роки чотири тому я разом з друзями кілька місяців пововтузилися з однією задачкою — ми намагалися її розв’язати, але за умови не піддивлятися відповіді деінде. Далі ви побачите максимум, до якого я дійшов :)

Коли в Україні розблокували ChatGPT, я подумав, що використати допоміжний інструмент — це не шахрайство.

Спочатку я просто скопіював завдання і лише трошки змінив його.

Цей код міг би працювати, але мав проблему: там не було назви функції, яка є обов’язковою і незмінною, тож я продовжив спроби.

Певний час ми продовжували діалог. У ChatGPT виникла проблема з розумінням, що є solution та code. Я намагався його навчити, але це не давало бажаного результату: чат то генерував неробочий код, то робочий, але неправильно. І пропонував лише довгі відповіді, тоді як за умовами задачки рішення мало містити не більше ніж 53 символи. Чат переконував мене, що це неможливо.

У певний момент мені стало соромно за ChatGPT і я вирішив на нього «биконути». Вийшло кумедно.

Я пояснив, що запропоноване мною рішення не задовольняє умови задачі, адже весь код, включно з функцією, має бути не більшим за 53 символи. Сподівався, що це допоможе чат-боту знайти розвʼязок. Втім не допомогло. У певний момент ChatGpt взагалі мені повернув мій же код.

Через деякий час я полишив спроби, бо втомився. Навіть із ChatGPT я не розкусив задачку, зате переконався, що про втрату роботи розробника ще на 100% зарано турбуватися. Ну й колись зможу казати онукам, що навіть «Скайнет» визнав мій геній і покажу ці скриншоти :)

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

Похожие статьи:
Планшет Samsung Galaxy View, слухи о котором уже достаточно давно циркулируют в сети, наконец был представлен официально. Этот планшет...
В рубриці DOU Проектор всі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про...
Основы AngularJS. Создаем одностраничное приложение (онлайн-чат с авторизацией). Серверная часть — на Node.js, MongoDB...
В рубрике DOU Labs мы приглашаем IT-компании делиться опытом собственных интересных разработок и внутренних...
З 1 вересня 2023-го українські школярі вивчатимуть інформатику за оновленою програмою. Її розробили...
Яндекс.Метрика