Tree of Thoughts (ToT)
"Tree of Thoughts" (ToT) переводится дословно на русский как "Древо мыслей" (ToT).
Last updated
"Tree of Thoughts" (ToT) переводится дословно на русский как "Древо мыслей" (ToT).
Last updated
Для эффективного решения сложных задач, требующих проведения исследований или стратегического планирования, традиционные или упрощенные техники формулирования промптов оказываются недостаточными. В недавних исследованиях, проведенных Yao et el. (2023) и Long (2023), была представлена концепция "Древа мыслей" (ToT). Этот фреймворк обобщает метод цепочки мыслей и поощряет исследование мыслей, которые являются промежуточными шагами для разработки общего решения сложных проблем с использованием языковых моделей.
ToT (Tree of Thoughts) представляет собой структуру дерева мыслей, в которой мысли представляются последовательно связанными высказываниями, служащими промежуточными этапами в решении задачи. Этот подход позволяет языковой модели (LLM) оценивать свой собственный прогресс в развитии промежуточных мыслей при решении задачи через осмысленное логическое рассуждение. Затем способность языковой модели (LLM) генерировать и оценивать мысли объединяется с алгоритмами поиска (например, поиск в ширину и поиск в глубину), обеспечивая систематическое исследование мыслей с последовательностью операций вперед и назад. ToT (Tree of Thoughts) - это как дерево, где мысли расположены последовательно, словно шаги к решению задачи. Мысли - это как предложения, связанные друг с другом, которые помогают понять, как решать задачу. Этот способ позволяет модели легче понимать, как она продвигается в решении задачи. Алгоритмы поиска добавляются, чтобы модель могла исследовать разные мысли вперед и назад и лучше понимать, какие шаги нужно предпринять.
Фреймворк ToT проиллюстрирован ниже:
Источник изображения: Yao et el. (2023)
Когда используется ToT, то для разных задач нужно решить, сколько вариантов и какие шаги или мысли понадобятся. Например, как показано в статье Yao et el. (2023), описана задача с математическими числами, подобная игре в 24. Там мысли разделены на 3 шага, каждый шаг содержит промежуточные уравнения. И на каждом шаге выбирают пять лучших вариантов.
Для применения алгоритма поиска в ширину (BFS) в ToT для задачи "Игра 24" предлагается, чтобы языковая модель оценила каждую мысль-кандидата как "уверенно/возможно/невозможно" относительно достижения числа 24. Как указывают авторы, главная цель заключается в продвижении правильных частичных решений, которые можно проверить в нескольких попытках, а также исключении невозможных частичных решений на основе здравого смысла, как "слишком больших" или "слишком маленьких". Все остальные варианты сохраняются как "возможно". Эти оценки применяются три раза для каждой мысли.
Алгоритм поиска в ширину (BFS - Breadth-First Search) - это метод обхода или поиска в графе, начиная с одной точки и последовательно исследуя все ближайшие точки перед движением к более дальним. Таким образом, он распространяется от начальной точки "широко", на все ближайшие соседние точки, прежде чем идти дальше.
Если объяснять простым языком, то давайте представим, что у нас есть игра, в которой нужно из четырёх чисел получить 24. Чтобы найти способы, как это сделать, компьютер оценивает каждый вариант три раза: сначала смотрит, легко ли получить 24 из этих чисел, потом думает, возможно ли это вообще, и наконец, если сразу видно, что не получится. Потом компьютер ещё раз смотрит на вариант и думает, можно ли прийти к 24, используя этот вариант. Если есть хоть небольшая возможность, то он говорит, что это возможно. Так мы стараемся выбирать хорошие идеи и не тратить время на плохие.
Процесс проиллюстрирован ниже:
Источник изображения: Yao et el. (2023)
Судя по результатам, представленным на рисунке ниже, ToT значительно превосходит другие методы промтинга:
Источник изображения:Yao et el. (2023)
Когда мы смотрим на основные идеи работ Yao et el. (2023) и Long (2023), мы видим, что они похожи. Обе исследуют, как улучшить способности языковых моделей для решения сложных задач через "дерево мыслей", используя диалог с многоэтапным подходом.
Однако есть различия в том, как они это делают. В работе Yao et el. (2023) используют общие методы поиска, как будто идут по дороге и смотрят во все стороны, не учитывая, какая задача перед ними. А в работе Long (2023) используется более умный способ, где "контроллер ToT" - это как руль в автомобиле, который управляет движением. Этот контроллер учится на практике, как игрок, который учится, и может становиться лучше на новых задачах или во время игры.
Таким образом, работа Long (2023) предлагает более гибкий способ улучшения и развития системы, позволяя ей научиться лучше решать разные задачи с помощью опыта и обучения.
В работе Hulbert (2023) был предложен метод Tree-of-Thought Prompting, который использует основные идеи из фреймворков ToT для создания простой техники промптинга. В этом методе языковая модель (LLM) оценивает промежуточные мысли в одном промпте.
Вот пример:
Представьте себе, что три разных эксперта отвечают на этот вопрос. Все эксперты записывают свой первый шаг мышления, затем делятся им с группой. Потом все эксперты переходят ко второму шагу и так далее. Если какой-либо эксперт осознает, что он ошибся на каком-либо этапе, то он покидает игру. Вопрос звучит так...