Chat GPT, Reforge і один продакт-менеджер. Як я «програмував» чат-бота на певну поведінку
Багато хто з нас вже активно користується різними AI продуктами — Chat GPT, Midjourney, ElevenLabs та іншими. Але я помітив, що більшість людей використовує ці інструменти на базовому рівні, не розкриваючи достатньо їхній потенціал для себе.
У цьому дописі я хочу поділитися тим, чому написання запитів іноді називають prompt engineering і чим цій prompt engineering відрізняється від звичайного prompt (запита). Спробуємо сьогодні пройти шлях від prompt до prompt engineering, а наприкінці я наведу приклад того, як можна поєднати Chat GPT та Reforge.
Спочатку представлюся. Мене звати Євген Плохой. Я Head of Product в компаніі Readdle, де керую командою розробників, дизайнерів, продактів та маркетологів, які створюють додаток Documents, що допомагає мільйонам професіоналів по всьому світу отримувати максимум від своїх Apple-девайсів. Також я є одним із кофаундерів благодійного фонду КОЛО, де, разом із командою, втілював у життя такі проєкти як КОЛОна та Святкове КОЛО.
Як легко здогадатися з мого інтро, я не є експертом у технологіях ШІ, а значить сьогодні не буде про принципи роботи штучного інтелекту, як працюють паралельні трансформери, на що саме впливає кількість параметрів GPT і чия M/LLM краща. Я сфокусуюся безпосередньо на особливостях використання. Приклади будуть англійською, оскільки Chat GPT найкраще працює саме з цією мовою.
Ми всі починали із простих запитів, таких як:
- «Write a poem about..»
- «Rephrase the sentence...»
- «Write an email about...»
- «Make it shorter...»
- «Tell me a joke about...»
Потім промпти почали ускладнюватися:
- «Write a poem about... where each line starts with D»
- «Rephrase the sentence ... and make it sound friendly and confident»
- «Answer No to this email... politely»
Звісно, дуже важливу роль відіграє те, що у наукових паперах називається attention blocks, тобто можливість системи утримувати контекст, що дозволяє, крім іншого, уточнювати запит пiсля отримання першої версії результату, коригувати її.
Поки хтось намагався змусити Chat GPT почати лаятися та писати матерні вірші, інші зрозуміли, що загалом Chat GPT відповідає як «усереднена» людина і щоб отримувати більш консистентні результати, треба їй задавати контекст. Тоді почали використовуватися більш складні промпти, де Chat GPT почали надавати контекст.
Ось, наприклад, 45 ChatGPT Use Cases for Product Managers.
Подивившись на ці use cases, можна зрозуміти паттерн — автор каже Chat GPT, що він Product Manager, задаючи певний контекст спілкування, отримуючи більш консистентні відповіді, в яких вже починає зʼявлятися професійна лексика і краще розуміння потреби.
Це дійсно класний інструмент, спробуйте декілька прикладів із документа. Змінюючи деякі частини під свої потреби та задаючи додаткові питання, ви отримаєте доволі непогані результати.
Але. Думаю, що багато хто помічав, що Chat GPT не генерує якісь дійсно цікаві інсайти. Якщо продовжувати приклад із Product Manager, його відповіді нагадують переписку із Junior Product Manager, який прочитав усі статті, що зміг знайти в інтернеті. У мене якось навіть був допис у Телеграм-каналі (навіть не намагайтесь підписатися, я там дуже рідко щось публікую), чому інформація ≠ вміння, який добре ілюструє Chat GPT: він має повно інформації, але діла з цього небагато. Це вже непогано, але доволі швидко набридає, оскільки частіше за все, нічого нового ви не дізнаєтесь і повертаєтесь до використання Chat GPT із простими запитами, щоб швидко та якісно відповідати англійською англомовним колегам.
Програмуємо Chat GPT на певну поведінку
І тут мі підішли до prompt engineering. Це процес, коли ви програмуєте Chat GPT на певну поведінку з декількома тригерами, не просто задаючи контекст, а переводячи його у робочій потік. Хтось таким чином намагається отримати більше від Chat GPT, а хтось намагається його взламати. І це вдається. Наприклад, нещодавно зʼявився prompt DAN (do anything now), який змусивав Chat GPT 3.5 переходити в альтерего, якого звати DAN, знімаючи усі запобіжники (0.5 у версії 3.5 відповідає саме за етичний елемент). Ось як виглядає запит (якщо що, цю вразливість вже виправили, і DAN не працює, як мав би, і без вагань віднімає в себе бали).
Як можете бачити, запит вище не звичайний rephrase, а має певну логіку і навіть систему винагород. Це класний приклад саме prompt engineering.
Якщо цікаво подивитися на різні приклади, рекомендую зберегти собі ось це посилання — Awesome Chat GPT prompts. Тут збирають найцікавіші приклади різноманітних промптів, на яких можна повчитися створювати власні запити.
Але давайте вже перейдемо до власного запиту. Він буде доволі простим, але моя мета показати вам логіку, а не написати найскладніший запит із можливих.
Умови
Я проходжу курс Product Marketing Manager на Reforge і одним з ключових елементів курсу є створення блог-посту на 500 слів, який має відображати позиціювання продукту. Хто проходив Reforge, добре знає, що їхня команда може дуже добре упаковувати інформацію у фреймворки та казати ЩО робити, але там неможливо навчитися тому ЯК це робити. І ось, з одного боку, я розумію важливість концепту, яким є блог-пост на 500 слів, з якого потім утворюється більш короткий стейтмент на 150 слів, а потім, золотий грааль product marketing manager (за думкою Reforge) — One Take Away, пʼять слів, які мають грати прекрасну мелодію на струнах душі вашого цільового споживчого сегменту.
Виглядає як чудова задача для GPT. Але, якщо ви просто попросите написати блог-пост на 500 слів, то є непогані шанси отримати дуже посередній результат.
Задача
Використовуючи всі існуючі рекомендації Reforge, написати ідеальний блог-пост.
Що в нас є:
- Загальний опис цього блог-посту, що він має бути емоційним, говорити про споживчий сегмент у комунікативному форматі і т. д.
- Приклади таких блог-постів від чотирьох різних компаній, наведених у Reforge.
- Сімь запитань, наведених у лекціі, відповіді на які мають бути у блог-пості.
- Доступ до Chat GPT.
Насправді, там є ще додаткові елементи у курсі, такі як, наприклад, Pain Points, Differentiators і інші, які можуть допомогти у створенні класного блог-посту, і в своєму робочому промпті я їх також використовую, зробивши такого собі Reforge co-pilote, але для розуміння підходу, це не дуже важливо, тож фінальний промпт у цьому дописі буде трохи спрощенним у порівнянні з тим, що я використовую.
Я використовую GPT-4, але це не обовʼязкова умова, 3.5 так само впорається з задачею. Поїхали.
Процес
1. Надамо йому ідентичність. ChatGPT має розуміти контекст, у якому він працюватиме, тож почати треба саме з цього. Оскільки текст має писати Product Marketing Manager, то нехай він і буде:
I want you to act as a professional product marketing manager.
(буде цікаво подивитися, як відрізнятиметься результат, написаний «professional product marketing manager» і, наприклад, «Steve Jobs», але це я вже залишу для вас)
2. Ставимо безпосередньо задачу і додаємо, що треба написати блог-пост на 500 слів:
... who has to write a
3. Але перед тим як писати текст, нам потрібно показати приклади. Добре, що в нас є декілька від інших компаній:
First, I will provide you with a few examples of blog posts from other products. You have to read these posts and adapt your future output correspondingly.
4. Давайте налагодимо зворотний звʼязок, щоб розуміти, що все йде за планом:
After every example, reply, «Got it. Give me another example or let’s switch to Questions».
Тепер кожного разу, як тільки я буду надсилати саме приклад, Chat GPT має відповідати саме цією фразою, щоб я розумів, що він у потрібному режимі
5. Але прикладів недостатньо, треба ще відповісти на запитання, наведені у лекції, щоб output відповідав баченню:
Then I will command «Questions», and you have to switch to the Questioning regime. In the Questioning regime, you have to ask the following questions one by one.
Who is the target audience for our product?
What problem does our product solve?
How does our product solve that problem?
Why is our product the best solution to that problem?
What are the product’s core features?
How does the product make the customer feel?
What are the benefits of using our product?
6. Тепер треба зашити його на певну поведінку. Після моєї відповіді на кожне запитання, щоб він не виходив у дикий захід свої нейронки, відразу реагуючи на мою відповідь простирадлом тексту:
After asking a question, wait for my reply with an answer. After my answer, ask the next question from the list.
7. Окей, тепер можна ще трошки зашейпити аутпут, який ми хочемо отримати. Для цього я просто скопіював рекомендації у лекції і додав їх як додатковий контекст:
After asking all the questions from the list above, using examples from other products and my answers to the questions, compose the needed
8. Тепер ми готові починати роботу, тож давайте визначимо умови запуску і додамо базову перевірку (скоріш за все, ця перевірка так не працює, але мені так спокійніше):
Answer with «Give me the first example» if you understood everything. If didn’t understand the command, reply with «meh».
Ми готові починати роботу з ботом. Щоб не робити допис занадто довгим, я просто записав скрінкаст того, як працює ця команда, тож, можете подивитися відео або спробувати самостійно. Спойлер: у відео не все пішло за планом і Chat GPT почав диктувати свої умови :) У якості приклада я взяв наш благодійний фонд КОЛО, щоб зайвий раз нагадати про необхідність підтримки ЗСУ. Отримані результати не є офіційним позиціюванням фонду.
Якщо цікаво роздивитися фінальний результат, це можна зробити за посиланням.
На завершення
Ось і все. Сподіваюся, я зміг показати, чим prompt engineering відрізняється від звичайного prompt, а ви дізналися щось корисне для себе. Впевнений, що багато хто зі спільноти користується і більш складними запитами, тож буде круто побачити їх у коментарях.
31 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів