Усі уроки · 44
Техніки промптингу: Zero-shot, Few-shot, CoT, ReAct
Чотири основні техніки промптингу, якими користується кожен AI-інженер: zero-shot, few-shot, chain-of-thought і ReAct — з промптами, які можна скопіювати, та розбором того, коли яка допомагає.
Чотири техніки — одна ідея
Будь-яка техніка промптингу відповідає на те саме запитання: що має побачити модель, щоб дати правильну відповідь? Інколи нічого зайвого, інколи приклади, інколи час на роздуми, а інколи інструменти.
Чотири техніки потрібні тому, що «працює» і «працює щоразу» — різні речі. Більшість розчарувань від промптингу — це одна з чотирьох проблем під маскою: хибний формат (лікується прикладами), хибна відповідь (лікується міркуваннями), брак інформації (лікується інструментами) або взагалі жодної проблеми. У такому разі просто спитайте прямо й перестаньте ускладнювати.
У реальних проєктах ви використовуватимете всі чотири, зазвичай упереміш. Розгляньмо їх за порядком складності.
Це коротка версія
Чотири основні техніки — цього досить, щоб випускати робочі функції. Шукаєте конкретний прийом — Tree of Thoughts, самоузгодженість (self-consistency), step-back, автоматичне проєктування промптів? Усі вони зібрані в уроці Повний каталог технік промптингу. Спершу прочитайте цей урок; звертайтеся до каталогу, коли промпт «майже працює» і потрібен точніший інструмент.
Zero-shot: просто спитайте
Zero-shot означає просити модель виконати завдання взагалі без прикладів — «нуль прикладів», звідси й назва. Ви покладаєтеся на все, чого вона навчилася під час навчання. Поширені завдання, яких у навчальних даних було багато, — коротко переказати, перекласти, визначити тональність, виправити граматику — сучасні моделі виконують без проблем.
Визнач тональність цього відгуку: «positive»,
«negative» або «neutral».
Відгук: «Батарея тримає заряд вічно, але застосунок — катастрофа.»
Відповідай одним словом.Використовуйте zero-shot, коли завдання просте й поширене. Якщо потрібен конкретний формат або в завдання є незвичні крайні випадки, беріться за сильніші прийоми.
Few-shot: покажіть приклади
Few-shot-промптинг розміщує кілька пар «вхід — вихід» просто в промпті («кілька прикладів» — зазвичай від двох до п’яти). Модель наслідує закономірність. Це найдешевший спосіб керувати форматом і крайніми випадками: жодного донавчання (fine-tuning — повторного навчання моделі на ваших даних), жодного пайплайна навчальних даних — лише текст. (Приклади — один із шести блоків в уроці Анатомія промпта: з чого він складається; тут ми перетворюємо цей блок на техніку.)
Ось різниця на практиці. Те саме завдання класифікації, спершу без прикладів:
Непослідовно: спершу одна мітка, потім фраза з чотирьох слів. Модель вгадує, який стиль вам потрібен. А тепер із двома прикладами:
Та сама модель, те саме завдання — але тепер кожну відповідь можна розібрати програмою. Ось що дає few-shot: узгодженість.
Скопіюйте цей приклад і підставте свої мітки:
Розмічай кожне звернення до підтримки рівно однією міткою
зі списку: billing, bug, how_to, refund, other.
Відповідай лише міткою, без пояснень.
Звернення: «Застосунок вилітає, коли я завантажую фото.»
Мітка: bug
Звернення: «Як змінити пароль?»
Мітка: how_to
Звернення: «З мене двічі списали гроші, поверніть, будь ласка, один платіж.»
Мітка: refund
Звернення: «Чи є у вас тариф для команд із 20 осіб?»
Мітка:Від двох деталей залежить успіх: дайте моделі закритий список міток (інакше
вона вигадає нові) і залиште останній рядок Мітка: порожнім, щоб модель
продовжила шаблон, а не переказувала його.
Chain-of-thought: дайте моделі подумати
Для математики, логіки, порівнянь і багатокрокових рішень вимога миттєвої відповіді шкодить якості: модель змушена вибирати кожне слово, не встигши «домислити» до кінця. Chain-of-thought (CoT, «ланцюжок міркувань») просить модель міркувати крок за кроком перед відповіддю: вона виписує проміжні кроки, і кожен крок стає контекстом, що полегшує наступний.
Найпростіший варіант — один рядок:
У магазині блокноти продаються упаковками по 6 штук за 4 долари
і по 10 штук за 6 доларів. Мені потрібно 50 блокнотів.
Яка комбінація упаковок найдешевша і скільки вона коштує?
Думай крок за кроком: спочатку порахуй, скільки потрібно упаковок,
потім перевір, чи не буде дешевшою більша упаковка,
потім дай остаточну відповідь в останньому рядку у вигляді
«Відповідь: ...».Два практичні зауваження:
- Міркування коштує токенів. Вмикайте CoT там, де завданню потрібні кроки; для «перекажи цей абзац» воно зайве.
- Якщо ви не хочете показувати користувачам міркування, попросіть модель помістити остаточну відповідь у структуроване поле (наприклад, у JSON) і показуйте лише його.
Сучасні моделі, що міркують, чимало з цього роблять усередині себе, але для звичайних моделей — і щоб побачити, чому відповідь хибна, — явний промптинг «за кроками» залишається потрібним інструментом.
ReAct: міркувати й діяти з інструментами
ReAct (Reason + Act, «міркуй і дій») — це CoT плюс можливість щось робити. Модель думає, викликає інструмент (функцію, яку вона може попросити запустити ваш код: знайти замовлення, дізнатися ціну, пошукати в інтернеті), спостерігає результат і повторює, доки не зможе відповісти. Цей цикл лежить в основі більшості AI-агентів.
Трасування (trace) — журнал одного такого циклу — виглядає так:
- Думка: Мені потрібен сьогоднішній курс обміну, щоб порахувати підсумок.
- Дія: викликати інструмент
get_rateз параметрами EUR → USD. - Спостереження: 1.09
- Думка: Тепер можна порахувати: 250 EUR — це 272,50 USD.
- Відповідь: Сума замовлення — 272,50 USD.
У ReAct промпт перестає бути одним повідомленням і стає циклом: відповідь моделі перетворюється на виклик інструмента, а результат інструмента — на новий вхід. Як будуються такі цикли, ми розберемо в уроці Що таке AI-агенти, а самі виклики інструментів підключимо в уроці Інструменти та виклик функцій.
Як вибрати
Починайте з zero-shot. Якщо формат хибний або крайні випадки обробляються недбало, додайте few-shot-приклади; якщо міркування хибне — chain-of-thought; якщо завданню потрібні дані з реального світу або дії, вам потрібен ReAct.
Перевірте себе
Ваш класифікатор постійно вигадує нові мітки замість ваших п’яти. Яка техніка це виправить і як?
Завданню потрібен сьогоднішній курс обміну валют. Яка техніка необхідна?
Коли chain-of-thought — це марна трата грошей?
Самими промптами не можна дати моделі знань, яких у неї немає: ваші документи, ваші продукти, дані ваших користувачів. Це вже інша проблема, і далі в цій дорожній карті ми розв’яжемо її за допомогою ембеддингів (способу, яким моделі перетворюють зміст на числа) та RAG.
А коли цих чотирьох недостатньо, повний каталог технік продовжує з того місця, де закінчується цей урок.
Є запитання?
Приєднуйтеся до Telegram-каналу — залюбки обговоримо техніки й поділимося прикладами.