Реалізація Chain-of-Thought (CoT) промптингу для LLM

Відповіді моделі коливаються від запуску до запуску, і на складних задачах це помітно за якістю. Ми налаштовуємо Chain-of-Thought промптинг під ключ: розбираємо задачі, збираємо кероване покрокове міркування і доводимо частку правильних відповідей до потрібного рівня. Передаємо бібліотеку підказок і регламенти вашій команді.
Часті запитання

Chain-of-Thought промптинг: чому відповіді нестабільні

На багатокрокових задачах — розбір договору за пунктами, розрахунок за залежними умовами, діагностика за логами — модель видає зв'язний результат, який суперечить частині вихідних даних.

Правка формулювання допомагає на один-два прогони, далі поведінка знову розходиться: Chain-of-Thought промптинг без управління ланцюгом міркувань стабільності не дає.

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

Звідси нестабільні відповіді моделі: той самий запит на різних прогонах дає різні гілки міркувань і різні висновки.

Перевірка на одному вдалому прикладі нічого не говорить про якість відповідей на складних задачах — розходження проявляється на десятках запусків і там, де ціна помилки максимальна.

Втрата умов у запиті — не дефект формулювання, а властивість самої генерації, тому переписуванням питання її не закрити. Потрібен керований ланцюг: явні кроки, перевірка проміжних результатів і правила, за якими модель повертається до вихідних даних. Розбираємо, як це влаштовано в реалізації.

Що дає кероване міркування: вимірювані ефекти

Кероване міркування — це не «розумніша модель», а заздалегідь описаний порядок кроків, який модель проходить до висновку. На багатокрокових задачах це змінює точність відповідей, їхню повторюваність і обсяг ручної перевірки.

Частка правильних відповідей на багатокрокових задачах

Там, де відповідь збирається з кількох послідовних висновків — звірка умов, розбір заявки за регламентом, розрахунок за кількома правилами, — модель без заданої структури втрачає проміжні умови й видає правдоподібний, але неправильний підсумок.

Коли в шаблон вбудовано послідовність «витягти факти → застосувати правило → перевірити підсумок», частка коректних відповідей на таких наборах зростає в рази.

Повторюваність: однаковий вхід — передбачуваний вихід

Без фіксованої схеми той самий запит дає різні відповіді: змінюються аргументи, порядок, іноді висновок — і результат не можна ні вбудувати в автоматику, ні прийняти за формальною ознакою.

Ми задаємо обов'язкові кроки, їхній порядок і критерій, за яким висновок вважається обґрунтованим, — розходження між прогонами скорочується до формулювань, а не змісту.

Скільки ручної перевірки знімається

Ручна перевірка зазвичай покриває всю видачу, бо довіри до окремих відповідей немає.

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

Режими міркування: порівняння та обмеження

Режим міркування — це бюджет на проміжні кроки, а не «рівень інтелекту» моделі. Чим більше кроків між питанням і відповіддю, тим менше помилок на багатоумовних задачах — і вища затримка. Режим підбираємо під задачу, а не «на максимум».

Нижче — чотири режими та їхні обмеження.

Варіант Коли підходить Обмеження
Пряма відповідь Витяг полів, класифікація, короткі формулювання Потрібен розрахунок у кілька кроків — помилиться і не покаже, де
Покрокове міркування в один прохід Арифметика, порівняння умов, розбір правил Кроки не перевіряються: помилка в середині веде весь висновок
Міркування з окремою перевіркою Розрахунки, вибір із варіантів, відповіді за документом Вищий час відповіді та витрати на генерацію
Розбір через проміжні висновки Довгі ланцюги умов і багатокрокові інструкції Потрібні явні правила, інакше кроки розходяться

Коли прямої відповіді достатньо

Пряма відповідь працює там, де результат — одне значення або коротка мітка: витягти реквізити з договору, розмітити звернення за темою, привести текст до шаблону. Зайві кроки нічого не додають — модель і так влучає в ціль, а час відповіді зростає. Критерій простий: якщо людина відповідає не замислюючись, міркувати не потрібно.

Коли потрібна перевірка другим проходом

Другий прохід потрібен, коли помилка дорожча за затримку: розрахунки, вибір із варіантів, відповіді з опорою на документ. Ми розносимо міркування й самоперевірку моделі по різних викликах: спочатку висновок, потім звірка з вихідними даними й правилами.

Це ловить помилку в середині ланцюга і знижує частку неправильних відповідей, але помітно збільшує витрати.

Порядок робіт: від розбору задач до передачі

Впровадження починається не з вибору моделі, а з розбору задач: де відповідь має супроводжуватися покроковим міркуванням, а де достатньо короткої форми і Chain-of-Thought промптинг лише сповільнить відгук.

Етапи вибудовуємо так, щоб кожен наступний крок спирався на перевірюваний артефакт, а не на враження від показового прикладу.

  1. Розбір задач і збір реальних запитів: вивантажуємо історію звернень, прибираємо дублі й групуємо за типами — отримуємо набір, що відображає фактичний розподіл задач, а не зручні для показу випадки.
  2. Розмітка еталонних міркувань: для кожного типу задачі описуємо ланцюг кроків, який приводить до правильної відповіді.
  3. Складання чорнових наборів підказок: формулюємо кілька варіантів під кожен тип задачі та порівнюємо їх між собою на тих самих прикладах.
  4. Налаштування правил перевірки: фіксуємо, що вважаємо коректною відповіддю і як відловлюємо міркування, яке приводить до неправильного висновку.
  5. Прогін на відкладеній вибірці: лише приклади, що не брали участі в налаштуванні, показують реальну стійкість рішення.
  6. Передача рішення й навчання команди: документація, розбір типових помилок і регламент оновлення наборів підказок.

Розмітка еталонних міркувань

Тут важлива не довжина ланцюга, а його відтворюваність: два розмітники на одному прикладі мають дійти одного висновку. Тому спірні випадки виносимо окремим списком і розбираємо до того, як вони потраплять у набір.

Перевірка на відкладеній вибірці

Відкладена вибірка збирається заздалегідь і не використовується під час налаштування — інакше оцінка показує завченість, а не якість. Дивимося частку правильних відповідей за кожним типом задач окремо: загальний відсоток приховує провали на рідкісних, але важливих запитах.

Що залишається у вас: бібліотека підказок і регламенти

Після запуску рішення у вас залишається не лише працюючий сервіс, а й увесь шар, який ним керує.

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

  • Набори підказок за типами задач: призначення, очікуваний формат відповіді, приклади коректних і відхилених реакцій моделі, включно з ланцюгами міркувань.
  • Схеми розбору типових задач: які кроки міркування модель проходить, де точка розгалуження і що вважається неправильним висновком.
  • Регламент перевірки: правила звірки відповіді з джерелом, набір контрольних запитів, критерії приймання нової версії.
  • Правила оновлення: що перезбирається при зміні моделі чи постачальника, а що переноситься без правок.
  • Журнал змін: дата, автор, причина правки, результат прогону контрольного набору до і після.
  • Інструкція із супроводу: як додати новий сценарій, не ламаючи наявні, і куди дивитися при просіданні якості.

Як зберігаються й оновлюються набори підказок

Набори лежать у системі контролю версій поряд із кодом сервісу: одна підказка — один файл з описом призначення. Правка потрапляє в основну гілку лише після прогону контрольного набору, а версія моделі фіксується в журналі змін. При її оновленні видно, які сценарії просіли і що саме було виправлено.

Кейс: як зросла точність відповідей на розборі заявок

Що було до

Розбір вхідних звернень ішов одним запитом: модель одразу видавала категорію й рішення.

На неоднозначних формулюваннях — а це помітна частина потоку в кілька тисяч звернень на місяць — висновок виявлявся неправильним, і правилами такі помилки не ловилися: бракувало проміжних кроків, де модель зіставляє факти між собою.

Частка правильних висновків трималася близько двох третин, кожне третє звернення йшло на ручну звірку — до 12 хвилин роботи спеціаліста.

Правила дописували поверх, але це лікувало симптоми: кожне нове формулювання клієнта вимагало чергового винятку, список зростав, а точність стояла на місці.

Що стало після

Розбір розклали на кроки: спочатку витяг фактів з тексту звернення, потім пошук суперечностей між ними, далі звірка з базою правил — і лише після цього підсумковий висновок.

Еталонний корпус із 400 розмічених звернень зібрали в Label Studio, на ньому ж проганяли кожну версію промпту перед викаткою.

  • частка правильних висновків — 94% проти 68% до переробки;
  • ручна правка — одне звернення з п'ятнадцяти замість кожного третього;
  • час розбору скоротився з 12 до 4 хвилин на звернення;
  • ескалації старшому спеціалісту — втричі рідше.

Промпт живе як код: зміна проходить прогін за еталоном, і якщо метрика просіла, версія відкочується. Нові типи формулювань розбираються без правки правил — модель доводить ланцюг міркувань сама.

Чим покрокове міркування відрізняється від самоперевірки?

Покрокове міркування — це один прохід: модель розкладає задачу на проміжні кроки і йде ними до відповіді.

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

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

Розділення проходів потрібне там, де помилка в середині ланцюга непомітна ззовні: один неправильний крок дає впевнено виглядаючий, але неправильний підсумок, і без другого проходу його не відловити.

Кожен додатковий прохід збільшує час обробки та обсяг звернень до моделі, а якщо показувати перевірку цілком — і довжину відповіді. На коротких задачах два проходи замість одного помітно додають затримку за того самого результату.

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

Вибір режиму ми робимо за ціною помилки, а не за зовнішньою складністю задачі. Де неправильна відповідь видна одразу й легко перевіряється людиною, достатньо покрокового міркування.

Де рішення йде в автоматичний контур — розрахунки, узгодження умов, висновки за документами — додаємо самоперевірку, іноді лише на критичних кроках, щоб не платити за перевірку всієї відповіді.

Самоперевірка теж може помилятися, тому критерії перевірки та поведінку при розходженні описуємо в промпті заздалегідь.

Часті технічні сумніви та обмеження

CoT — не універсальний прийом: на класифікації, витягу полів і перевірці відповідностей покрокове міркування збільшує час відповіді та обсяг виводу без приросту якості.

Ми заздалегідь розмічаємо, де метод дає ефект, а де включати його не потрібно — це частина проєктної роботи, а не налаштування «на око».

Нижче — технічні сумніви, які найчастіше спливають на етапі оцінки: стійкість при зміні моделі, необхідність прикладів міркувань, вимірюваність результату та перенесення підказок у сусідні сценарії.

Що буде при зміні моделі?

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

Чи обов'язкові приклади міркувань у підказці?

Ні, міркування за кроками працює й без розмічених прикладів. Приклади прискорюють вихід на потрібну якість і стабілізують формат, але видовжують підказку та збільшують обсяг виводу в 2-4 рази.

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

Як виміряти ефект, а не повірити на слово?

Збираємо еталонний набір запитів із заздалегідь правильними відповідями та рахуємо частку правильних рішень до і після. Додатково дивимося частку відмов і звернень до людини. Без еталонного набору порівняння залишається смаковим.

Чи можна перенести підказки в інший сценарій?

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

Обговоримо задачу: що уточнити перед стартом

Точна оцінка з CoT-промптингу починається не з шаблону промпту, а з вхідних даних. Якщо надіслати лише опис задачі, ми повернемося з діапазоном у рази ширшим за реальний. Нижче мінімальний набір для оцінки, після якого розмова переходить у план робіт з етапами та строками.

  • Приклади запитів — 30-50 реальних формулювань, включно з короткими, з одруками та змішаними мовами.
  • Еталонні відповіді — за 20-30 прикладами зафіксований бажаний результат і те, що вважається неприпустимим.
  • Типові збої — де поточна логіка помиляється: пропущений крок міркування, підміна факту, обрив на довгому запиті.
  • Вимоги до перевірки — які перевірки відповідь проходить перед видачею: звірка з джерелом, формат, обов'язкові поля.
  • Обмеження за часом відповіді — скільки секунд чекає користувач і що важливіше: швидкість чи глибина міркування.
  • Обмеження за даними — що не можна передавати в зовнішні сервіси, чи потрібна ізоляція контуру.
  • Точки інтеграції — звідки надходить запит, куди йде відповідь, хто править шаблон після запуску.
  • Цільові метрики — частка правильних відповідей на перевірному наборі, частка відмов «не знаю», розкид між запусками.

З цього набору починається обговорення задачі: проводимо дзвінок за проєктом з інженером, розбираємо спірні приклади, фіксуємо, що вважаємо еталоном, і знімаємо суперечності у вимогах.

За підсумками надсилаємо план робіт — порядок етапів, склад перевірок, документацію та оцінку строків.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142