Промпт-інжиніринг: як ефективно спілкуватися з ШІ
Привіт! Я Олексій Шамуратов, Data Engineer в Brainstack та викладач на кафедрі систем штучного інтелекту у Львівській політехніці. Як і ви, я щодня використовую ШІ для вирішення різних завдань — від розробки коду до підготовки навчальних матеріалів.
Штучний інтелект став невід’ємною частиною нашого життя. Один лише ChatGPT щодня налічує понад 123 мільйони активних користувачів. Але чи всі вони отримують ті відповіді, на які розраховували?
Ефективність роботи з мовними моделями залежить від вашого вміння писати промпти — інструкцій для ШІ. У цій статті я поділюся найбільш дієвими підходами промт-інжинірингу, які допоможуть заговорити з ШІ однією мовою.
Що таке промт-інжиніринг
Поняття промпт-інжиніринг не нове, і використовувалося ще до популярності ШІ. Наприклад, у прописуванні скриптів для холодних дзвінків відділу продажів. Зараз воно частіше вживається для опису системи спілкування з мовними моделями для того, щоб користувачі отримували найкращий результат.
Серед головних задач промпт-інжинірінгу:
- Розробка підказок — створення чітких запитів.
- Налаштування підказок — надання моделі необхідної додаткової інформації.
- Адаптація підказок до домену — оптимізація запитів для конкретного підприємства чи індустрії.
- Оперативне тестування — виявлення вразливостей у відповідях ШІ до того, як модель перейде до широкого користування.
- Пом’якшення упереджень — мінімізація стереотипів у результатах мовної моделі.
Як побудувати ефективний промпт
Точність результату та знаходження індивідуальних рішень мовною моделлю напряму залежить від вас, а точніше від того, наскільки правильно ви побудуєте свій запит. Ось декілька важливих принципів, які я раджу враховувати:
Призначення ролі. Це допомагає моделі звузити бази даних та шукати інформацію саме в тій сфері, в якій вам потрібно. Відчуйте різницю між «Розкажи про оптимізацію запитів» та «Візьми на себе роль розробника бази даних та поясни, як оптимізувати запити».
Визначення цілі. Пропишіть, що ви хочете вирішити запитом, аби допомогти мовній моделі створити лаконічні та конкретні підказки. Наприклад, замість «Проаналізуй дані продажів», пропишіть «Проаналізуй дані продажів за останні три місяці, аби визначити головні фактори, що вплинули на зниження конверсії».
Лаконічні та конкретні підказки. Якщо ви не знаєте, яку інформацію надати мовній моделі, почніть з опису проблеми та запитайте, які підказки потрібні.
Надайте додатковий контекст та обмеження. Уточніть, в якому стилі ви хочете отримати відповідь (науковий, публіцистичний тощо), якої галузі має стосуватися інформація. Однак не варто заграватися: що більше зайвої інформації, то складніше мовній моделі зрозуміти контекст. Надавайте лише дійсно важливі дані.
Використовуйте приклади та шаблони. Якщо ви хочете, щоб ШІ допоміг з генерацією бізнес-стратегії, листа для партнерів, задачі для студентів — покажіть йому, як ви раніше це робили та оформлювали.
Ітерація та експеримент. Продовжуйте взаємодіяти з мовною моделлю, поки не отримаєте бажаний результат, змінюйте логіку, використовуйте різні підходи до промптів.
Перевірте та оцініть. В мовних моделях зустрічаються галюцинації. Згенерована відповідь може не належати до вашої галузі або бути в принципі неправильною. Тому важливо перевіряти дані.
Документація даних. Так ви зможете поділитися з командою рішеннями та зекономити час на розв’язання схожих проблем у майбутньому.
Результати видачі також залежать від мови, якою ви ставите задачу. Для технічних задач я б радив використовувати англійську. Це пов’язано з тим, як працює ChatGPT: через особливості токенізації тексту він може опрацьовувати більше контексту англійською.
По-друге, якщо ви пишете запит англійською, мовна модель працює з глобальною базою знань для генерації відповіді, в той час як україномовні запити обмежуються локальними джерелами даних.
Також для GPT можна застосувати кастомізацію, щоб покращити результати залежно від галузі.
Найпоширеніші помилки у спілкуванні з ChatGPT
Коли користувачі відкривають для себе мовні моделі, вони часто потрапляють у пастку їхньої «всемогутності» та помилково вірять, що ШІ може розв’язати всі проблеми. Це не так. Перше і головне правило роботи з ШІ — використовувати його лише там, де ви можете перевірити надану інформацію.
Ще одна розповсюджена «помилка новачка» — використовувати ChatGPT для отримання етичних, медичних, фінансових порад або інших питань, що вимагають експертної оцінки. Все, що може зробити мовна модель, це переглянути доступні в інтернеті статті за темою та зробити припущення. Однак немає гарантії, що ці статті будуть актуальними. Через обмеженість реальних даних не варто покладатися на ШІ у розв’язанні важливих питань.
Використання занадто загальних формулювань також негативно впливає на результат вашої взаємодії зі штучним інтелектом. Запит «Розкажи мені про маркетинг» краще деталізувати: «Опиши стратегії email-маркетингу для В2В).
Також я помітив, що люди іноді обмежуються одним запитом, не отримують бажаної відповіді, і роблять помилковий висновок, що «не такий вже і розумний цей штучний інтелект». Це неправильна стратегія. Для отримання релевантного рішення ви маєте робити поступові уточнення, коригуючи та направляючи мовну модель.
Отже, як ефективно спілкуватися зі ШІ?
Стратегії промпт-інжинірингу
Не сподівайтеся з одного промпту отримати готове рішення, яке вас задовольнить. Хіба що ви звертаєтеся з легким запитом, як-от перекласти речення або знайти синонім до слова. Якщо вам необхідна допомога мовної моделі для складних завдань, потрібен системний підхід. Зрештою, навіть коли ви ставите задачі колегам чи пояснюєте батькам, чим займаєтеся на роботі, то теж не вкладаєтеся в пару слів.
У промпт-інжинірингу існують ефективні підходи, які допомагають покращити результат роботи мовної моделі. Розглянемо деякі із них.
Least-to-Most-Prompting
Уявіть, що вам дали стажиста на роботі, і потрібно поступово ввести його в курс справ. Ви ж не кинете його напризволяще з потоком задач «на завтра», правда? Швидше за все ви почнете з легких та невеликих завдань, поступово збільшуючи їхню складність. Саме так працює підхід least-to-most-prompting.
Є два шляхи, як його можна використати. Перший — почати з легкого запиту, дати фідбек та уточнення, а потім поступово ускладнювати. Другий — розбити комплексну задачу на декілька маленьких, і розв’язувати кожну з них окремо.
В такому підході важливо надавати прості початкові запити, аби вчасно помітити відхилення у відповідях мовної моделі та скоригувати її.
Self-Ask Prompting
Не завжди у мовної моделі є дані, необхідні для вирішення вашого запиту.
У такому випадку вона або вам «зізнається у цьому» або ж почне будувати відповіді на припущеннях. Підхід Self-Ask Prompting допомагає уникнути цієї неточності. Його мета — змусити модель запитати вас про додаткову інформацію, якої їй не вистачає. Для цього вже у першому запиті після опису вашої проблеми можете прописати «Які додаткові дані тобі потрібні для надання рекомендацій?» або «Постав мені питання, які допоможуть розв’язати задачу».
Meta-Prompting
Цей підхід дуже схожий на прописування ТЗ колегам на виконання задачі. Коли ви його ставите, то вказуєте якомога більше контексту та даних, які допоможуть надати релевантний результат. Наприклад, це можуть бути обмеження за кількістю символів для тексту, розміром зображення для картинки, віком та гео аудиторії для налаштування реклами тощо.
Те ж саме відбувається у використанні Meta-Prompting. Перед тим, як генерувати запит, подумайте, які дані ви можете надати в модель для точності результату. Потім коригуйте відповіді, надавайте підказки та адаптовуйте відповіді до вашої галузі.
Важливо: коли діалог стає довгим, мовна модель може випасти з контексту і почати генерувати нерелевантні відповіді. Не хвилюйтеся, вона не «зламалася». Нагадайте їй важливі деталі та попросіть звернути увагу на попередні коментарі.
Приклад створення скрипта на Python для трансферу даних з PostgreSQL до AWS S3
Sequential Prompting
На початку взаємодії з мовною моделлю ви можете використати цей підхід, аби оцінити її обізнаність у темі та наявність достатньої кількості знань для розв’язання задачі. Умовно, яким чином ChatGPT вирішив би вашу проблему, якби ви взагалі не втручалися. Можете почати із простого питання без уточнень, наприклад «Створи калькулятор на Java», а потім поступово надавати невеличкі підказки та посилювати складність завдання.
Головне —— зберігати логічний хід думок, продовжувати безперервність теми та бути націленим на кінцевий результат.
Interactive Prompting
Приклад запиту для створення плану лекції, а також додаткові промпти, які допоможуть краще пояснити складні процеси студентам
Якщо інші підходи схожі на прописування ТЗ, то Interactive Prompting більше нагадує активний діалог. Задача підходу —— під час кожної генерації відповіді давати їй оцінку, ставити додаткові умови та коригувати, щоб привести до очікуваного результату.
Наприклад, ви маркетолог в ІТ і просите у мовної моделі «Створити опис нового EdTech-застосунку». Отримавши відповідь, можете прописати «Додай більше емоційного забарвлення», затим «Розвинь тему, як це допоможе людям ефективніше навчатися онлайн» тощо.
Тут наявний чіткий ітераційний характер спілкування, тому ведіть діалог структуровано — кожне уточнення має стосуватися конкретного аспекту та вести до мети. Не забувайте про необхідність збереження контексту —— посилайтеся на попередні версії та нагадуйте ключові вимоги, якщо помітно, що мовна модель «загубилася».
Chain-of-Thought
Уявіть, що перед вами не мовна модель, а ваш колега, з яким у вас на двох одна задача. Як би ви її вирішували? Думаю, спочатку провели б дзвінок для брейншторму та обмінялися б думками. Такий самий принцип застосовується у підході Chain-of-Thought.
Почніть з аналізу того, що ви вже знаєте, що вам потрібно з’ясувати, та як ви можете це перевірити. Використовуйте асоціації, питайте у моделі, чому вона дала саме цю відповідь —— це допоможе зрозуміти хід її думок і внести корективи. Не сприймайте відповіді ШІ як 100% вірні —— дізнавайтеся, на основі яких даних зроблено припущення, та з якого вони джерела.
Як зберегти приватність корпоративних даних
Один з ризиків використання ШІ для розв’язання робочих питань — це витік корпоративних даних. Звісно, хочеться завантажити фінансову таблицю в ChatGPT і попросити розрахувати бюджет, але це все одно, що розмістити дані у відкритому доступі. Те, що ChatGPT збирає інформацію —— це факт. Є і добра новина —— існують безпечні способи використання ШІ в роботі.
Один з них —— анонімізація даних. Перш ніж завантажити дані в мовну модель, приберіть назву компанії (хай це буде компанія «Х»), імена клієнтів (Клієнт «А», Клієнт «Б»), назви проєктів, адресу та контакти.
Щоб не надавати реальні цифри, ви можете модифікувати числові дані. Наприклад, помножити їх на 10. Головне потім самі не переплутайте.
Якщо ви хочете звернутися до мовної моделі для розв’язання проблеми, то опишіть її абстраговано, без згадки назви компанії.
Найкращий спосіб використовувати ШІ без ризику — це встановити локальні мовні моделі. Наприклад, LLAMA (Meta AI), GPT-neo або GPT-J. Вони не такі інтуїтивні в користуванні, як ChatGPT, а їх інсталяція потребує мінімальних технічних скілів. Однак величезною перевагою цих моделей є збереження даних у вашій системі та незалежність від зовнішніх сервісів.
Підсумовуючи, ефективна взаємодія зі ШІ — ітеративний процес, який починається із чіткого опису проблеми та запитання про те, які додаткові дані необхідні для її вирішення. Спробуйте різні підходи промт-інжинірингу, адже тільки удосконалюючи ваші запити ви зможете вийти на задовільне рішення. І головне —— завжди перевіряйте відповіді ChatGPT чи іншої мовної моделі. Пам’ятайте, що які б нові та прогресивні версії не з’являлися, це все одно лише інструмент підтримки прийняття рішень, а не їхнього автоматичного генерування.
Ще більше професійних інсайтів про промт-інжиніринг дізнавайтеся у відеозаписі з DOU AI Meetup. Переходьте за посиланням та вивчайте цікаві кейси, що допоможуть досягти бажаних результатів.
16 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів