Tree of Thoughts как заставить ИИ думать как человек

16 Jan, 2025

Репозиторий давно не обновлялся

Последнее обновление было 1 год назад.

5,986
🔱 617
👥 119

Представьте, что вы решаете сложную математическую задачу. Вместо того чтобы идти напрямую к ответу, вы рассматриваете несколько подходов, оцениваете их перспективность, отбрасываете неудачные варианты и углубляетесь в наиболее многообещающие. Именно так работает наш мозг. А теперь представьте, что этим же методом можно научить думать языковые модели!

Что такое Tree of Thoughts?

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

Демонстрация работы ToT

Основная идея проста, но мощна: заставить ИИ не просто генерировать ответы, а вести осознанный поиск решения, подобно тому, как это делает человек.

Кому это нужно?

  • Разработчикам, работающим с LLM и ищущим более эффективные способы решения нетривиальных задач
  • Исследователям в области искусственного интеллекта
  • Всем, кто сталкивался с ограничениями стандартных подходов к промптингу

5 причин обратить внимание на этот проект

  1. Наглядная демонстрация - включает примеры решения реальных задач (например, игры в 24)
  2. Гибкость - поддерживает разные стратегии генерации и оценки мыслей
  3. Простота интеграции - доступен как pip-пакет
  4. Расширяемость - легко добавлять новые типы задач
  5. Научная обоснованность - метод опубликован в 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 реализует несколько ключевых компонентов:

  1. Генератор мыслей - создает возможные следующие шаги в решении
  2. Оценщик состояний - оценивает перспективность каждого варианта
  3. Стратегия поиска (BFS/DFS) - определяет, как исследовать дерево вариантов

Вы можете выбирать между разными методами:

  • --method_generate: sample (независимые мысли) или propose (последовательные)
  • --method_evaluate: value (индивидуальная оценка) или vote (коллективное голосование)

Где это можно применить?

  1. Решение математических задач - как в примере с игрой в 24
  2. Творческое письмо - генерация и оценка различных сюжетных линий
  3. Кроссворды - поиск слов по заданным условиям
  4. Принятие решений - анализ разных вариантов развития событий

Как начать использовать?

Установка проста:

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

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.