Нейролента - подборка новостей о нейронных сетях, ChatGPT

Если чуть углубиться в детали, то checker module...

Если чуть углубиться в детали, то checker module может работать как на основе правил, так и быть нейросетевым. Какую-то корректность (типа 3SAT, решения уравнений и т.п.) проще проверять правилами, какие-то другие задачи -- нейросетями.

Memory module хранит всю историю диалога между LLM и prompter agent, и последний может использовать это хранилище для генерации подсказок LLM.

ToT Controller в целом наблюдает за ToT поиском, он тоже может быть задан простыми правилами типа 1) если checker считает текущее решение невалидным, сделать откат к родительскому узлу дерева, 2) если текущее промежуточное решение валидно, но поиск уже исследовал X (гиперпараметр) детей и пока не нашёл решения, то откатиться к родительскому узлу. Но можно также задать этот контроллер какой-то policy network

Prompter agent даёт подсказки (hints) LLM для генерации следующего шага. Он может быть реализован как достаточно общим промптом, так и policy network.

В работе использовали версию REINFORCE алгоритма для обучения обеих policy networks. В будущем собирались использовать более продвинутый MARL (multi-agent reinforcement learning) алгоритм. В целом чувствуется большой потенциал для обучения полиси в стиле AlphaGo через self-play.

Обученную систему можно использовать для ToT решения проблем. В работе проверяли на маленьких судоку (не самая LLM-friendly задача вроде, да и вообще NP-сложная) размеров от 3x3 до 5x5. Получилось лучше, чем zero-shot, one-shot и few-shot c CoT.

Имплементация лежит тут: https://github.com/jieyilong/tree-of-thought-puzzle-solver

II) Вторая работа от коллектива авторов из Принстона и Google DeepMind.

Здесь также решение задачи представлено деревом, в узлах которого отдельные “мысли” (thoughts, дальше буду использовать без кавычек) являющиеся промежуточными шагами в решении проблемы. И для поиска по этому дереву также используется LLM в качестве эвристики.

Каждая конкретная реализация ToT должна отвечать на 4 вопроса:

1. Как декомпозировать процесс в отдельные шаги-мысли. Тут надо соблюсти баланс: с одной стороны мысль должна быть достаточно маленькой чтобы LLM сгенерировала многообещающие и разнообразные сэмплы, с другой -- достаточно крупной, чтобы LLM могла оценить её полезность в решении проблемы (уровень токена, например, слишком низок).

2. Как сгенерировать потенциальные мысли из каждого состояния. Надо сгенерировать k кандидатов для следующего шага, авторы рассматривают две стратегии: 1) засэмплить i.i.d. мысли из CoT промпта (лучше работает, когда пространство мыслей достаточно большое, например, мысль -- это параграф); либо 2) предлагать мысли последовательно с помощью “propose prompt”.

3. Как эвристически оценивать состояния. Ранее в качестве поисковых эвристик были либо запрограммированные алгоритмы, либо что-то обученное. Здесь же для reasoning’а используется LLM. появляется что-то на новом уровне, некий уже достаточно универсальный интеллект, работающий через язык. Здесь тоже рассматривают две стратегии: 1) оценивать каждое состояние независимо с помощью специального промпта, 2) запихивать состояния в один промпт и голосовать, это проще делать, когда сложно оценить состояние. Можно делать обе такие оценки несколько раз и агрегировать результаты.

4. Какой алгоритм поиска использовать. Здесь всё просто, пробуют поиск в глубину и в ширину (BFS и DFS).

Проверяли на трёх задачах: Game of 24, Creative Writing, 5x5 Crosswords. Везде делали на базе GPT-4 (непривычно видеть работу DeepMind на основе GPT-4 🙂). Работает на порядок лучше стандартных IO prompt, CoT prompt, CoT-SC.

Эта имплементация тут: https://github.com/princeton-nlp/tree-of-thought-llm

---

При некоторой разнице описаний, подходы в целом про одно и то же. Удивительно всё-таки, как они синхронно это всё выпускают.

Интересно, в AutoGPT это уже добавили? Или сразу Graph of Thoughts (https://arxiv.org/abs/2308.09687, про него как-нибудь в следующий раз) будут имплементировать?

В целом у меня чувство, что мы довольно близки к созданию какой-нибудь пубяки аналогичной по эффекту червю Морриса в своё время.