Tree of Thoughts как заставить ИИ думать как человек
Репозиторий давно не обновлялся
Последнее обновление было 1 год назад.
Представьте, что вы решаете сложную математическую задачу. Вместо того чтобы идти напрямую к ответу, вы рассматриваете несколько подходов, оцениваете их перспективность, отбрасываете неудачные варианты и углубляетесь в наиболее многообещающие. Именно так работает наш мозг. А теперь представьте, что этим же методом можно научить думать языковые модели!
Что такое Tree of Thoughts?
Tree of Thoughts (ToT) - это фреймворк от исследователей из Принстона, который кардинально меняет подход к решению задач с помощью больших языковых моделей (LLM). Вместо привычного линейного "мышления" (prompt → response), модель строит целое дерево возможных путей решения, оценивает их и выбирает оптимальный.

Основная идея проста, но мощна: заставить ИИ не просто генерировать ответы, а вести осознанный поиск решения, подобно тому, как это делает человек.
Кому это нужно?
- Разработчикам, работающим с LLM и ищущим более эффективные способы решения нетривиальных задач
- Исследователям в области искусственного интеллекта
- Всем, кто сталкивался с ограничениями стандартных подходов к промптингу
5 причин обратить внимание на этот проект
- Наглядная демонстрация - включает примеры решения реальных задач (например, игры в 24)
- Гибкость - поддерживает разные стратегии генерации и оценки мыслей
- Простота интеграции - доступен как pip-пакет
- Расширяемость - легко добавлять новые типы задач
- Научная обоснованность - метод опубликован в NeurIPS 2023
Как это работает на практике?
Возьмем классическую задачу "игра в 24", где нужно используя четыре числа и арифметические операции получить 24. Вот как ToT справляется с набором [4, 5, 6, 10]:
import argparse
from tot.methods.bfs import solve
from tot.tasks.game24 import Game24Task
args = argparse.Namespace(
backend='gpt-4',
temperature=0.7,
task='game24',
naive_run=False,
prompt_sample=None,
method_generate='propose',
method_evaluate='value',
method_select='greedy',
n_generate_sample=1,
n_evaluate_sample=3,
n_select_sample=5
)
task = Game24Task()
ys, infos = solve(args, task, 900)
print(ys[0])
Результат может выглядеть так:
10 - 4 = 6 (left: 5 6 6)
5 * 6 = 30 (left: 6 30)
30 - 6 = 24 (left: 24)
Answer: (5 * (10 - 4)) - 6 = 24
Под капотом: архитектура решения
ToT реализует несколько ключевых компонентов:
- Генератор мыслей - создает возможные следующие шаги в решении
- Оценщик состояний - оценивает перспективность каждого варианта
- Стратегия поиска (BFS/DFS) - определяет, как исследовать дерево вариантов
Вы можете выбирать между разными методами:
--method_generate:sample(независимые мысли) илиpropose(последовательные)--method_evaluate:value(индивидуальная оценка) илиvote(коллективное голосование)
Где это можно применить?
- Решение математических задач - как в примере с игрой в 24
- Творческое письмо - генерация и оценка различных сюжетных линий
- Кроссворды - поиск слов по заданным условиям
- Принятие решений - анализ разных вариантов развития событий
Как начать использовать?
Установка проста:
pip install tree-of-thoughts-llm
Или из исходников:
git clone https://github.com/princeton-nlp/tree-of-thought-llm
cd tree-of-thought-llm
pip install -r requirements.txt
pip install -e .
Не забудьте настроить ваш OpenAI API ключ в переменной окружения OPENAI_API_KEY.
Вывод: стоит ли пробовать?
Если вы:
- Работаете с LLM и хотите выйти за рамки стандартного промптинга
- Решаете сложные многошаговые задачи
- Интересуетесь передовыми методами в области искусственного интеллекта
...то ToT определенно заслуживает вашего внимания. Это один из тех проектов, которые не просто предлагают новую библиотеку, а меняют сам подход к взаимодействию с языковыми моделями.
Для углубленного изучения рекомендую оригинальную статью: Tree of Thoughts: Deliberate Problem Solving with Large Language Models
