Перейти до основного вмісту

Tree of Thoughts: Свідоме розв'язання проблем через пошук у LLM

· 7 хв. читання
Mike Thrift
Mike Thrift
Marketing Manager

Провівши останні два дописи над агентами, які самокоригуються за допомогою рефлексії (Reflexion) та критики з використанням інструментів (CRITIC), я хотів би відступити і поглянути на більш структурний підхід: що, якщо агент із самого початку не прив'язується до єдиного шляху міркувань? Tree of Thoughts (ToT) від Yao et al. (NeurIPS 2023) пропонує саме це — фреймворк пошуку, де LLM досліджує простір проміжних етапів міркування, що розгалужується, а не один лінійний ланцюжок. Я читаю це зараз, тому що це представляє найбільш чітке формулювання свідомого пошуку для міркувань LLM, а свідомий пошук — це те, що потрібно, коли один неправильний проміжний крок у фінансових розрахунках може непомітно пошкодити все, що йде далі.

Стаття

2026-04-27-tree-of-thoughts-deliberate-problem-solving

Shunyu Yao, Dian Yu, Jeffrey Zhao, Izhak Shafran, Thomas L. Griffiths, Yuan Cao та Karthik Narasimhan представляють Tree of Thoughts як узагальнення промптингу ланцюжком думок (CoT). Ключовий хід полягає в тому, щоб розглядати проміжні етапи міркування як «думки» — цілісні текстові одиниці, які можна оцінювати незалежно — та організовувати їх у дерево, а не в ланцюжок. У кожному вузлі модель генерує кілька потенційних думок, оцінює кожну з них (через окремий виклик LLM, який оцінює стани як «напевно / можливо / неможливо»), а потім застосовує стандартний алгоритм пошуку (BFS або DFS) для проходження по дереву. Якщо гілка виглядає тупиковою, модель може її відсікти або повернутися назад — те, чого не можуть зробити ні CoT, ні CoT-SC.

У статті оцінка проводиться на трьох завданнях: «Гра 24» (комбінування чотирьох чисел для отримання 24 за допомогою арифметики), «Креативне письмо» (створення зв’язного уривку з використанням чотирьох випадкових закінчень речень) та «Міні-кросворди» (розв’язання кросворда 5×5). Усі три вимагають міркувань, які можуть отримати користь від дослідження та повернення назад, що є саме тим середовищем, для якого автори розробляли метод.

Ключові ідеї

  • У «Грі 24» ToT з шириною променя b=5 досягає 74% успіху, проти 4% для GPT-4 зі стандартним CoT та 9% для CoT-SC зі 100 зразками. Цей розрив вражає.
  • GPT-3.5 + ToT досягає лише 19% у тому ж завданні; перевага методу сильно залежить від моделі. Якість генерації думок GPT-4 є головним рушієм успіху — генерація GPT-4 + оцінка GPT-3.5 дає 64%, тоді як генерація GPT-3.5 + оцінка GPT-4 дає лише 31%.
  • Для «Креативного письма» ToT отримує 7,56 бала проти 6,93 у CoT за шкалою зв’язності GPT-4, а люди-анотатори віддають перевагу результатам ToT у 41/100 випадків проти 21/100 для CoT.
  • Міні-кросворди: ToT досягає 60% точності на рівні слів (CoT: 40,6%, IO: 15,6%), але розв’язує лише 4 з 20 повних ігор (20%). Розрив між успіхом на рівні слів та рівні гри показує, що навіть із поверненням назад глобальне задоволення обмежень залишається складним завданням.
  • Етап оцінки сам по собі є викликом LLM. У кросвордах автори зазначають, що оцінювачі іноді вважають правильні часткові стани «неможливими» через незнайому лексику — це режим каскадної помилки, де помилки оцінювача отруюють пошук.
  • Вартість обчислень: ToT коштує приблизно $0,74 за випадок у «Грі 24» проти $0,47 для CoT з вибором найкращого зі 100. Самі автори вказують, що для завдань, з якими GPT-4 вже справляється добре, ці витрати не виправдані.

Що підтверджується, а що ні

Основний результат — те, що пошук по дереву проміжних думок значно перевершує послідовний CoT у завданнях, що потребують повернення назад — є реальним і відтворюваним. Розрив 74% проти 4% у «Грі 24» не є випадковим шумом. Пояснення механічно обґрунтоване: одне невдале проміжне рівняння в CoT відправляє решту ланцюжка в прірву, тоді як ToT може відсікти цю гілку і спробувати іншу декомпозицію.

Менш переконливим мені здається твердження про універсальність. Усі три завдання для оцінки є відносно синтетичними: математична головоломка, підказка для творчого письма зі структурними обмеженнями та гра в слова. Жодне з них не нагадує відкриті, неоднозначні проблеми, що виникають у реальних фінансових робочих процесах. Автори також проводять оцінку лише на GPT-4 (і GPT-3.5 для порівняння), тому ми не знаємо, як ToT працює з меншими або спеціалізованими моделями — а показник 19% для GPT-3.5 натякає, що відповідь «не дуже добре».

Невдача з кросвордами на рівні гри (20% попри 60% точності слів) вказує на глибшу проблему: ToT — це локальний пошук під керівництвом локального оцінювача. Він не підтримує глобальну модель обмежень, яка саме і потрібна для проблем зі щільною взаємодією підрішень. Наступна стаття «Graph of Thoughts» (Besta et al., AAAI 2024) явно висловлює цю критику і демонструє покращення якості на 62% порівняно з ToT у завданнях сортування, одночасно знижуючи вартість на понад 31% — дозволяючи думкам зливатися та утворювати цикли, а не обмежуватися деревом.

Нарешті, структура витрат має значення на практиці. При b=5 з повторними викликами оцінювача, ToT приблизно у 15–20 разів дорожчий за API-викликами, ніж один прохід CoT. Для додатків, чутливих до затримки або вартості, це не є тривіально прийнятним.

Чому це важливо для фінансового ШІ

Чесна відповідь така: ToT найбільше важить для вузького сегмента проблем Beancount, але цей сегмент реальний.

Канонічне фінансове завдання, де мені потрібен бектрекінг — це багатоетапна класифікація рахунків з неоднозначними транзакціями. Коли LLM зіставляє імпортовану банківську виписку з планом рахунків, одна неправильна заміна на початку ланцюжка (скажімо, розгляд виплати кредиту як доходу) може призвести до збою перевірки балансу через кілька кроків. В агенті CoT до того моменту, як баланс не зійдеться, у моделі немає механізму повернутися до початкової класифікації. Агент ToT міг би повернутися до того вузла і спробувати Liabilities:Loans замість початкового варіанту.

Подібним чином, оптимізація податків за повний фінансовий рік — це справжня задача пошуку по дереву: деталізація витрат проти стандартного вирахування, вибір часу для фіксації приросту капіталу, групування благодійних внесків. Ці рішення взаємодіють нелінійно, і вам потрібно оцінити кілька гілок перед прийняттям рішення. Структура BFS/DFS у ToT природно накладається на таку задачу.

У чому ToT не допомагає, так це в домінуючих випадках у Beancount: рутинне введення транзакцій та звірка. Для транзакції, яка має чітку відповідність у гросбуху, CoT + PAL (перенесення арифметики на інтерпретатор коду) швидше, дешевше і вже достатньо точно. Використання ToT для класифікації expenses:groceries — це використання кувалди проти канцелярської кнопки.

Більш насущною проблемою для безпеки запису є надійність оцінювача. Якщо оцінювач стану також є LLM, він може помилятися — а помилкові оцінки не просто сповільнюють пошук, вони відсікають правильні шляхи. Будь-якому серійному фінансовому агенту, що використовує ToT, знадобиться зовнішній оракул (перевірка балансу, валідатор схеми, двигун правил) як оцінювач, а не ще один виклик LLM.

Що почитати далі

  • Graph of Thoughts: Solving Elaborate Problems with Large Language Models (Besta et al., AAAI 2024) — arXiv:2308.09687. Розширює ToT від дерев до довільних графів, дозволяючи об'єднання думок і цикли зворотного зв'язку. Твердження про зниження вартості (>31%) є безпосередньо релевантним, якщо вам потрібні міркування на основі пошуку без накладних витрат ToT.
  • Large Language Models Cannot Self-Correct Reasoning Yet (Huang et al., ICLR 2024) — arXiv:2310.01798. Критична противага: без зовнішнього зворотного зв'язку внутрішня самокорекція погіршує продуктивність міркування. Це ставить під сумнів припущення, що оцінювач на основі LLM у ToT достатньо надійний для керування пошуком.
  • RethinkMCTS: Refining Erroneous Thoughts in Monte Carlo Tree Search for Code Generation (arXiv:2409.09584) — застосовує MCTS замість BFS/DFS до пошуку думок із зворотним зв'язком виконання як зовнішнім оракулом. Налаштування генерації коду структурно схоже на запис у гросбух: у вас є перевірна істина (чи працює код? чи проходить перевірка балансу?), і це саме те, де ітерації Монте-Карло приносять користь.