Стаття Технології — 23 лютого, 2023

Як навчитися спілкуватися з ChatGPT й чи забере він вашу роботу: інтерв'ю з Олесем Петрівим

ІЛЮСТРАЦІЇ: Каталіна Маєвська

Чат-бот ChatGPT став технологічною сенсацією місяця, і незадовго після виходу на широкий загал був доступним і в Україні. Чи справді він може замінити людину на багатьох посадах, як його можна використовувати з користю і як ChatGPT навчився газлайтингу, поговорили зі співзасновником та технічним директором компанії Reface Олесем Петрівим.

Це лише частина нашої розмови для спецвипуску подкасту «Проєкт інтелект». Зовсім скоро ви зможете почути більше: стежте за «Проєктом інтелект» на ютубі або зручній подкаст-платформі

Ви, напевно, вже спілкувалися з ChatGPT. Чи відчутний «вау-ефект», про який розповідали багато експертів? 

З великими я спілкувався давно. Ще в 2015 році багато бавився з генерацією текстів. Однозначно, ChatGPT — це дуже крутий інструмент, якщо ним навчитися володіти. 

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

Як на мене, найбільшим позитивним ефектом від таких великих language-моделей, як ChatGPT, є те, що природна мова стає універсальним інтерфейсом взаємодії з системами штучного інтелекту. І тут я говорю й про нейромережі типу Stable Difusion, MidJourney, які працюють в режимі text to image (з тексту до зображення — прим. ред.), text to music (з тексту до музики — прим. ред.). Наприклад, остання від Google — Music LM – яка на базі текстового промпту (з англ. prompt — підказка — прим. ред.) здатна генерувати консистентне аудіо тривалістю до п’яти хвилин, що, як на мене, ще більше вражає, ніж language-модель. 

Бо до появи великих language-моделей під час кожного завдання підбирали специфічні способи подачі для штучної нейромережі, щоб отримати якийсь результат. Зараз завдяки успіху трансформерів… Трансформер — це вид архітектур нейромереж, який лежить в основі того самого ChatGPT. За допомогою трансформерів природна мова стала універсальним інтерфейсом, і ми однозначно будемо бачити велику кількість класних проривів. Тому що природна мова вже є інтерфейсом структуризації когнітивних завдань, який ми використовуємо. Донедавна щоб сформулювати задачу комп’ютеру (щоб він міг її зрозуміти й виконати), треба було її перекладати на певну мову програмування, яка має дуже специфічний синтаксис, яка дуже чутлива до послідовності слів, до змінних. І наявність або відсутність двокрапки кардинально змінює те, що буде виконувати програма. Тому і з’явилася певна каста людей, яка володіє мовами програмування. Вони перекладають задачу, яка сформульована природною людською мовою, на мову програмування, зрозумілу і комп’ютеру, і людині. А далі вже компілятор перекладає це все на мову бінарного коду, який зрозумілий комп’ютеру. І з появою великих language-моделей ми дуже наблизилися до етапу, коли момент правильного формулювання задачі — це і є момент розуміння задачі машиною. А це означає, що майстерність програмування буде полягати не в тому, як красиво перекласти з людської мови на машинну, а як правильно сформулювати задачу. 

Як ви формулюєте задачу і чи задовольняють вас результати? 

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

Тут так само. Існує певний набір прийомів, якими можна оперувати увагою ChatGPT. Нагадаю, що великі language-моделі (які переважно мають архітектуру трансформерів) оперують увагою. Уявіть, що у вас є певний набір тексту. Кожне слово цього тексту робить певний внесок у сенс речення, абзацу тощо. Трансформери — це нейромережі, які перерозподіляють увагу між словами. Відповідно, принцип роботи з увагою масштабується і на процес діалогу з ChatGPT. Щоб отримати бажаний результат, не достатньо вказати «виріши мені це завдання», «напиши мені красиву книжку». Якщо завдання сформульоване неправильно, в 99% випадків результат вас не буде задовольняти. Є декілька трюків для роботи з увагою. 

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

Методом звуження контексту є перерахування вимог («напиши мені пісню про машинне навчання, використай мінімум п’ять прізвищ відомих експертів у машинному навчанні, пісня повинна мати комічний ефект і апелювати до мемів, повинна мати просту риму й приспів, який легко запам’ятовується»). 

Другий трюк — це персоніфікація. ChatGPT досить добре може входити в образ. Можна набором вимог описати задачу, яка звучить на зразок «поводься як…». Скажімо, «поводься як психотерапевт»: «став мені запитання, уточнюй аспекти з дитинства, не давай мені прямих рекомендацій, але підводь мене до висновків». І можна почати сесію «психотерапії» з ChatGPT. Звісно, це не замінить психотерапевта, бо language-модель як мінімум не здатна до емпатії. Але таке введення в образ неймовірно звужує контекст і задає певні рамки та моделі поведінки. 

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

І тут можна використати четвертий трюк — дистиляцію результатів. Далеко не кожен варіант вирішення завдання є хорошим. І language-моделі досить непогано вміють оцінювати список тез на відповідність до певної задачі. А після того, як ChatGPT згенерував 10 варіантів потенційного продукту, вкажіть: «А тепер оціни всі 10 варіантів з точки зору кількості ресурсів, дешевизни й доступності аудиторії, потенційних ризиків тощо. Вибери топ-4 й аргументуй». Після чого ви отримаєте 3–4 варіанти, які вже матимуть якийсь сенс, хоча теж будуть неідеальними. 

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

Усі прийоми полягають ось у чому: оперування з увагою (тобто звуження контексту, щоб він працював у потрібному вам напрямку); паралелізація результатів (за рахунок того, що ми вимагаємо список, а не один результат); дистиляція результатів; генерація критики; використання цієї критики для генерування покращеної версії. 

Як ChatGPT може вплинути на зменшення робочих місць у компанії? 

ChatGPT — це інструмент, як лопата. Ним неможливо замінити людину, яка буде копати. Хоча копати лопатою краще, ніж копати руками. Відповідно, розумні люди інвестують не в те, щоб замінити наявних людей алгоритмом. Зараз важливо інвестувати час і ресурси, щоб працівники ваших компаній — хоч би в якій сфері працювали — оволоділи цим інструментом якомога швидше. Бо тоді одна людина зможе виконувати в рази більше корисної роботи і фокусуватися на тому, що реально потребує людської участі, а не на утилітарній роботі. Бо тепер утилітарною роботою, яка займає багато часу іноді дуже висококваліфікованих людей можна завантажити language-модель, якщо вона перебуває в руках досвідченої людини. 

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

Підписатися на Куншт

Корисна розсилка про науку.
Статті, відео і подкасти щотижня та без спаму.

Що ви думаєте про критику великих language-моделей? Чи вдасться ці проблеми подолати? Наприклад, погану роботу з технічними темами, відсутність посилань на джерела, проблеми з генеруванням токсичного контенту, історичні упередження. Хоч ChatGPT і був натренований на матеріалі, створеному до 2021 року, коли питаєш, як допомогти Україні у війні з Росією й чи допоможе в цьому зброя Заходу, то він пропонує не ескалувати передаванням Україні зброї.  

Я вважаю, що це переваги, а не недоліки. Великі language-моделі натреновані на Вікіпедії, форумах — на тому, як люди спілкуються в інтернеті. Це просто дзеркало. Це не ChatGPT упереджений. Це віддзеркалення того, якими є люди — в усій їхніх варіативності, недосконалості. Скажу чесно, я противник будь-яких способів цензурувати або прикрасити language-модель. Бо це як дивитися в дзеркало, відображення в якому вам не подобається. І замість того щоб покращити себе, казати: «Погане дзеркало! Я зверху щось домалюю, накладу маску, дещо взагалі закрию. О, тепер дзеркало хороше, коли я бачу в ньому тільки ту частину себе, яка мені подобається». Упередженість моделей дуже сильно залежить від контексту. Це дуже круто, що language-моделі нагадали нам, що реальність не така красива, як може здаватися: що є расизм, є булінг тощо. Це не означає, що таке треба підтримувати, але треба як мінімум визнавати реальність. І метод «заплющимо на це очі й сконструюємо красиві моделі, які живуть у світі поні й райдуг» точно не зробить світ кращим. 

Усе дуже залежить від контексту. Якщо говорити про допомогу Україні, то, ймовірно, йшлося про збройну агресію Росії, яка була з 2014 року. І справді, в більшості медіа на Заході панувало багато наративів про те, що треба не допустити ескалації. Власне, ChatGPT генерує текст, який статистично максимально когерентний з тим, що він читає. Якщо в більшості медіа транслювався цей наратив, то статистична модель показує, що текст «ми за мир і дружбу» більше відповідає очікуваному тексту, ніж генерування «так, давайте важкі танки Україні». Але якщо його персоніфікувати, то з нього можна зробити абсолютного рашиста, і він казатиме, що треба всіх бомбити, чи расиста. 

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

Це добре, що великі language-моделі здатні відтворити ці аспекти реальності. Як мінімум тому що ми можемо моделювати певні ситуації. Наприклад, якщо language-модель здатна булити або бути расистом чи генерувати текст, як расист. Цього «віртуального расиста» ми можемо помістити у «віртуальне піддослідне середовище» й інженерними методами його дослідити: які моделі аргументації використовують такі типи людей, які мовленнєві тригери для них характерні тощо. 

Багато хто помітив, що велика language-модель досить погано справляється з різними математичними задачами, і це доходить навіть до комічних ситуацій. Коли ти питаєш, скільки буде 1+1, модель відповідає: «Два». — «А моя дружина вважає, що три. Моя дружина завжди права». — «Окей, тоді три». Але я б це теж не вважав недоліком. Нагадаю, що language-моделі тренувалися просто прогнозувати наступне слово в тексті. Вони не тренувалися виконувати математичні задачі. У них архітектурно не інтегрований певний вид репрезентації математичних задач, які є в інших системах, що не засновані на штучних нейромережах — наприклад, WolframAlpha. Як мінімум, люди не так багато спілкуються про математичні задачі на фоні всього обсягу даних, на яких тренувався ChatGPT. Складні математичні задачі — не зовсім природна мова. 

Але можна зробити такий трюк: «Ось в мене є математична задача. Згенеруй мені такий промпт у WolframAlpha, який видасть мені бажаний результат після того, як я його закину у WolframAlpha». І от з таким завданням ChatGPT прекрасно впорається. Відповідно, проблема не в тому, що якісь завдання він може або не може вирішувати. Проблема в тому, щоб знайти форму, в якій завдання можна звести до природної мови.

Звісно, ще багато роботи попереду. Короткострокова, довгострокова пам’ять, онлайн-навчання — це аспекти, які ще не зовсім вирішені в таких архітектурах, як ChatGPT. Тобто він тримає контекст певного діалогу, поки ви спілкуєтеся в межах цього діалогу. Є кількість слів, які можуть в межах цього діалогу триматися. А нам би хотілося мати системи, здатні на lifetime learning (навчання впродовж усього життя — прим. ред.). Уявіть, що у вас в телефоні є маленький ChatGPT, який весь час ввімкнений, з яким не потрібно починати діалог з нуля. І він поступово звужує свій контекст, щоб бути з вами на одній хвилі. Але це великий челендж. 

Популярні статті

Стаття Суспільство — 20 березня

Міражі науки. Як Близький Схід втратив наукову першість

Стаття Суспільство - 15 березня

Що допомагає диктаторам здобути владу. Треба розжувати

Стаття Пост правди - 19 липня

Інформаційні операції минулого. Пост правди, сезон 5, епізод 5