Промптинг
Повний гайд з технік промптинга — від Zero-shot та Few-shot до Meta-prompting та Self-Debate, з прикладами українською
📎ОФІЦІЙНА ДОКУМЕНТАЦІЯ
Промптинг
Промптинг (Prompt Engineering) — це мистецтво та наука формулювання запитів до мовних моделей для отримання точних, релевантних та передбачуваних відповідей.
Принципи
Мета якісного промпту: Отримувати від моделі точні, релевантні та передбачувані відповіді, знижуючи кількість помилок та галюцинацій.
Якісний промпт: Чіткий, конкретний, однозначний. Включає контекст, роль, чітку інструкцію та, за потреби, приклад або формат виводу.
Поганий промпт: Розпливчастий, двозначний, надто загальний. Не дає моделі достатньо інформації для коректного виконання завдання.
Всі приклади промптів нижче — короткі та спрощені. Це не приклади ідеальних промптів, а ілюстрації сценаріїв застосування кожної техніки.
Техніки промптинга
Zero-shot Prompting
Промптинг з нульовим прикладом
Постановка завдання для моделі без надання будь-яких прикладів.
Переклади на англійську фразу: "Штучний інтелект змінює світ".
Найпростіша техніка. Працює добре для стандартних завдань, з якими модель вже знайома з навчальних даних.
Few-shot Prompting
Промптинг з кількома прикладами
Надання моделі кількох прикладів "завдання-рішення" для розуміння контексту та очікуваного формату.
Напиши задане слово у зворотному порядку.
Приклад 1: "море" → "ером"
Приклад 2: "кіт" → "тік"
Завдання: "кабан" → ?
Обирайте різноманітні, репрезентативні приклади. 3-5 прикладів зазвичай достатньо для більшості завдань.
Chain-of-Thought (CoT)
Ланцюжок міркувань
Вимога до моделі покроково описати логіку міркувань, що привели до відповіді.
У фермера було 15 овець. 5 з них він продав, а потім купив ще 8. Скільки овець у нього стало в результаті? Поясни покроково.
Відповідь моделі:
- Початок: 15 овець
- Продав 5: 15 - 5 = 10 овець
- Купив 8: 10 + 8 = 18 овець Відповідь: 18 овець.
Self-Consistency
Самоузгодженість
Генерація кількох різних ланцюжків міркувань та вибір найбільш узгодженої підсумкової відповіді. Підвищує надійність CoT.
Розв'яжи це завдання трьома різними способами, а потім обери відповідь, яка з'являється найчастіше.
Generated Knowledge Prompting
Промптинг зі згенерованими знаннями
Модель спочатку генерує необхідні факти з теми, а потім використовує їх для відповіді.
Крок 1: Перерахуй ключові факти про протокол HTTP/2.
Крок 2: Використовуючи ці факти, поясни, чому HTTP/2 швидший за HTTP/1.1.
ReAct (Reason + Act)
Міркування + Дія
Ітераційний фреймворк, де модель циклічно міркує (Reason), діє через зовнішні інструменти (Act) та аналізує результат для побудови наступного кроку.
Thought: Мені потрібно знайти поточну версію Node.js LTS.
Action: Пошук в документації Node.js.
Observation: Поточна LTS версія — 22.x.
Thought: Тепер я можу відповісти на питання.
ReAct — це основа роботи сучасних AI-агентів. Він поєднує планування та виконання в одному циклі.
Role Prompting
Задання ролі
Призначення моделі певної ролі або персони для задання потрібного стилю та глибини відповіді.
Ти — досвідчений senior TypeScript-розробник з 10-річним досвідом. Проведи код-рев'ю наступного файлу та вкажи на потенційні проблеми з типізацією.
Структурування промпту
Чітке розділення запиту на блоки: контекст, інструкція, формат виводу.
Контекст: Ми розробляємо REST API на Node.js з Express.
Завдання: Створи ендпоінт для реєстрації користувачів.
Вимоги: Валідація email, хешування паролю, повернення JWT.
Формат: TypeScript код з коментарями.
Структурування виводу
Просіть модель форматувати відповідь так, як вам зручно для подальшої роботи, із зазначенням формату виводу.
Проаналізуй цей код та поверни результат у форматі JSON:
json{ "issues": [...], "suggestions": [...], "rating": 1-10 }
Self-Reflection / Self-Critique
Рефлексія та самокритика
Ітеративний процес, де модель спочатку генерує відповідь, а потім сама її аналізує та покращує.
Напиши функцію сортування масиву. Потім переглянь свій код, знайди можливі проблеми з продуктивністю та запропонуй покращену версію.
Tree of Thoughts (ToT)
Дерево думок
Модель на кожному кроці досліджує кілька різних шляхів, оцінюючи їх перспективність, щоб обрати оптимальний наступний.
Розглянь три різні архітектурні підходи для цієї задачі. Для кожного опиши плюси та мінуси, а потім обери найкращий і поясни чому.
RAG (Retrieval-Augmented Generation)
Генерація з доповненням пошуком
Модель перед відповіддю витягує релевантну інформацію із зовнішньої бази знань та ґрунтує свою відповідь на ній.
RAG дозволяє моделі працювати з актуальними даними, що виходять за межі її навчальних даних. Це ключова техніка для корпоративних застосувань.
Directional Stimulus Prompting
Направляючий стимул
Включення у промпт ключових слів або підказок, щоб м'яко спрямувати генерацію відповіді у потрібному напрямку.
Напиши опис продукту, використовуючи слова: "інноваційний", "надійний", "простий у використанні".
Multimodal CoT
Мультимодальний ланцюжок міркувань
Застосування техніки "ланцюжка міркувань" для завдань, що включають дані різних типів — наприклад, текст та зображення.
[Зображення діаграми архітектури]
Покроково проаналізуй цю архітектурну діаграму та виявити потенційні вузькі місця.
Prompt Chaining
Ланцюжок промптів
Розділення складного завдання на послідовність простіших промптів, де результат одного є вхідними даними для наступного.
Промпт 1: Проаналізуй вимоги та створи список компонентів.
Промпт 2: Для кожного компонента з попереднього списку опиши API.
Промпт 3: На основі API створи TypeScript інтерфейси.
Prompt Chaining особливо ефективний для складних завдань, де один великий промпт призводить до втрати якості через обмеження контекстного вікна.
APE (Automatic Prompt Engineer)
Використання однієї мовної моделі для автоматичної генерації та оптимізації промптів для іншої. "Промпт, що пише промпти".
Згенеруй 5 варіантів системного промпту для чатбота підтримки клієнтів. Оціни кожен за критеріями: чіткість, повнота, тон.
Active-Prompt
Техніка, при якій модель ставить уточнюючі питання для кращого розуміння завдання перед тим, як дати остаточну відповідь.
Перш ніж писати код, постав мені до 5 уточнюючих питань, які допоможуть тобі краще зрозуміти вимоги.
PAL (Program-Aided Language Models)
Поєднання міркувань природною мовою з виконанням коду для розв'язання складних завдань.
Розв'яжи це математичне завдання: спочатку опиши логіку словами, а потім напиши Python-код для обчислення точної відповіді.
Graph Prompting
Використання графових структур у промпті для розв'язання завдань зі складними взаємозв'язками.
Представ залежності між модулями проєкту як граф. Визнач цикли та запропонуй рефакторинг для їх усунення.
Meta-Prompting
Створення промпту, що інструктує модель, як правильно обробляти інші промпти; "промпт про промпти".
Коли я даю тобі завдання з кодом, завжди дотримуйся такого алгоритму:
- Уточни вимоги.
- Запропонуй архітектуру.
- Напиши код.
- Додай тести.
- Проведи самоперевірку.
Self-Debate
Самодискусія
LLM за своєю природою прагне до згоди та надання "правильної" відповіді. Щоб отримати об'єктивний аналіз, змусьте модель сперечатися сама із собою.
Проведи дебати між двома експертами:
Експерт А захищає позицію: "Мікросервіси — це найкращий підхід".
Експерт Б захищає позицію: "Моноліт — це найкращий підхід".
Після дебатів зроби збалансований висновок.
Self-Debate особливо корисний при прийнятті архітектурних рішень, коли потрібно об'єктивно зважити альтернативи.
Див. також
Основні терміни та визначення у сфері AI
Принципи роботи великих мовних моделей та оптимізація витрат
Огляд AI-чатів, IDE, CLI та фреймворків