Усі уроки · 44
Шлях 3 · Дорожня карта AI-інженера·Урок 9 з 33

Техніки промптингу: Zero-shot, Few-shot, CoT, ReAct

Чотири основні техніки промптингу, якими користується кожен AI-інженер: zero-shot, few-shot, chain-of-thought і ReAct — з промптами, які можна скопіювати, та розбором того, коли яка допомагає.

РівеньНовачокЧас~15 хв

Чотири техніки — одна ідея

Будь-яка техніка промптингу відповідає на те саме запитання: що має побачити модель, щоб дати правильну відповідь? Інколи нічого зайвого, інколи приклади, інколи час на роздуми, а інколи інструменти.

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

У реальних проєктах ви використовуватимете всі чотири, зазвичай упереміш. Розгляньмо їх за порядком складності.

Це коротка версія

Чотири основні техніки — цього досить, щоб випускати робочі функції. Шукаєте конкретний прийом — Tree of Thoughts, самоузгодженість (self-consistency), step-back, автоматичне проєктування промптів? Усі вони зібрані в уроці Повний каталог технік промптингу. Спершу прочитайте цей урок; звертайтеся до каталогу, коли промпт «майже працює» і потрібен точніший інструмент.

Zero-shot: просто спитайте

Zero-shot означає просити модель виконати завдання взагалі без прикладів — «нуль прикладів», звідси й назва. Ви покладаєтеся на все, чого вона навчилася під час навчання. Поширені завдання, яких у навчальних даних було багато, — коротко переказати, перекласти, визначити тональність, виправити граматику — сучасні моделі виконують без проблем.

zero-shot — класифікація відгуку
Визнач тональність цього відгуку: «positive»,
«negative» або «neutral».

Відгук: «Батарея тримає заряд вічно, але застосунок — катастрофа.»

Відповідай одним словом.

Використовуйте zero-shot, коли завдання просте й поширене. Якщо потрібен конкретний формат або в завдання є незвичні крайні випадки, беріться за сильніші прийоми.

Few-shot: покажіть приклади

Few-shot-промптинг розміщує кілька пар «вхід — вихід» просто в промпті («кілька прикладів» — зазвичай від двох до п’яти). Модель наслідує закономірність. Це найдешевший спосіб керувати форматом і крайніми випадками: жодного донавчання (fine-tuning — повторного навчання моделі на ваших даних), жодного пайплайна навчальних даних — лише текст. (Приклади — один із шести блоків в уроці Анатомія промпта: з чого він складається; тут ми перетворюємо цей блок на техніку.)

Ось різниця на практиці. Те саме завдання класифікації, спершу без прикладів:

Simulated conversation
press the button below to send the first message
sent to the modelnothing yet — every message is sent in full

Непослідовно: спершу одна мітка, потім фраза з чотирьох слів. Модель вгадує, який стиль вам потрібен. А тепер із двома прикладами:

Simulated conversation
press the button below to send the first message
sent to the modelnothing yet — every message is sent in full

Та сама модель, те саме завдання — але тепер кожну відповідь можна розібрати програмою. Ось що дає few-shot: узгодженість.

Скопіюйте цей приклад і підставте свої мітки:

few-shot — класифікація з прикладами
Розмічай кожне звернення до підтримки рівно однією міткою
зі списку: billing, bug, how_to, refund, other.
Відповідай лише міткою, без пояснень.

Звернення: «Застосунок вилітає, коли я завантажую фото.»
Мітка: bug

Звернення: «Як змінити пароль?»
Мітка: how_to

Звернення: «З мене двічі списали гроші, поверніть, будь ласка, один платіж.»
Мітка: refund

Звернення: «Чи є у вас тариф для команд із 20 осіб?»
Мітка:

Від двох деталей залежить успіх: дайте моделі закритий список міток (інакше вона вигадає нові) і залиште останній рядок Мітка: порожнім, щоб модель продовжила шаблон, а не переказувала його.

Chain-of-thought: дайте моделі подумати

Для математики, логіки, порівнянь і багатокрокових рішень вимога миттєвої відповіді шкодить якості: модель змушена вибирати кожне слово, не встигши «домислити» до кінця. Chain-of-thought (CoT, «ланцюжок міркувань») просить модель міркувати крок за кроком перед відповіддю: вона виписує проміжні кроки, і кожен крок стає контекстом, що полегшує наступний.

Найпростіший варіант — один рядок:

chain-of-thought
У магазині блокноти продаються упаковками по 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-каналу — залюбки обговоримо техніки й поділимося прикладами.