Chain-of-thought prompting
Когда заставлять модель «думать вслух», когда не надо, и как структурировать рассуждение.
Используй chain-of-thought (CoT) правильно.
Что это
- Просим модель рассуждать пошагово перед ответом
- Повышает качество на задачах с многошаговой логикой
- Делает рассуждение видимым — можно дебажить
Когда применять
✓ Многошаговая задача (плюс десяток условий) ✓ Математика, логика, классификация со сложными правилами ✓ Когда нужно объяснить решение (audit trail) ✓ Когда модель часто ошибается на этой задаче
✗ Простой вопрос ("Что такое X?") ✗ Когда формат ответа критичен и узок (JSON, command line) ✗ Когда скорость важнее качества (CoT = в 2-5x больше токенов)
Типы CoT
A. Zero-shot
[Задача]
Подумай пошагово.
B. Structured CoT
[Задача]
Сначала:
1. Сформулируй что нам известно
2. Сформулируй что нам нужно
3. Перечисли возможные подходы
4. Выбери лучший с обоснованием
5. Примени его
Затем дай финальный ответ.
C. Few-shot CoT: показываешь несколько примеров с рассуждением
D. Tree-of-thought: модель параллельно рассматривает несколько веток рассуждения, выбирает лучшую
Структура структурированного CoT
## Известно
- факт 1
- факт 2
## Нужно
[цель]
## Гипотезы
1. подход A — плюсы/минусы
2. подход B — плюсы/минусы
## Выбор
Идём с A потому что [причина].
## Проверка
[применяем A на тестовых данных]
## Ответ
[итог]
Скрытый vs видимый CoT
- Видимый: модель пишет рассуждение в ответе → пользователь видит "почему"
- Скрытый: модель рассуждает, но ты прячешь это из финального вывода → пользователю чище
Anthropic API даёт <thinking>-блоки которые автоматически скрываются.
Подводные камни
- Не работает на маленьких моделях — у них нет умения "следить" за длинным рассуждением
- Может быть post-hoc — модель сначала "знает" ответ, потом подгоняет рассуждение под него (особенно на лёгких задачах)
- CoT удлиняет ответ — следи за бюджетом токенов
- Можно зациклиться — если структура слишком жёсткая, модель может застрять
Тест
- Прогон с CoT и без на 20 кейсах
- Считай accuracy
- Если разница < 5% — CoT здесь не нужен, экономь токены
Принципы
- Структурированный CoT > свободный "подумай"
- Меньше шагов лучше — 3-5 типично достаточно
- Финальный ответ должен быть чётко отделён от рассуждения
Ревью и улучшение промта
Найти слабые места в промте: размытость, противоречия, missing context, плохой формат вывода.
Генерация few-shot примеров
Создать 3-5 разнообразных примеров для few-shot prompting в нужном формате.
Версионирование промтов через git
Структура репо для prompt templates, ревью изменений, deploy в рантайм, мгновенный rollback при регрессии.