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