ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs
https://arxiv.org/abs/2307.16789
Казалось бы, зачем такая статья в мире, где есть LangChain / LLaMAIndex / ToolFormer? Ответов тут несколько:
1. Toolformer не особенно может генеразироваться, так как полагается только на те апи, которые были в обучающей выборке (а их было мало). LangChain же полагается на большие модели от OpenAI, которые плюс минуc могут генерализоваться, но которые при этом проприетарны, со всеми вытекающими из этого проблемами
2. И тот, и другой полагаются на Chain-of-Thought при решении сложных пошаговых задач, что вообще может быть неоптимально в таком сценарии. Так, например, модель может сразу пойти по ложному пути, генерируя ошибки на каждом следующем шаге. Плюс, так она не исследует другие возможные сценарии, как задачу можно решить, особенно когда нужно воспользоваться многими тулами последовательно. На моем опыте, LangChain тупит даже с довольно простыми запросами, например, поисследовать pandas датафрейм, возможно из-за достаточно простого промптинга
Собственно авторы прелагают обе эти проблемы зарешать а) собрав множество API с прилагающейся документацией и нагенерировав инструкицй по ним б) использовать стратегию промтипнга посложнее, чем CoT.
Вместо CoT предалагают depth-first search-based decision tree (я долгождала, когда кто-то начнет через decision trees промптить) – так модель генерирует вглубину дерево потенциальных действий. Если какая-то ветвь приводит к результату, ты мы отдаем ее как ответ. Если встречаем ошибку при исполнении API, то можно отступить на шаг назад к последнему успешному действию и пропробовать сгенерить что-то другое. Если в целом результат не получается, то можно вернуться к корню и пойти по другой совершенно ветке. Это может быть долго и дорого с точки зрения расходования API, но мне кажется для решения сложных задач это крутой подход
Что понравилось, в эвалюации сравнивают качество с ChatGPT на held-out данных, в том числе на целых категориях API (для решении других специфичных задач), которых модель не видела при обучении. Генерализуется она действительно неплохо, обходит ChatGPT + CoT, и подходит близко к ChatGPT + DFSBDT 👏
Post #968
2.96K