Tree of Thoughts
Ветвление рассуждений
Проблема: Некоторые задачи имеют много возможных путей, и первый выбранный может оказаться неверным. Как ИИ может исследовать несколько подходов и возвращаться назад при необходимости?
Решение: Думай как шахматист
Tree of Thoughts (ToT) позволяет ИИ исследовать несколько веток рассуждений, оценивать каждую и отсекать тупики. Вместо того чтобы следовать одному пути, он рассматривает несколько вариантов на каждом шаге, как шахматист, думающий на несколько ходов вперёд. Метод расширяет Chain-of-Thought в древовидную структуру, и если Self-Consistency выбирает лучший финальный ответ из нескольких независимых попыток, то ToT оценивает промежуточный прогресс на каждом шаге и может бросить ветку, не тратя на неё рассуждения дальше.
Как это работает
ToT запускает небольшой поиск по «мыслям» (thoughts) — связным промежуточным шагам к решению. В каждом узле модель делает три вещи. Сначала она генерирует несколько кандидатов на следующий шаг (например, три разных способа продолжить). Затем шаг оценки (value step) ранжирует, насколько перспективен каждый кандидат — модель либо ставит оценку («точно / возможно / невозможно»), либо сравнивает кандидатов попарно. И, наконец, стратегия поиска — обычно поиск в ширину (оставляем лучшие k веток на каждом уровне) или в глубину (углубляемся в сильнейшую ветку, откатываемся при неудаче) — решает, какие узлы разворачивать дальше. Поскольку каждая ветка — это обычный промпт, ToT не требует дообучения (fine-tuning): это слой оркестрации, который вызывает модель много раз и сохраняет ценные пути.
Когда применять — и компромиссы
Бери ToT там, где одиночная «жадная» цепочка часто ошибается: задачи с большим пространством поиска, ранним выбором, который ведёт к провалу позже, или с понятным способом проверить промежуточный прогресс (головоломки, удовлетворение ограничений, многошаговое планирование, код, который должен пройти тесты). Расплата за это — цена: перебор множества веток и оценка каждой умножают расход токенов и задержку, иногда в 10 раз и больше по сравнению с обычным Chain-of-Thought. К тому же ToT помогает только когда модель способна разумно оценивать частичное решение; если она не отличает хорошую ветку от плохой, поиск просто впустую жжёт вызовы. Для простых вопросов одна цепочка рассуждений дешевле и не хуже. Разбор на примере — игра 24: даны числа 4, 9, 10, 13, нужно получить 24, использовав каждое один раз. ToT предлагает первые ходы вроде 10 − 4 = 6, 13 − 9 = 4 и 4 × 9 = 36, оценивает каждый по тому, могут ли оставшиеся числа ещё дать 24, отсекает тупики и разворачивает выжившие ветки — находя (13 − 9) × (10 − 4) = 24. В оригинальной статье это подняло успешность с примерно 4% при обычном промптинге до 74%.
Представьте это как шахматиста, планирующего ходы:
- 1. Генерирую варианты: "Могу пойти конём, слоном или ферзём..."
- 2. Оцениваю каждый: "Конь выглядит перспективно, ферзь рискованно..."
- 3. Исследую глубже: "Если конь, то противник может... тогда я..."
- 4. Возвращаюсь при необходимости: "Этот путь ведёт к мату мне, попробую другой"
Где это используется?
- Головоломки: Судоку, игра 24, логические задачи
- Творческое письмо: Исследование разных направлений сюжета
- Планирование: Поиск оптимальных путей через сложные решения
- Архитектура кода: Оценка разных подходов к дизайну
Интересный факт: Tree of Thoughts повысил успешность в игре 24 (составить 24 из 4 чисел) с 4% при обычном промптинге до 74%! Способность возвращаться и пробовать разные пути невероятно мощная.
Попробуйте сами!
Используй интерактивный пример ниже, чтобы увидеть, как Tree of Thoughts исследует несколько веток и находит лучший путь решения.
Частые вопросы
Чем Tree of Thoughts отличается от Chain-of-Thought?
Chain-of-Thought строит одну линейную цепочку рассуждений и идёт по ней до конца. Tree of Thoughts превращает рассуждение в дерево: на каждом шаге модель генерирует несколько вариантов следующей мысли, оценивает их и разворачивает только перспективные ветки, отсекая тупики. Это позволяет возвращаться назад и пробовать другой путь, тогда как обычный CoT при ранней ошибке доходит до неверного ответа без шанса исправиться.
Когда стоит использовать Tree of Thoughts?
ToT оправдан на задачах с большим пространством поиска, где ранний неверный выбор ведёт к провалу и где можно проверить промежуточный прогресс: головоломки, задачи с ограничениями, многошаговое планирование, код под тесты. Для простых вопросов он избыточен — одиночная цепочка рассуждений (Chain-of-Thought) будет дешевле и не хуже.
Почему Tree of Thoughts дороже обычного промптинга?
ToT вызывает модель много раз: на каждом узле он генерирует несколько кандидатов и отдельно оценивает каждый. Перебор веток и шаги оценки умножают число запросов, поэтому расход токенов и задержка могут вырасти в 10 раз и больше по сравнению с обычным Chain-of-Thought. Платить за это имеет смысл только когда выигрыш в точности реально важен.
Нужно ли дообучать модель для Tree of Thoughts?
Нет. ToT — это слой оркестрации поверх обычных промптов: и генерация мыслей, и их оценка делаются обычными вызовами модели. Дообучение (fine-tuning) не требуется. Метод работает на готовых LLM при условии, что модель способна разумно оценивать, какая из веток перспективнее.
Попробуй сам
Интерактивное демо этой техники
Три друга (Аня, Боря, Вика) занимают три места (1, 2, 3). Аня не первая. Боря не рядом с Викой. Кто на каком месте?
Аня — 2, Боря — 1, Вика — 3
Шаг 1: Все возможные расстановки (6 вариантов) 1-2-3: АБВ, АВБ, БАВ, БВА, ВАБ, ВБА
Шаг 2: Аня не первая (убираем А на 1 месте) ❌ АБВ, ❌ АВБ ✓ БАВ, ✓ БВА, ✓ ВАБ, ✓ ВБА Осталось: 4 варианта
Шаг 3: Боря не рядом с Викой БАВ: Б(1)-В(3) не рядом ✓ БВА: Б(1)-В(2) рядом ❌ ВАБ: В(1)-Б(3) не рядом ✓ ВБА: В(1)-Б(2) рядом ❌
Шаг 4: Оставшиеся варианты
- Боря-Аня-Вика (БАВ)
- Вика-Аня-Боря (ВАБ)
Ответ: Два решения! Оба валидны.
Tree of Thoughts систематически перебирает все варианты. Без ToT модель выдала один ответ и пропустила второе решение.
Создайте бесплатный аккаунт для решения челленджей
4 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения