$ sudo teach IT

Представьте, что вы решаете задачу по математике. Вы не выплёвываете сразу ответ, а идёте шаг за шагом: определяете, что известно, что нужно найти, делаете промежуточные вычисления. Такой подход называется Chain of Thought — "цепочка размышлений".

А если вы перебираете варианты действий, отклоняетесь, возвращаетесь и выбираете лучший путь — это уже Tree of Thought.

А в задачах, где нужно не только размышлять, но и действовать (например, спрашивать API или запускать функцию), — используется ReAct: Reason + Act.

Эти подходы делают LLM более логичными, предсказуемыми и эффективными.

📘 Что вы узнаете

  • В чём суть подходов Chain of Thought, Tree of Thought, ReAct
  • Как эти методы улучшают результат
  • Где они применяются: кейсы, игры, технический анализ
  • Как писать промпты, чтобы включить reasoning

🧩 Ключевые термины

  • Chain of Thought - Модель пошагово размышляет вслух перед ответом
  • Tree of Thought - Модель перебирает альтернативные ходы и варианты
  • ReAct - Модель чередует размышления и действия
  • Reasoning - Способность логически выводить результат
  • Intermediate steps - Промежуточные размышления, выводы или вычисления
  • Tool Use - Возможность модели запускать внешние команды (например, API)

🧠 Почему это важно

Обычная генерация — это быстрый ответ без объяснений. Иногда этого достаточно, но в более сложных задачах такой подход приводит к ошибкам и недопониманию. Давайте разберёмся, почему важно использовать пошаговое рассуждение и как это помогает.

❌ Проблема «чёрного ящика»

Когда вы получаете просто ответ, без промежуточных шагов, вы не знаете:

  • Насколько он достоверен
  • Как к нему пришли
  • Что нужно уточнить, если он неверен

📎 Аналогия: Представьте, что вы дали задание стажёру: “Подготовь ответ клиенту”. Он молча приносит письмо. Ответ вроде бы есть — но как он пришёл к выводу? Правильные ли доводы? Это остаётся загадкой.

🪜 Рассуждение «вслух» = контроль

Подходы вроде Chain of Thought и Tree of Thought позволяют модели “думать по шагам” — то есть проговаривать ход решения, уточнять промежуточные результаты и делать выводы на основе логики, а не догадок.

📎 Аналогия: Это как если бы стажёр начал объяснять: «Я сравнил наши цены с конкурентами, посмотрел расходы на логистику, затем добавил инфляцию — поэтому получилось вот так». Теперь вы можете вмешаться на любом шаге: уточнить, поправить, научить.

🔄 Обратная связь и отладка

Когда LLM проговаривает свои шаги, вы легко видите, где она ошиблась. Это особенно важно:

  • при дебаге,
  • в технических и юридических задачах,
  • при построении пайплайнов в продуктах.

📎 Аналогия: Если ответ получился неверным, но рассуждение подробное — вы можете найти, где именно «сошёл с рельсов» процесс, а не гадать, что пошло не так.

🧩 Больше, чем просто ответ

Chain of Thought — это не про «медленнее», а про осознаннее. Такой подход приближает LLM к объясняемому ИИ: модель не просто выдаёт ответ, а ведёт диалог — сначала думает, потом предлагает решение.

📎 Это делает её не просто ассистентом, а полноценным участником размышления — особенно если задача комплексная, неоднозначная или чувствительная к контексту.

🔗 Chain of Thought: размышляй, прежде чем отвечать

Большие языковые модели умеют не только выдавать быстрые ответы, но и рассуждать по шагам, как это делает человек. Подход Chain of Thought (цепочка мыслей) позволяет модели проговаривать процесс решения — и тем самым делает ответы надёжнее, объяснимее и легче для проверки.

🧠 Что это значит

Обычная генерация отвечает сразу: «450». Chain of Thought просит: "Подумай шаг за шагом, прежде чем дать ответ".

Модель буквально проговаривает рассуждение — вычисления, логические переходы, промежуточные шаги. Это не только улучшает точность, но и делает весь процесс «прозрачным» для человека.

📌 Пример

Задача: Сколько минут в 7 часах и 30 минутах?

  • Ответ без Chain of Thought: → 450 (но откуда это число?)

  • Ответ с Chain of Thought:

    7 часов = 7 × 60 = 420 минут
    30 минут = 30
    Итого: 420 + 30 = 450 минут
    
    

Теперь понятно, откуда взялись цифры и как модель пришла к итогу.

📎 Аналогия

Это как решать задачу по математике в школе. Если просто написать ответ — учитель поставит вопрос: а как ты его получил? А вот если прописать каждый шаг — даже если где-то ошибся, понятно где именно, и проще обсудить.

🧪 Когда использовать Chain of Thought

Chain of Thought особенно полезен:

  • 📏 В задачах с расчётами: финансовые модели, проценты, единицы измерения
  • 🧩 В логических и аналитических кейсах: проверка условий, принятие решений
  • 📋 В инструкциях и пошаговых действиях: планирование, алгоритмы, how-to

💡 Почему работает

Модель может ошибиться не потому, что «не знает», а потому что поспешила. Chain of Thought добавляет этап размышления, и это снижает количество случайных, нелогичных или неинтерпретируемых ответов.

📎 По сути, вы даёте ей установку: «Сначала подумай — потом скажи».

🌳 Tree of Thought: перебор вариантов и выбор лучшего

Когда задача не имеет однозначного ответа — лучше не угадывать, а перебрать возможные стратегии и выбрать наиболее обоснованную. Для этого подходит подход Tree of Thought (дерево мыслей): вместо одной линейной цепочки рассуждений, модель генерирует несколько веток решений, сравнивает их и делает осознанный выбор.

🧠 Что это значит

Вместо того чтобы сразу сказать, что делать, модель предлагает несколько вариантов развития событий. Каждый путь — это одна «ветка» дерева. Далее она оценивает плюсы и минусы каждого, и выбирает лучший.

📌 Пример

Задача: Какую стратегию выбрать в игре?

Ответ модели с Tree of Thought:

  1. 🗡️ Атаковать сразу → быстрое преимущество, но высокий риск поражения
  2. ⏳ Подождать и собрать ресурсы → безопасно, но теряется инициатива и контроль карты
  3. 🧠 Обманный манёвр (fake attack) → требует слаженности, но создаёт эффект неожиданности

➡️ Вывод: Третья стратегия даёт лучший баланс риска и выгоды.

📎 Аналогия

Tree of Thought работает так же, как мозговой штурм:

  1. Сначала вы набрасываете разные варианты.
  2. Потом обсуждаете их, сравниваете по критериям.
  3. И наконец — выбираете тот, что подходит лучше всего.

Это также похоже на ветвление в шахматах: думаете сразу на 2–3 хода вперёд, просчитывая возможные ответы соперника.

🧪 Когда использовать Tree of Thought

Tree of Thought особенно полезен в задачах, где:

  • 🎯 Есть несколько решений, но нужно выбрать наилучшее
  • 💡 Нужен креатив, но с фильтром реалистичности
  • 📊 Важна аргументация, а не просто генерация

Примеры задач:

  • 🛠 Продуктовые решения — выбор фич, приоритизация
  • 🎮 Игровая стратегия — поведение бота или игрока
  • 💬 Генерация идей — креатив для маркетинга, сценарии
  • 🧭 Стратегии запуска — когда много переменных и рисков

💡 Как улучшить промпт

Добавьте в задание уточнение вроде:

«Предложи 3 разных пути и обоснуй, какой из них подходит лучше всего»

Можно также просить дать метрику или критерий, по которому идёт выбор — тогда reasoning будет ещё более структурированным.

🤖 ReAct: Reason + Act

Когда просто ответа недостаточно — нужен ассистент, который сначала думает, потом действует. Именно так работает подход ReAct: модель анализирует задачу, выбирает действие, выполняет его и снова размышляет. Это мощный способ сделать работу LLM более точной и осмысленной, особенно в связке с внешними источниками данных и инструментами.

🧠 Что такое ReAct

Вместо одной волны генерации, ReAct строит цепочку мышления + действий. Модель:

  1. формулирует, что нужно узнать или сделать (Reason),
  2. выполняет действие (Act) — делает API-запрос, обращается к базе данных, вызывает функцию,
  3. анализирует результат,
  4. продолжает размышлять на основе полученного.

📎 Аналогия: Это как ассистент, который не "фантазирует" ответ, а идёт, проверяет и возвращается с результатом. Он может сказать: «Мне нужно уточнить», открыть нужный сайт, собрать данные, подумать и только потом дать вывод.

💡 Пример на пальцах

Представим, что вы спросили модель:

Какая сейчас погода в Лондоне?

Вариант без ReAct: модель «придумывает» температуру.

С ReAct:

  1. Reason: Мне нужно получить данные о погоде в Лондоне.
  2. Act: weather_api("London") → { "temp": 18 }
  3. Reason: Температура 18°C — прохладно.
  4. Answer: В Лондоне сейчас прохладно, 18°C.

Такой ответ логичен, объясним и основан на внешней информации.

🔧 Где это особенно полезно

ReAct применяется там, где нужно интерактивное поведение и точная проверка фактов:

  • 🤖 В умных ассистентах: от поддержки клиентов до внутренних ботов.
  • 🔎 В поиске и анализе данных: вытаскивание, фильтрация, обобщение информации.
  • 📚 В обучении и тестировании: демонстрация цепочки размышлений + динамическое выполнение кода.
  • 🧠 В задачах, требующих внешнего знания: справочники, базы данных, документация.

📈 Почему это меняет правила игры

Обычные промпты — это как просьба стажёру: "Ответь на вопрос." ReAct — как опытный сотрудник, который говорит: "Сначала я проверю, потом расскажу."

📎 Аналогия: представьте врача, который не сразу ставит диагноз, а сначала анализирует симптомы, отправляет на анализы, изучает результаты — и только потом объясняет всё пациенту. Это делает процесс надёжнее и понятнее.

🛠 Интеграция и реализация

Для реализации ReAct можно использовать:

  • встроенные функции в ChatGPT API (function calling),
  • фреймворки вроде LangChain,
  • инструменты визуального проектирования промптов с шагами (Prompt Engineering UI),
  • подключение к внешним данным (базы, API, плагины).

🔧 Как промптить правильно

Подход Что добавить в промпт
Chain of Thought “Подумай шаг за шагом…”
Tree of Thought “Предложи несколько вариантов… Объясни плюсы и минусы…”
ReAct “Сначала объясни, потом выполни команду…”

📎 Добавляйте “донесение задачи” (instruction clarity), описывайте, что важно в выводе: точность, логика, полнота.

🧠 Частые ошибки

  1. Нет запроса на размышление Модель даёт итог сразу, без пошагового рассуждения. Добавьте “Думай шаг за шагом”.
  2. Слишком общий промпт Модель не понимает, что от неё хотят: нет структуры, формата, цели.
  3. Смешение стратегий В одном промпте и reasoning, и действия, и вывод — модель путается.
  4. Один большой промпт вместо этапов Лучше разбить на шаги: сначала анализ, потом действие, потом вывод.
  5. Нет примеров Без few-shot примеров модель не улавливает формат и глубину размышлений.

❓ Частые вопросы

  • Можно ли включить CoT в любом промпте?
    Да, просто добавьте “подумай шаг за шагом” или начните промпт с анализа.
  • Может ли модель “перестараться”?
    Иногда — да. Если задача простая, модель может размышлять слишком долго. Ограничьте количество шагов.
  • ReAct требует подключения к внешним функциям?
    Для полноценного ReAct — да, но можно имитировать вызовы (например, “вообрази, что ты запросил…”).

✅ Итоги

В итоге, подходы Chain of Thought, Tree of Thought и ReAct делают взаимодействие с LLM более прозрачным, гибким и продуктивным. Они позволяют не просто получать результат, но понимать логику его появления, оценивать альтернативы и подключать внешние источники информации. Это особенно ценно при решении комплексных задач, где важны объяснимость, точность и возможность отладки. Используя эти методы, вы превращаете модель из "чёрного ящика" в надёжного партнёра по мышлению.

👉 В следующем разделе — как использовать few-shot примеры и подключать внешние инструменты к reasoning-подходам.

На следующий урок