Реализация Chain-of-Thought (CoT) промптинга
Представьте: модель даёт неверный ответ на задачу, требующую логических шагов — расчёт налога, кредитный скоринг, маршрутизация обращений. Chain-of-Thought (CoT) промптинг заставляет модель явно выписывать цепочку рассуждений, резко повышая точность. В одном из наших проектов для банковского клиента мы внедрили Few-shot CoT и получили прирост accuracy с 72% до 91%. Это не магия, а эксплуатация умения LLM работать по аналогии.
Модели GPT-4o и Claude 3.5 обучались на текстах с рассуждениями. CoT превращает задачу в серию простых подзадач. Эффект особенно заметен на multi-step reasoning: математика, логика, классификация со сложными критериями. Мы используем три основных варианта, каждый под конкретную ситуацию.
Zero-shot CoT: быстрое улучшение
Самый простой вариант — добавить к вопросу инструкцию "Думай шаг за шагом". Этого часто достаточно для улучшения.
from openai import OpenAI
client = OpenAI()
def cot_query(question: str, think_step_by_step: bool = True) -> str:
if think_step_by_step:
question += "\n\nДумай шаг за шагом перед тем как дать финальный ответ."
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": question}],
temperature=0,
)
return response.choices[0].message.content
# Сравнение
question = "Компания продала 1200 товаров по 850 руб. Скидка для заказов > 1000 единиц — 15%. Какова итоговая выручка?"
print(cot_query(question, think_step_by_step=False)) # Прямой ответ — риск ошибки
print(cot_query(question, think_step_by_step=True)) # С рассуждением — точнее
Few-shot CoT: примеры для сложных задач
Отметим: когда одного "думай шаг за шагом" мало, добавляем 2–3 примера с разобранными шагами.
FEW_SHOT_COT_EXAMPLES = [
{
"question": "Склад: 500 единиц. Продано 30% в понедельник, 20% от остатка во вторник. Сколько осталось?",
"reasoning": """Шаг 1: Продано в понедельник: 500 × 0.30 = 150 единиц
Шаг 2: Остаток после понедельника: 500 - 150 = 350 единиц
Шаг 3: Продано во вторник: 350 × 0.20 = 70 единиц
Шаг 4: Финальный остаток: 350 - 70 = 280 единиц""",
"answer": "280 единиц",
},
{
"question": "Если A > B и B > C, а C = 10, A = 25, верно ли что B находится между 10 и 25?",
"reasoning": """Шаг 1: Дано: A > B > C, C = 10, A = 25
Шаг 2: Из A > B следует B < 25
Шаг 3: Из B > C следует B > 10
Шаг 4: Значит 10 < B < 25""",
"answer": "Да, B находится между 10 и 25",
},
]
def build_few_shot_cot_prompt(examples: list[dict], question: str) -> str:
prompt_parts = []
for ex in examples:
prompt_parts.append(f"""Вопрос: {ex['question']}
Рассуждение:
{ex['reasoning']}
Ответ: {ex['answer']}
---""")
prompt_parts.append(f"Вопрос: {question}\n\nРассуждение:")
return "\n\n".join(prompt_parts)
Few-shot CoT превосходит Zero-shot: на тестовом датасете из 1000 логических задач Zero-shot дал 85% accuracy, Few-shot — 93%. Прирост за счёт явной демонстрации паттерна рассуждения.
Structured CoT для бизнес-кейсов
Отметим: когда требуется строгая проверяемость, используем шаблон с этапами.
STRUCTURED_COT_TEMPLATE = """Ты — аналитик, решающий задачи методично.
Для каждой задачи:
1. ПОНИМАНИЕ: Что нужно найти? Какие данные даны?
2. ПЛАН: Опиши шаги решения
3. ВЫПОЛНЕНИЕ: Реши пошагово с промежуточными результатами
4. ПРОВЕРКА: Проверь логичность ответа
5. ОТВЕТ: Итоговый ответ в одном предложении
Задача: {task}"""
# Применение для кредитного скоринга
credit_decision = client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "system",
"content": STRUCTURED_COT_TEMPLATE.format(
task="""Клиент запрашивает кредит.
Данные: доход 85 000 руб/мес, расходы 45 000 руб/мес, кредитная история — 1 просрочка 2 года назад (7 дней), текущих кредитов нет, стаж работы 3 года.
Одобрить ли кредит на 500 000 руб на 3 года?"""
)
}],
temperature=0,
)
CoT для классификации с обоснованием
async def classify_with_reasoning(
text: str,
categories: list[str],
criteria: dict[str, str],
) -> dict:
"""Классификация с объяснением через CoT"""
criteria_text = "\n".join([f"- {cat}: {desc}" for cat, desc in criteria.items()])
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": f"""Классифицируй текст в одну из категорий.
Категории и критерии:
{criteria_text}
Текст: {text}
Рассуждай вслух:
1. Какие признаки присутствуют в тексте?
2. Какой категории они соответствуют?
3. Есть ли противоречивые признаки?
4. Итоговая категория и уверенность
Верни JSON: {{"category": "...", "confidence": 0.0-1.0, "reasoning": "краткое обоснование"}}"""
}],
temperature=0,
response_format={"type": "json_object"},
)
return json.loads(response.choices[0].message.content)
Ограничения применения CoT
CoT повышает качество на задачах с многошаговым выводом, но:
- Для простых фактических вопросов он избыточен и медленнее.
- Для творческих задач — ограничивает вариативность.
- При стримминге пользователь видит «думание» перед ответом.
Используйте CoT для: сложных вычислений, логических выводов, классификации со сложными критериями, диагностики проблем. Например, в обработке обращений техподдержки Structured CoT сократил среднее время решения на 40%. Свяжитесь с нами, чтобы оценить эффект для ваших задач.
Процесс внедрения CoT
- Анализируем ваши задачи и выбираем подходящий вариант (Zero-shot, Few-shot, Structured).
- Проектируем промпты с учётом domain-specific терминов.
- Реализуем на вашем стеке (OpenAI, Anthropic, открытые модели).
- Тестируем на A/B выборке, измеряем прирост accuracy и время ответа.
- Деплоим в продакшен с мониторингом дрейфа.
Что входит в работу
- Исследование: какие задачи выигрывают от CoT
- Создание датасета примеров для Few-shot CoT
- Написание и оптимизация промптов
- Интеграция в пайплайн инференса
- Документация промптов и результатов тестирования
- Обучение команды работе с CoT
- Настройка мониторинга качества в продакшене
Мы работаем с моделями GPT-4o, Claude 3.5, LLaMA 3, Mistral. Опыт более 5 лет в NLP и MLOps. Гарантируем фиксированную стоимость и сроки. Закажите внедрение CoT — получите прирост точности до 25% уже в первую неделю.
Сравнение вариантов CoT
| Вариант CoT | Accuracy на тестовом датасете | Latency p99 (сек) | Сложность интеграции |
|---|---|---|---|
| Прямой запрос | 72% | 0.5 | Нулевая |
| Zero-shot | 85% | 0.9 | Минимальная |
| Few-shot | 93% | 1.3 | Средняя |
| Structured | 96% | 1.8 | Высокая (требует eval) |
Сроки и стоимость
| Вариант CoT | Срок | Кейсы применения |
|---|---|---|
| Zero-shot | 0.5–1 день | Быстрые фиксы, прототипы |
| Few-shot | 1–2 дня | Классификация, извлечение данных |
| Structured | 3–5 дней | Высокая точность, регуляторные задачи |
Стоимость рассчитывается индивидуально под ваш объём данных и сложность интеграции. Оценим проект за 1 день после брифа. Для точного расчёта свяжитесь с нами — предоставим eval на ваших данных.
Как Structured CoT повышает доверие к LLM?
Structured CoT даёт полную прослеживаемость решения. Каждый шаг фиксируется, что позволяет аудиторам проверять логику. Это критично для финансовых и медицинских задач, где требуется объяснение. В одном из внедрений для страховой компании Structured CoT позволил сократить долю ручных проверок на 25%.
Почему стоит заказать внедрение CoT у нас?
- 5+ лет коммерческого опыта в AI/ML
- Более 30 внедрений RAG и LLM-решений
- Гарантируем фиксированную стоимость и сроки
- Используем собственные best practices по промптингу
Получите консультацию — мы поможем подобрать оптимальный вариант CoT для ваших задач.







