ToolGen: унифицированный поиск и вызов инструментов с помощью генерации
ToolGen - это фреймворк для интеграции знаний об инструментах непосредственно в большие языковые модели (LLM), позволяющий без проблем вызывать инструменты и генерировать язык, представляя каждый инструмент как уникальный токен. Он был разработан Ренси Вангом и др. для улучшения производительности поиска инструментов и выполнения задач.
- Токенизация инструментов: преобразование инструментов в уникальные токены для упрощения вызова модели.
- Генерация вызовов инструмента: модель способна генерировать вызовы инструмента и параметры.
- Выполнение задач: автоматизация сложных задач с помощью вызовов инструментов.
- Поддержка наборов данных: предоставляет богатые наборы данных для обучения и оценки моделей.
рефераты
По мере развития больших языковых моделей (LLM) становятся особенно очевидными ограничения, связанные с их неспособностью автономно выполнять задачи, напрямую взаимодействуя с внешними инструментами. Традиционные подходы основаны на использовании описаний инструментов в качестве контекстного ввода, что ограничено длиной контекста и требует отдельного механизма извлечения, который зачастую неэффективен. Мы предлагаем ToolGen, метод для получения описаний инструментов, представляя каждый инструмент как уникальный Токен парадигма, которая интегрирует знания об инструментах непосредственно в параметры LLM. Это позволяет LLM использовать вызовы и параметры инструментов в качестве части предиктивных возможностей своего следующего Token, таким образом органично интегрируя вызовы инструментов с генерацией языка. Наш фреймворк позволяет LLM получать доступ и использовать большое количество инструментов без дополнительных шагов поиска, что значительно повышает производительность и масштабируемость. Экспериментальные результаты, основанные на использовании более 47 000 инструментов, показывают, что ToolGen не только достигает превосходных результатов в поиске инструментов и автономном выполнении задач, но и закладывает основу для нового поколения агентов ИИ, способных адаптироваться к широкому спектру инструментов домена. Фундаментально преобразуя поиск инструментов в генеративный процесс, ToolGen прокладывает путь к созданию более гибких, эффективных и автономных систем ИИ. ToolGen расширяет возможности LLM, поддерживая сквозное обучение инструментам и предоставляя возможности для интеграции с другими передовыми технологиями, такими как Chain Thinking и Reinforcement Learning.
1 Введение
Большие языковые модели (БЯМ) продемонстрировали впечатляющие возможности по обработке внешних данных, выполнению операций и автономному решению задач (Gravitas, 2023; Qin et al. 2023; Yao et al. 2023; Shinn et al. 2023; Wu et al. 2024a; Liu et al. 2024). Среди различных подходов, позволяющих LLM взаимодействовать с внешним миром, вызовы инструментов через API стали одними из самых распространенных и эффективных. Однако при увеличении числа инструментов до десятков тысяч существующие методы поиска и выполнения инструментов трудно эффективно масштабировать.
В реальном мире распространенным подходом является сочетание поиска инструментов с их исполнением, когда модель поиска сначала отфильтровывает релевантные инструменты, а затем передает их в LLM для окончательного выбора и исполнения (Qin et al., 2023; Patil et al., 2023). Хотя такой комбинированный подход полезен при работе с большим количеством инструментов, он имеет очевидные ограничения: модели поиска часто полагаются на небольшие кодировщики, которые затрудняют всестороннее отражение семантики сложных инструментов и запросов, а разделение поиска и выполнения может привести к неэффективности и смещению этапов в процессе выполнения задачи.
Более того, LLM и их дезамбигуаторы предварительно обучаются в основном на данных естественного языка (Brown et al., 2020; Touvron et al., 2023) и имеют ограниченные собственные знания о функциональности инструментов. Этот пробел в знаниях приводит к низкой производительности, особенно когда LLM должны полагаться на найденные описания инструментов для принятия решений.
В этом исследовании мы представляем ToolGen, новую структуру, которая интегрирует знания о реальных инструментах непосредственно в параметры LLM и превращает поиск и выполнение инструмента в единую задачу генерации. В частности, ToolGen более эффективно использует уже существующие знания LLM для поиска и вызова инструментов, расширяя словарь LLM для представления инструментов в виде конкретных виртуальных Token и обучая модель генерировать эти Token в контексте диалога.
На основе предварительно обученного LLM процесс обучения ToolGen состоит из трех фаз: запоминание инструментов, обучение поиску и обучение агентов. Во время фазы запоминания инструментов модель связывает каждый виртуальный токен инструмента с его документом. На этапе обучения поиску модель учится генерировать соответствующие токены инструментов на основе запросов пользователя. Наконец, на этапе сквозной настройки агента модель обучается действовать в качестве автономного агента, генерируя планы и инструменты и определяя соответствующие параметры для выполнения задачи. Вызывая инструменты и получая обратную связь из внешней среды, модель может эффективно и комплексно обрабатывать запросы пользователя. На рисунке 1 показано, как ToolGen сравнивается с традиционной парадигмой.
Мы подтвердили превосходство ToolGen в двух сценариях: в задаче поиска инструментов, где модель находит нужный инструмент по заданному запросу, и в задаче агента на основе LLM, где модель выполняет сложные задачи, включающие реальные вызовы API. Используя набор данных из 47 000 реальных инструментов, ToolGen работает так же хорошо, как и ведущие методы поиска инструментов, но при значительно меньших затратах и большей эффективности. Кроме того, она выходит за рамки традиционной парадигмы обучения инструментам, что подчеркивает ее потенциал для развития более эффективных систем использования инструментов.
Рисунок 1: Сравнение ToolGen с предыдущими подходами, основанными на поиске. Предыдущие подходы используют ретриверы для поиска релевантных инструментов с помощью сопоставления по сходству, а затем помещают эти инструменты в подсказки LLM для выбора. ToolGen обеспечивает поиск инструментов путем непосредственной генерации токена инструмента и может выполнять эту задачу, не полагаясь на внешние ретриверы.
ToolGen представляет собой новую парадигму взаимодействия с инструментами, объединяя поиск и генерацию в единую модель. Это новшество закладывает основу для нового поколения агентов ИИ, способных адаптироваться к различным инструментам. Кроме того, ToolGen создает новые возможности для объединения передовых технологий, таких как рассуждения с цепным мышлением и обучение с подкреплением, с единым генеративным подходом к использованию инструментов, расширяя возможности больших языковых моделей в реальных приложениях.
В целом, наш вклад включает в себя:
- Предлагается новая структура ToolGen, которая интегрирует поиск и выполнение инструментов в процесс создания больших языковых моделей с помощью виртуальных лексем.
- Трехэтапный процесс обучения был разработан для того, чтобы сделать ToolGen эффективным и масштабируемым для поиска инструментов и вызовов API.
- Экспериментальная проверка показала, что ToolGen демонстрирует сопоставимую производительность по сравнению с лучшими доступными методами поиска инструментов в крупных хранилищах инструментов, но с меньшими затратами, более эффективно и за пределами традиционной парадигмы обучения инструментам.
2 Похожие работы
2.1 Поиск инструментов
Поиск инструментов имеет решающее значение при выполнении практических задач большими агентами языковых моделей, где инструменты обычно описываются документами. Традиционные подходы, такие как разреженный поиск (напр. BM25 (Robertson et al., 2009)) и интенсивный поиск (например, DPR (Karpukhin et al., 2020), ANCE (Xiong et al., 2021)) опираются на большие индексы документов и внешние модули, что приводит к неэффективности и трудностям оптимизации в рамках сквозного агента. В ряде исследований изучались альтернативные подходы. Например, Чен и др. (2024b) переписывают запрос и извлекают его намерение для неконтролируемого поиска, хотя результаты не столь хороши, как у контролируемых методов. Сюй и др. (2024) предлагают подход, который повышает точность поиска, но увеличивает время ожидания, итеративно оптимизируя запрос на основе обратной связи с инструментом.
В последнее время генеративный поиск стал новой многообещающей парадигмой, в которой модели непосредственно генерируют идентификаторы релевантных документов, а не полагаются на традиционные механизмы поиска (Wang et al., 2022; Sun et al., 2023; Kishore et al., 2023; Mehta et al., 2023; Chen et al., 2023b). Вдохновленный этим, ToolGen представляет каждый инструмент как уникальный токен, так что поиск и вызов инструмента могут быть обработаны как генеративные задачи. Помимо упрощения поиска, эта конструкция может быть использована в сочетании с другими Большими языковыми моделями и агентскими функциями на основе Больших языковых моделей, такими как Chained Thought Reasoning (Wei et al., 2023) и ReAct (Yao et al., 2023)) плавно интегрируется. Интеграция поиска и выполнения заданий в одном агенте с большой языковой моделью позволяет сократить время ожидания и вычислительные накладные расходы, а также повысить эффективность и результативность выполнения заданий.
2.2 Большие агенты языкового моделирования с вызовами инструментов
Большие языковые модели демонстрируют большой потенциал для освоения инструментов, необходимых для решения различных задач. Однако большинство существующих исследований сосредоточено на ограниченном наборе действий (Chen et al., 2023a; Zeng et al., 2023; Yin et al., 2024; Wang et al., 2024). Например, Toolformer (Schick et al., 2023) точно настраивает GPT-J для работы только с пятью инструментами (например, калькуляторами). Хотя этот подход хорошо работает в узких задачах, он испытывает трудности в реалистичных сценариях, содержащих большое количество пространства действий. ToolBench (Qin et al., 2023) расширяет исследование, представляя более 16 000 инструментов, подчеркивая проблемы выбора инструментов в сложных средах.
Для выбора инструментов в современных подходах обычно используется конвейер поиска-генерации, когда большая языковая модель сначала находит соответствующий инструмент, а затем использует его (Patil et al., 2023; Qin et al., 2023). Однако конвейерный подход сталкивается с двумя основными проблемами: неправильное прохождение этапа поиска и сложность для большой языковой модели полностью понять и использовать инструменты с помощью простых подсказок.
Чтобы решить эти проблемы, исследователи пытаются представить действия в виде Token и превратить предсказание действий в генеративную задачу. Например, RT2 (Brohan et al., 2023) генерирует Token, представляющие действия робота, а Self-RAG (Asai et al., 2023) использует специальные Token, чтобы решить, когда извлекать документ. ToolkenGPT (Hao et al., 2023) вводит специфические для инструмента Token, чтобы вызвать инструмент для использования, концепция, наиболее близкая к нашему подходу. Концепция наиболее близка к нашему подходу.
Наш подход существенно отличается от ToolkenGPT. Во-первых, мы фокусируемся на реальных инструментах, требующих гибких параметров для решения сложных задач (например, поиск каналов на YouTube), в то время как ToolkenGPT ограничивается более простыми инструментами с меньшим количеством входных данных (например, математическими функциями с двумя числами). Кроме того, ToolkenGPT полагается на меньшее количество примеров, в то время как ToolGen интегрирует знания об инструментах непосредственно в большую языковую модель через полную точную настройку параметров, позволяя ей извлекать и выполнять задачи автономно. Наконец, в наших экспериментах используется гораздо больший набор инструментов - 47 000, в то время как в ToolkenGPT их 13-300.
В других исследованиях, таких как ToolPlanner (Wu et al., 2024b) и AutoACT (Qiao et al., 2024), использовалось обучение с подкреплением или мультиагентные системы для улучшения изучения инструментов или выполнения задач (Qiao et al., 2024; Liu et al., 2023; Shen et al., 2024; Chen et al., 2024a). Мы не сравниваем эти подходы с нашей моделью по двум причинам: (1) большинство этих работ опираются на механизмы обратной связи, такие как Отражение (Shinn et al., 2023) или модели вознаграждения, которые похожи на дизайн оценки ToolBench, где большая языковая модель выступает в роли оценщика и не имеет доступа к реальным ответам. Однако это не является предметом нашего исследования, и наши сквозные эксперименты не опираются на такие механизмы обратной связи. (2) Наш подход не противоречит этим методам, а скорее может быть интегрирован с ними. Изучение такой интеграции оставлено для будущих исследований.
3 ToolGen
В этом разделе мы сначала представим символическое представление, используемое в данной статье. Затем мы подробно описываем конкретный подход ToolGen, включая виртуализацию инструментов, память инструментов, обучение извлечению информации и сквозную настройку агентов, как показано на рисунке 2. Наконец, мы представляем нашу методологию вывода.
Рисунок 2: Схематическая диаграмма фреймворка ToolGen. На этапе виртуализации инструментов инструменты отображаются на виртуальные токены, и на следующих трех этапах обучения ToolGen сначала запоминает инструменты, предсказывая токены инструментов из документов по инструментам. Затем ToolGen учится извлекать инструменты, предсказывая лексемы инструментов из запросов. Наконец, данные о трубопроводе (т. е. траектории) используются для точной настройки модели поиска на последнем этапе, когда создается модель агента ToolGen.
3.1 Подготовительные знания
Для заданного пользовательского запроса q целью обучения инструментам является решение q с помощью инструментов из большого набора инструментов D={d1,d2,...,dN}, где |D|=N - большое число, что делает непрактичным включение всех инструментов в D в большую среду моделирования языка. Поэтому в современных исследованиях обычно используется ретривер R для извлечения k релевантных инструментов из D, обозначаемый как Dk,R={dr1,dr2,...,drk}=R(q,k,D), где |Dk,R|≪N. Конечный суфлер представляет собой конкатенацию q и Dk,R, обозначаемую как Prompt=[q,Dk,R]. Для выполнения задачи (запроса) агенты, основанные на больших языковых моделях, обычно используют четырехэтапную итерацию (Qu et al., 2024): генерация плана pi, выбор инструмента dsi, определение параметров инструмента ci и сбор информации из обратной связи инструмента fi. Мы обозначаем эти шаги как pi,dsi,ci,fi для i-й итерации. Модель продолжает итерации по этим шагам до тех пор, пока задача не будет выполнена, и тогда генерируется окончательный ответ a. Вся траектория может быть представлена как Traj=[Prompt,(p1,ds1,c1,f1),...,(pt,dst,ct,ft),a]=[q,R (q,D),(p1,ds1,c1,f1),...,(pt,dst,ct,ft),a]. Такой итерационный подход позволяет модели динамически корректировать и уточнять свои операции на каждом шаге на основе полученной обратной связи, что повышает ее эффективность при решении сложных задач.
3.2 Виртуализация инструментов
В ToolGen мы реализуем виртуализацию инструментов, отображая каждый инструмент на уникальный новый Token с помощью подхода, называемого атомарным индексированием. В этом подходе уникальный Token присваивается каждому инструменту путем расширения словарного запаса большой языковой модели. Встраивание каждого инструментального Token инициализируется средним встраиванием соответствующего имени инструмента, что обеспечивает семантически значимую отправную точку для каждого инструмента.
Формально набор Token определяется как T = Index(d)|∀d ∈ D, где Index - функция, отображающая инструменты в Token. Мы показываем, что атомарное индексирование более эффективно и уменьшает количество фантомных явлений по сравнению с другими методами индексирования (например, семантическими и числовыми отображениями; обсуждение см. в разделах 4.3 и 5.4).
3.3 Память инструментов
После присвоения Token инструменту Большая языковая модель все еще не имеет никаких знаний об этом инструменте. Чтобы решить эту проблему, мы точно настраиваем описание инструмента, используя его в качестве входных данных и соответствующий ему Token в качестве выходных, называя этот процесс запоминанием инструмента. Мы используем следующую функцию потерь:
ℒtool=∑d∈D-logpθ(Index(d)|ddoc) |
где θ обозначает параметры большой языковой модели, а ddoc - описание инструмента. На этом шаге описываются основы работы инструмента и связанные с ним операции для большой языковой модели.
3.4 Обучение поиску
Затем мы обучаем большую языковую модель связывать скрытое пространство виртуальных инструментов Token (и их документов) с пространством пользовательских запросов, чтобы модель могла генерировать правильный инструмент на основе запроса пользователя. Для этого мы настраиваем большую языковую модель, принимая на вход пользовательские запросы, а на выход - соответствующий инструмент Token:
ℒretrieval=∑q∈Q∑d∈Dqq-logpθ′(Index(d)|q) |
где θ′ обозначает большой параметр языковой модели после запоминания инструментов, Q - набор пользовательских запросов, а Dq - набор инструментов, связанных с каждым запросом. Этот процесс генерирует ретривер ToolGen, позволяя ему генерировать соответствующий токен инструмента для данного пользовательского запроса.
3.5 Конечная настройка агента
После обучения поиску модель Big Language способна генерировать токен Tool Token из запроса. На последнем этапе мы используем задачи Agent-Flan для завершения модели точной настройки траектории. Мы используем агент-флановскую стратегию (Chen et al., 2024c), в которой наш конвейер использует итерационный процесс, где модель сначала генерирует мысль, а затем генерирует соответствующий токен действия, который используется для получения инструментального документа, который затем используется моделью большого языка для генерации необходимых параметров. Процесс повторяется до тех пор, пока модель не сгенерирует маркер "сделано" или не достигнет максимального количества раундов. Сгенерированная траектория представляется как Traj=[q,(p1,Index(ds1),c1,f1),...,(pt,Index(dst),ct,ft),a]. В этой структуре инструмент ассоциации больше не нужен.
3.6 Рассуждения
В процессе рассуждений большая языковая модель может генерировать токены действий, выходящие за пределы заданного набора токенов инструментов. Чтобы предотвратить это, мы разработали метод поиска пучков с ограничениями, ограничивающий выходные токены набором токенов инструментов. Мы применяем этот метод поиска пучков с ограничениями для поиска инструментов (когда модель основана на инструменте выбора запроса) и сквозных агентских систем, эффективно уменьшая иллюзии на этапе генерации действий. Подробный анализ приведен в разделе 5.4. Подробности реализации см. в приложении C.
4 Оценка поиска инструментов
4.1 Экспериментальная установка
В качестве базовой модели мы использовали предварительно обученную модель Llama-3-8B (Dubey et al., 2024) со словарным запасом 128 256. 46 985 токенов были добавлены в процессе виртуализации инструментов с помощью метода атомарного индексирования, в результате чего конечный словарный запас составил 175 241. мы провели тонкую настройку модели, используя шаблон чата Llama-3 с планировщиком косинуса планировщиком скорости обучения и применением шага разминки 3%. Максимальная скорость обучения составила 4 × 10-5. Все модели были пропущены через Deepspeed ZeRO 3 на 4 × A100 GPU (Rajbhandari et al.2020) были обучены. Было проведено восемь раундов обучения запоминанию инструментов и один раунд обучения извлечению информации.
набор данных
Наши эксперименты основаны на ToolBench, реальном эталоне инструментов, содержащем более 16 000 коллекций инструментов, каждая из которых содержит несколько API, что в общей сложности составляет около 47 000 уникальных API. Каждый API документирован с помощью словаря, содержащего название API, описание и параметры вызова. Реальный пример см. в приложении AМы рассматриваем каждый API как операцию и сопоставляем ее с токеном. Мы рассматриваем каждый API как операцию и сопоставляем ее с токеном. наши данные для поиска и сквозной настройки агентов преобразуются из исходных данных ToolBench. Дополнительную информацию см. в приложении G. Хотя каждый инструмент может содержать несколько API, для простоты в этом документе каждый API в отдельности называется инструментом.
Мы следовали методологии Qin et al. (2023) по разделению данных и классифицировали 200 000 пар (запросы, связанные с API) на три категории: I1 (одноинструментальные запросы), I2 (многоинструментальные запросы внутри классов) и I3 (многоинструментальные команды внутри коллекций), содержащие 87 413, 84 815 и 25 251 экземпляр, соответственно.
Базовая методология
Мы сравниваем ToolGen со следующими эталонами:
- BM25: Классический метод неуправляемого поиска на основе TF-IDF, основанный на сходстве слов между запросом и документом.
- Сходство вкраплений (EmbSim): вкрапления предложений, созданные с помощью модели вкраплений предложений OpenAI; в наших экспериментах использовалась модель text-embedding-3-large.
- Re-Invoke (Chen et al., 2024b): неконтролируемый метод поиска, включающий переписывание запросов и расширение документов.
- IterFeedback (Xu et al., 2024): ретривер на основе BERT, использующий gpt-3.5-turbo-0125 в качестве модели обратной связи для 10 раундов итеративной обратной связи.
- ToolRetriever (Qin et al., 2023): ретривер на основе BERT, обученный методом контрастного обучения.
устанавливать
Мы проводим эксперименты в двух условиях. В первом случае In-Domain Retrieval ограничивает поиск инструментов, пространство поиска которых находится в пределах одного домена. Например, при оценке запросов в домене I1 он ограничивается инструментами в I1. Эта настройка соответствует настройке ToolBench. Вторая настройка, Multi-Domain Retrieval, является более сложной, в ней пространство поиска расширяется до инструментов во всех трех типах доменов. В этом случае модель обучается на объединенных данных, что увеличивает пространство поиска и сложность задачи. В отличие от ToolBench, мультидоменная настройка отражает реалистичные сценарии, в которых задачи поиска могут включать перекрывающиеся или смешанные домены. В этом случае оценивается способность модели обобщать данные из разных доменов и решать более сложные и разнообразные поисковые задачи.
норма
Мы оценивали эффективность поиска с помощью нормализованного дисконтированного кумулятивного выигрыша (NDCG) (Järvelin & Kekäläinen, 2002) - метрики, широко используемой в задачах ранжирования, включая поиск инструментов. NDCG учитывает как релевантность найденных инструментов, так и позицию в рейтинге.
Таблица 1: Оценка поиска инструментов в двух условиях: (1) внутридоменный поиск, когда модели обучаются и оцениваются на одних и тех же доменах, и (2) многодоменный поиск, когда модели обучаются на всех доменах и оцениваются на полном наборе инструментов из всех доменов.BM25, EmbSim и Re-Invoke - необученные, неконтролируемые методы бенчмаркинга.IterFeedback ToolRetriever обучается с помощью контрастного обучения, а ToolGen - с помощью предсказания следующего токена. Пункты с * в результатах указывают на модели, отличные от нашей реализации, а данные взяты из оригинальной статьи и, таким образом, перечислены только в условиях in-domain. Для ToolGen в условиях in-domain мы разрешаем пространству генерации включать все Token, что является более сложным сценарием по сравнению с другими моделями. Лучшие результаты в каждой категории выделены жирным шрифтом.
моделирование | I1 | I2 | I3 | ||||||
---|---|---|---|---|---|---|---|---|---|
NDCG1 | NDCG3 | NDCG5 | NDCG1 | NDCG3 | NDCG5 | NDCG1 | NDCG3 | NDCG5 | |
регион | |||||||||
BM25 | 29.46 | 31.12 | 33.27 | 24.13 | 25.29 | 27.65 | 32.00 | 25.88 | 29.78 |
EmbSim | 63.67 | 61.03 | 65.37 | 49.11 | 42.27 | 46.56 | 53.00 | 46.40 | 52.73 |
Повторный вызов* | 69.47 | - | 61.10 | 54.56 | - | 53.79 | 59.65 | - | 59.55 |
IterFeedback* | 90.70 | 90.95 | 92.47 | 89.01 | 85.46 | 87.10 | 91.74 | 87.94 | 90.20 |
ToolRetriever | 80.50 | 79.55 | 84.39 | 71.18 | 64.81 | 70.35 | 70.00 | 60.44 | 64.70 |
ToolGen | 89.17 | 90.85 | 92.67 | 91.45 | 88.79 | 91.13 | 87.00 | 85.59 | 90.16 |
мультидомен | |||||||||
BM25 | 22.77 | 22.64 | 25.61 | 18.29 | 20.74 | 22.18 | 10.00 | 10.08 | 12.33 |
EmbSim | 54.00 | 50.82 | 55.86 | 40.84 | 36.67 | 39.55 | 18.00 | 17.77 | 20.70 |
ToolRetriever | 72.31 | 70.30 | 74.99 | 64.54 | 57.91 | 63.61 | 52.00 | 39.89 | 42.92 |
ToolGen | 87.67 | 88.84 | 91.54 | 83.46 | 86.24 | 88.84 | 79.00 | 79.80 | 84.79 |
4.2 Результаты
В таблице 1 представлены результаты поиска инструментов. Как и ожидалось, все обученные модели значительно превосходят необученные базовые модели (BM25, EmbSim и Re-Invoke) по всем метрикам, демонстрируя преимущества обучения на данных поиска инструментов.
Предложенная нами модель ToolGen показывает наилучшие результаты в обоих случаях. В условиях домена ToolGen показывает весьма конкурентоспособные результаты, сравнимые с производительностью системы IterFeedback, использующей несколько моделей и механизмов обратной связи. В качестве единой модели ToolGen значительно превосходит ToolRetriever по всем метрикам и даже превосходит IterFeedback в нескольких сценариях (например, NDCG@5 для домена I1 и NDCG@1, @3, @5 для I2).
В многодоменных условиях ToolGen остается надежным, превосходя ToolRetriever и опережая базовые модели, несмотря на увеличение пространства поиска и обычное падение общей производительности. Это показывает, что ToolGen, несмотря на то, что является единственной моделью, может конкурировать со сложными поисковыми системами, такими как IterFeedback, демонстрируя свою способность решать сложные реальные поисковые задачи с нечеткими границами доменов.
4.3 Сравнение методов индексирования
Хотя ToolGen использует атомарные индексы для виртуализации инструментов, мы также исследуем несколько альтернативных генеративных методов поиска. В этом разделе мы сравним их со следующими тремя подходами:
- Цифровой: сопоставляет каждый инструмент с уникальным номером. Сгенерированный токен является чисто цифровым, не содержит внутренней семантической информации, но является уникальным идентификатором для каждого инструмента.
- Иерархический: этот метод объединяет инструменты в непересекающиеся группы и рекурсивно разделяет эти кластеры для формирования иерархической структуры. Индекс от корневого узла к листовым узлам в этой структуре представляет каждый инструмент, подобно кластеризации Брауна.
- Семантика: В этом подходе каждый инструмент сопоставляется с его названием, что позволяет направлять Большую языковую модель (LLM) через семантическое содержание названия инструмента. Название инструмента непосредственно обеспечивает значимое представление, связанное с его функцией.

Рисунок 3. Распределение количества суб-токенов на инструмент отличается при каждом методе индексации. Атомарное индексирование гарантирует, что каждый инструмент является одним токеном, в то время как числовое индексирование кодирует инструменты в N токенов, т. е. номер инструмента лежит в диапазоне (10N-1,10N]. В отличие от этого, семантическое индексирование и иерархическое индексирование дают разное количество суб-токенов, причем при семантическом индексировании последовательность суб-токенов длиннее и больше провалов.
Конкретные детали реализации описаны в Приложении B.
Во-первых, мы проанализировали количество суб-токенов, требуемых каждым методом для представления каждого инструмента, как показано на рисунке 3. График подчеркивает превосходство атомарного индексирования, где каждый инструмент представлен одним токеном, в то время как другие методы требуют нескольких токенов. Такая эффективность позволяет ToolGen уменьшить количество генераций токенов и сократить время рассуждений в сценариях поиска и агентов.
Далее мы проверили эффективность различных методов индексирования. Как показано в таблице 2, семантическое индексирование демонстрирует наилучшие результаты поиска по ряду показателей и сценариев, в то время как атомарное индексирование во многих случаях оказывается на втором месте. Мы объясняем это тем, что семантическое индексирование лучше соответствует предварительно обученным данным большой языковой модели. Однако это преимущество уменьшается по мере увеличения количества обучающих данных и типов. Например, в разделе 5.3 мы показываем, что атомарные индексы лучше справляются со сквозными результатами. Принимая во внимание эти факторы, мы выбираем атомарные индексы для виртуализации инструментов ToolGen.
Таблица 2: Оценка эффективности различных методов индексирования в многодоменной среде. Лучшие результаты выделены жирным шрифтом, следующие за ними - подчеркнуты.
моделирование | I1 | I2 | I3 | ||||||
---|---|---|---|---|---|---|---|---|---|
NDCG1 | NDCG3 | NDCG5 | NDCG1 | NDCG3 | NDCG5 | NDCG1 | NDCG3 | NDCG5 | |
числовой | 83.17 | 84.99 | 88.73 | 79.20 | 79.23 | 83.88 | 71.00 | 74.81 | 82.95 |
ламинирование | 85.67 | 87.38 | 90.26 | 82.22 | 82.70 | 86.63 | 78.50 | 79.47 | 84.15 |
значение слов | 89.17 | 91.29 | 93.29 | 83.71 | 84.51 | 88.22 | 82.00 | 78.86 | 85.43 |
атомный | 87.67 | 88.84 | 91.54 | 83.46 | 86.24 | 88.84 | 79.00 | 79.80 | 84.79 |
Таблица 3: Исследования абляции для поиска инструментов. Влияние удаления обучения поиску, памяти инструментов и поиска ограниченного луча на производительность ToolGen оценивается отдельно.
моделирование | I1 | I2 | I3 | ||||||
---|---|---|---|---|---|---|---|---|---|
NDCG1 | NDCG3 | NDCG5 | NDCG1 | NDCG3 | NDCG5 | NDCG1 | NDCG3 | NDCG5 | |
ToolGen | 87.67 | 88.84 | 91.54 | 83.46 | 86.24 | 88.84 | 79.00 | 79.80 | 84.79 |
-Memory | 84.00 | 86.77 | 89.35 | 82.21 | 83.20 | 86.78 | 77.00 | 77.71 | 84.37 |
-Обучение поиску | 10.17 | 12.31 | 13.89 | 5.52 | 7.01 | 7.81 | 3.00 | 4.00 | 4.43 |
-Переплет | 87.67 | 88.79 | 91.45 | 83.46 | 86.24 | 88.83 | 79.00 | 79.93 | 84.92 |
4.4 Эксперименты по абляции
Мы провели эксперименты по абляции, чтобы оценить влияние различных этапов обучения ToolGen, как показано в таблице 3 Показано. Результаты показывают, что обучение поиску является ключевым фактором, влияющим на производительность поиска инструментов, поскольку оно непосредственно соответствует задаче поиска, где на входе находится запрос, а на выходе - токен инструмента. Удаление воспоминаний об инструментах приводит к небольшому снижению производительности, хотя и способствует повышению эффективности обобщения, как мы покажем в Приложении F обсуждается далее. Аналогичным образом, ограниченный поиск по пучкам, хотя и вносит незначительный вклад в задачу поиска, помогает предотвратить генерацию галлюцинаций и, таким образом, имеет определенную ценность в сквозных задачах агентов, см. раздел 5.4.
5 Комплексная оценка
5.1 Экспериментальная установка
Мы внесли несколько изменений в данные трассировки из ToolBench, чтобы адаптировать их к фреймворку ToolGen. Например, поскольку ToolGen не требует явного выбора соответствующих инструментов в качестве входных данных, мы удалили эту информацию из подсказок системы. Более подробная информация приведена в приложении G. На основе этого мы доработали модель поиска, используя переформатированные данные, и создали сквозного агента ToolGen.
базовая модель
- GPT-3.5: В качестве одной из базовых моделей мы используем gpt-3.5-turbo-0613. Реализация аналогична StableToolBench (Guo et al., 2024), где функциональность вызова инструментов GPT-3.5 используется для формирования агентов инструментов.
- ToolLlama-2: Цинь и др. (2023) представили ToolLlama-2, доработав модель Llama-2 (Touvron et al., 2023) на данных ToolBench.
- ToolLlama-3: Чтобы обеспечить справедливое сравнение, мы создали базовую модель ToolLlama-3 путем тонкой настройки той же базовой модели Llama-3, что и ToolGen, на наборе данных ToolBench. В дальнейшем в статье ToolLlama-3 будет называться ToolLlama, чтобы отличать ее от ToolLlama-2.
устанавливать
- Использование подлинных инструментов (G.T.): ссылаясь на Qin et al. (2023), мы определяем подлинные инструменты для запросов как ChatGPT Выбранный инструмент. Для ToolLlama мы вводили реальный инструмент непосредственно в подсказку, в том же формате, что и данные для обучения. Для ToolGen, поскольку он не обучался на данных с предварительно выбранными инструментами, мы добавили префикс: I am using the following tool in the planning phase:[tool жетоны], где [tool tokens] - виртуальный токен, соответствующий реальному инструменту.
- Использование ретриверов: в сквозных экспериментах мы используем систему, основанную на ретриверах. Для базовой модели мы используем инструменты, полученные с помощью ToolRetriever, в качестве ассоциированных инструментов. ToolGen, с другой стороны, генерирует токены инструментов напрямую и поэтому не использует ретриверы.
Все модели настраивались с помощью косинусного планировщика с максимальной скоростью обучения 4 × 10-5. Длина контекста была обрезана до 6 144, а общий размер партии - до 512. Для экономии памяти мы использовали Flash-Attention (Dao et al., 2022; Dao, 2024) и Deepspeed ZeRO 3 ( Rajbhandari et al., 2020) для экономии памяти.
ToolGen и ToolLlama используют разные парадигмы для выполнения задания: ToolLlama генерирует идеи, действия и параметры в одном раунде, в то время как ToolGen разделяет эти шаги. Для ToolGen мы установили ограничение до 16 раундов, позволяющее выполнить 5 раундов действий и 1 раунд окончательных ответов. Мы сравниваем это с ограничением ToolLlama в 6 раундов.
Кроме того, для предотвращения преждевременного прекращения работы всех моделей мы ввели механизм повторных попыток, подробности которого описаны в Приложении D. В частности, если модель генерирует ответ, содержащий слова "сдаюсь" или "извините", мы просим модель повторно сгенерировать ответ при более высокой температуре.
Оценка показателей
Для сквозной оценки мы используем эталон оценки стабильных инструментов StableToolBench (Guo et al., 2024), который выбирает решаемые запросы из ToolBench и моделирует результаты работы неудачных инструментов с помощью GPT-4 (OpenAI, 2024). Мы оцениваем производительность по двум метрикам: коэффициент прохождения решаемых запросов (SoPR), который представляет собой процент успешно решенных запросов, и коэффициент побед решаемых запросов (SoWR), который показывает процент ответов, превосходящих эталонную модель (GPT-3.5 в данном исследовании). Кроме того, мы приводим усредненные микрооценки для каждой категории.
Таблица 4: Производительность сквозной оценки невидимых команд в двух настройках. Для настройки R. GPT-3.5 и ToolLlama используют ToolRetriever, а ToolGen не использует внешний ретривер. Все результирующие оценки SoPR и SoWR выполнены три раза и представлены как средние значения.
моделирование | SoPR | SoWR | ||||||
---|---|---|---|---|---|---|---|---|
I1 | I2 | I3 | Avg. | I1 | I2 | I3 | Avg | |
Использование реальных инструментов (G.T.) | ||||||||
GPT-3.5 | 56.60 | 47.80 | 54.64 | 50.91 | - | - | - | - |
ИнструментЛлама-2 | 53.37 | 41.98 | 46.45 | 48.43 | 47.27 | 59.43 | 27.87 | 47.58 |
ToolLlama | 55.93 | 48.27 | 52.19 | 52.78 | 50.31 | 53.77 | 31.15 | 47.88 |
ToolGen | 61.35 | 49.53 | 43.17 | 54.19 | 51.53 | 57.55 | 31.15 | 49.70 |
Использование ретривера (R.) | ||||||||
GPT-3.5 | 51.43 | 41.19 | 34.43 | 45.00 | 53.37 | 53.77 | 37.70 | 50.60 |
ИнструментЛлама-2 | 56.13 | 49.21 | 34.70 | 49.95 | 50.92 | 53.77 | 21.31 | 46.36 |
ToolLlama | 54.60 | 49.96 | 51.37 | 51.55 | 49.08 | 61.32 | 31.15 | 49.70 |
ToolGen | 56.13 | 52.20 | 47.54 | 53.28 | 50.92 | 62.26 | 34.42 | 51.51 |
5.2 Результаты
В таблице 4 показана сквозная оценка эффективности каждой модели в двух средах: с использованием реального инструмента (G.T.) и ретривера (R.). В среде G.T. ToolGen достигает среднего показателя SoPR 54,19, опережая GPT-3.5 и ToolLlama, а ToolGen достигает наивысшего показателя SoWR 49,70. ToolGen сохраняет лидерство в среде Retriever со средним показателем SoPR 53,28 и SoWR 51,51. ToolLlama демонстрирует конкурентоспособную производительность, опережая реальный инструмент на некоторых отдельных экземплярах. ToolLlama продемонстрировала конкурентоспособность, превзойдя ToolGen на некоторых отдельных экземплярах. сквозное исследование абляции ToolGen представлено в Приложении G.
Таблица 5: сквозная оценка различных методов индексирования.
Методы индексирования | SoPR | SoWR | ||||||
---|---|---|---|---|---|---|---|---|
I1 | I2 | I3 | Avg. | I1 | I2 | I3 | Avg | |
числовой индекс | 34.76 | 29.87 | 46.99 | 35.45 | 25.77 | 33.02 | 29.51 | 28.79 |
иерархический индекс | 50.20 | 45.60 | 32.79 | 45.50 | 38.04 | 43.40 | 29.51 | 38.18 |
семантическое индексирование | 58.79 | 45.28 | 44.81 | 51.87 | 49.69 | 57.55 | 26.23 | 47.88 |
атомный индекс | 58.08 | 56.13 | 44.81 | 55.00 | 47.85 | 57.55 | 29.51 | 47.58 |
5.3 Сравнение методов индексирования
Как и в случае сравнения методов индексирования для задачи поиска (раздел 4.3), в таблице 5 показано сравнение различных методов индексирования в сквозной задаче агента. В этом случае ограниченное декодирование снимается, позволяя агенту свободно генерировать мысли, действия и параметры. Из результатов видно, что метод атомарного индексирования работает лучше всех из четырех методов индексирования. Мы связываем это с более высокими показателями фантомности других методов, как обсуждалось в разделе 5.4.

Рисунок 4. Показатель фантомности различных моделей при генерации несуществующих инструментов. ToolGen не генерирует несуществующие инструменты при использовании ограниченного декодирования. Однако без этого ограничения ToolGen генерирует 7% неинструментальных токенов на этапе генерации действий при использовании атомарного индексирования, а при использовании семантического индексирования частота иллюзий выше. Для ToolLlama и GPT-3.5 иллюзия возникает, даже если в подсказке указаны пять реальных инструментов. Если в подсказке не указан ни один инструмент, ToolLlama генерирует несуществующие имена инструментов в количестве более 50%.
5.4 Галлюцинации
Мы оцениваем фантомную ситуацию модели при генерации инструментов в сценарии сквозного агента. Для этого мы вводим запросы, отформатированные в соответствии с обучением модели. В частности, для ToolGen мы напрямую вводим запрос и просим модель сгенерировать ответ в соответствии с парадигмой агента ToolGen (т. е. мысль, инструмент и параметры по порядку). Мы протестировали декодирование действий без ограничений на поиск связок, описанных в разделе 3.6. Для ToolLlama и GPT-3.5 мы ввели запросы и включили 5 реальных инструментов. Во всех случаях мы сообщаем о доле инструментов, отсутствующих в наборе данных, среди тех, что были сгенерированы во всех действиях по генерации инструментов. На рисунке 4 показана призрачная доля несуществующих инструментов, сгенерированных разными моделями. Как видно из рисунка, ToolLlama и GPT-3.5 все еще склонны генерировать несуществующие имена инструментов, несмотря на то, что предоставлено только пять реальных инструментов. В отличие от них, ToolGen полностью избегает галлюцинаций благодаря ограниченному дизайну декодирования.
6 Заключение
В этой статье мы представляем ToolGen, фреймворк для моделирования больших языков (LLM), который объединяет поиск и выполнение инструментов путем встраивания виртуальных лексем, специфичных для инструментов, в словарь модели, тем самым превращая взаимодействие с инструментами в генеративную задачу. Благодаря трехэтапному процессу обучения ToolGen позволяет LLM эффективно находить и выполнять инструменты в реальных сценариях. Этот унифицированный подход устанавливает новую планку для масштабируемых и эффективных агентов ИИ, способных работать с большими библиотеками инструментов. В дальнейшем ToolGen открывает возможности для интеграции передовых технологий, таких как рассуждения по цепочке мыслей, обучение с подкреплением и ReAct, что еще больше повышает автономность и универсальность LLM в реальных приложениях.
Ссылки
- Asai et al. (2023) ↑Akari Asai, Zeqiu Wu, Yizhong Wang, Avirup Sil, and Hannaneh Hajishirzi.Self-rag: Learning to retrieve, generate, and critique through self-reflection, 2023.URL через саморефлексию, 2023.URL https://arxiv.org/abs/2310.11511.
- Brohan et al. (2023)↑ Anthony Brohan, Noah Brown, Justice Carbajal, Yevgen Chebotar, Xi Chen, Krzysztof Choromanski, Tianli Ding, Danny Driess, Avinava Dubey, Chelsea Finn, Pete Florence, Chuyuan Fu, Montse Gonzalez Arenas, Keerthana Gopalakrishnan, Kehang Han, Karol Авинава Дубей, Челси Финн, Пит Флоренс, Чуюань Фу, Монтсе Гонсалес Аренас, Киртана Гопалакришнан, Кеханг Хан, Кароль Хаусман, Александр Херцог, Жасмин Хсу, Брайан Ихтер, Алекс Ирпан, Нихил Джоши, Райан Джулиан, Дмитрий Калашников, Юхэн Куанг, Изабель Леаль, Лиза Ли, Цанг-Вей Эдвард Ли Сергей Левин, Яо Лу, Хенрик Михалевский, Игорь Мордач, Карл Пертш, Канишка Рао, Криста Рейманн, Майкл Рю, Гресия Салазар, Паннаг Санкети, Пьер Серманет, Яспил Джоши, Райан Джулиан, Дмитрий Калашников, Юхэн Куанг, Изабель Леал, Лиза Ли, Цанг-Вей Эдвард Ли Пьер Серман, Яспиар Сингх, Аникаит Сингх, Раду Сорикут, Хуонг Тран, Винсент Ванхуке, Куан Вуонг, Айзан Вахид, Стефан Велькер, Пол Вольхарт. Цзялинь Ву, Фэй Ся, Тед Сяо, Пенг Сю, Сичунь Сю, Тяньхэ Ю и Брианна Зиткович. Rt-2: модели "зрение-язык-действие" передают веб-знания для управления роботами. управление роботами, 2023.URL https://arxiv.org/abs/2307.15818.
- Браун и др. (2020)↑Том Б. Браун, Бенджамин Манн, Ник Райдер, Мелани Суббиах, Джаред Каплан, Прафулла Дхаривал, Арвинд Нилакантан, Пранав Шьям. Гириш Састри, Аманда Аскелл, Сандхини Агарвал, Ариэль Херберт-Восс, Гретхен Крюгер, Том Хенигхан, Ревон Чайлд, Адитья Рамеш, Дэниел М. Зиглер. Джеффри Ву, Клеменс Винтер, Кристофер Гессе, Марк Чен, Эрик Сиглер, Матеуш Литвин, Скотт Грей, Бенджамин Чесс, Джек Кларк, Кристофер Бернер, Сэм Маккандлиш, Алек Рэдфорд, Илья Суцкевер и Дарио Амодей.Языковые модели - это немногочисленные обучающиеся.В книге Уго Ларошель, Марк'Аурелио Ranzato, Raia Hadsell, Maria-Florina Balcan, and Hsuan-Tien Lin (eds.). Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, виртуальный, 2020.URL https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html.
- Chen et al. (2023a) ↑ Baian Chen, Chang Shu, Ehsan Shareghi, Nigel Collier, Karthik Narasimhan, and Shunyu Yao.Fireact: Toward language agent fine-. tuning.Препринт arXiv:2310.05915, 2023a.
- Chen et al. (2023b)↑Jiangui Chen, Ruqing Zhang, Jiafeng Guo, Maarten de Rijke, Wei Chen, Yixing Fan, and Xueqi Cheng.Continual Learning for Generative Поиск над динамическими корпорациями. Материалы 32-й Международной конференции ACM по управлению информацией и знаниямиCIKM '23, pp. 306-315, New York, NY, USA, 2023b. Association for Computing Machinery. isbn 9798400701245. doi: 10.1145/ 3583780.3614821.URL https://dl.acm.org/doi/10.1145/3583780.3614821.
- Chen et al. (2024a)↑Junzhi Chen, Juhao Liang, and Benyou Wang.Smurfs: Leveraging multiple proficiency agents with context-efficiency for tool планирования, 2024a.URL https://arxiv.org/abs/2405.05955.
- Chen et al. (2024b)↑Yanfei Chen, Jinsung Yoon, Devendra Singh Sachan, Qingze Wang, Vincent Cohen-Addad, Mohammadhossein Bateni, Chen-Yu Lee, and Томас Пфистер. Re-invoke: перезапись вызовов инструментов для поиска инструментов с нулевым результатом.Препринт arXiv:2408.01875, 2024b.
- Chen et al. (2024c)↑Zehui Chen, Kuikun Liu, Qiuchen Wang, Wenwei Zhang, Jiangning Liu, Dahua Lin, Kai Chen, and Feng Zhao.Agent-flan: designing data and методы эффективной настройки агентов для больших языковых моделей, 2024c.URL https://arxiv.org/abs/2403.12881.
- Dao (2024)↑Tri Dao.FlashAttention-2: более быстрое внимание с улучшенным параллелизмом и разделением работы.In Международная конференция по изучению представлений (ICLR), 2024.
- Dao et al. (2022)↑Tri Dao, Daniel Y. Fu, Stefano Ermon, Atri Rudra, and Christopher Ré.FlashAttention: быстрое и эффективное с точки зрения памяти точное внимание с учетом IO. IO-awareness.In Достижения в области нейронных систем обработки информации (NeurIPS), 2022.
- Dubey et al. (2024)↑Abhimanyu Dubey, Abhinav Jauhri, Abhinav Pandey, Abhishek Kadian, Ahmad Al-Dahle, Aiesha Letman, Akhil Mathur, Alan Schelten, Amy Янг, Анджела Фан и др. Стадо моделей "Лама 3".Препринт arXiv:2407.21783, 2024.
- Гравитас (2023)↑Gravitas.AutoGPT, 2023.URL https://github.com/Significant-Gravitas/AutoGPT.
- Guo et al. (2024)↑Zhicheng Guo, Sijie Cheng, Hao Wang, Shihao Liang, Yujia Qin, Peng Li, Zhiyuan Liu, Maosong Sun, and Yang Liu.StableToolBench: Towards StableToolBench: Towards Stable Large-Scale Benchmarking on Tool Learning of Large Language Models, 2024.URL https://arxiv.org/abs/2403.07714.
- Hao et al. (2023)↑Shibo Hao, Tianyang Liu, Zhen Wang, and Zhiting Hu.Toolkengpt: Augmenting frozen language models with massive tools through tool In Alice Oh, Tristan Naumann, Amir Globerson, Kate Saenko, Moritz Hardt, and Sergey Levine (eds.). Advances in Neural Information Processing Systems 36: Annual Conference on Neural Information Processing Systems 2023, NeurIPS 2023, New Orleans, LA, USA, December 10 - 16, 2023 США, 10 - 16 декабря 2023 г., 2023.URL http://papers.nips.cc/paper_files/paper/2023/hash/8fd1a81c882cd45f64958da6284f4a3f-Abstract-Conference.html.
- Ярвелин и Кекяляйнен (2002)↑Калерво Ярвелин и Яана Кекяляйнен. Оценка ир-технологий на основе кумулятивного выигрыша.ACM Transactions on Information Systems (TOIS), 20(4):422-446, 2002.
- Карпухин и др. (2020)↑Vladimir Karpukhin, Barlas Oguz, Sewon Min, Patrick Lewis, Ledell Wu, Sergey Edunov, Danqi Chen, and Wen-tau Yih.Dense passage Dense passage retrieval for open-domain question answering.In Bonnie Webber, Trevor Cohn, Yulan He, and Yang Liu (eds.) Материалы конференции 2020 года по эмпирическим методам обработки естественного языка (EMNLP)pp. 6769-6781, Online, 2020. association for Computational Linguistics. doi: 10.18653/v1/2020.emnlp-main.550.URL https://aclanthology.org/2020.emnlp-main.550.
- Kishore et al. (2023)↑Varsha Kishore, Chao Wan, Justin Lovelace, Yoav Artzi, and Kilian Q. Weinberger.Incdsi: Incrementally updatable document Incdsi: Incrementally Updatable Document Retrieval.In Andreas Krause, Emma Brunskill, Kyunghyun Cho, Barbara Engelhardt, Sivan Sabato, and Jonathan Scarlett (eds.). Международная конференция по машинному обучению, ICML 2023, 23-29 июля 2023 г., Гонолулу, Гавайи, США, том 202 из Труды по исследованию машинного обучения, pp. 17122-17134. PMLR, 2023.URL https://proceedings.mlr.press/v202/kishore23a.html.
- Liu et al. (2024)↑Xiao Liu, Hao Yu, Hanchen Zhang, Yifan Xu, Xuanyu Lei, Hanyu Lai, Yu Gu, Hangliang Ding, Kaiwen Men, Kejuan Yang, et al. Agentbench. Оценка llms как агентов.In Двенадцатая международная конференция по изучению репрезентаций, 2024.
- Liu et al. (2023)↑ Zhiwei Liu, Weiran Yao, Jianguo Zhang, Le Xue, Shelby Heinecke, Rithesh Murthy, Yihao Feng, Zeyuan Chen, Juan Carlos Niebles, Devansh Арпит и др. Bolaa: бенчмаркинг и оркестровка автономных агентов, дополненных llm.Препринт arXiv:2308.05960, 2023.
- Mehta et al. (2023)↑Sanket Vaibhav Mehta, Jai Gupta, Yi Tay, Mostafa Dehghani, Vinh Q. Tran, Jinfeng Rao, Marc Najork, Emma Strubell, and Donald Metzler. DSI++: обновление трансформатор Память с новыми документами.In Houda Bouamor, Juan Pino, and Kalika Bali (eds.). Материалы 2023 конференции по эмпирическим методам обработки естественного языка, pp. 8198-8213, Singapore, 2023. Association for Computational Linguistics. doi: 10.18653/v1/2023.emnlp-main.510.URL https://aclanthology.org/2023.emnlp-main.510.
- OpenAI (2024)↑OpenAI.Gpt-4 технический отчет, 2024.URL https://arxiv.org/abs/2303.08774.
- Patil et al. (2023) ↑Shishir G. Patil, Tianjun Zhang, Xin Wang, and Joseph E. Gonzalez.Gorilla: Large language model connected with massive apis, 2023. URL https://arxiv.org/abs/2305.15334.
- Qiao et al. (2024)↑Shuofei Qiao, Ningyu Zhang, Runnan Fang, Yujie Luo, Wangchunshu Zhou, Yuchen Eleanor Jiang, Chengfei Lv, and Huajun Chen.Autoact. Автоматическое обучение агента с нуля для qa с помощью самопланирования, 2024.URL https://arxiv.org/abs/2401.05268.
- Qin et al. (2023)↑ Yujia Qin, Shihao Liang, Yining Ye, Kunlun Zhu, Lan Yan, Yaxi Lu, Yankai Lin, Xin Cong, Xiangru Tang, Bill Qian, Sihan Zhao, Lauren Hong, Runchu Tian, Ruobing Xie, Jie Zhou, Mark Gerstein, Dahai Li, Zhiyuan Liu, and Maosong Sun. Runchu Tian, Ruobing Xie, Jie Zhou, Mark Gerstein, Dahai Li, Zhiyuan Liu, and Maosong Sun.ToolLLM: Facilitating Large Language Models to Master 16000+. API реального мира, 2023.URL https://arxiv.org/abs/2307.16789.
- Qu et al. (2024)↑Changle Qu, Sunhao Dai, Xiaochi Wei, Hengyi Cai, Shuaiqiang Wang, Dawei Yin, Jun Xu, and Ji-Rong Wen.Tool learning with large language Инструментальное обучение с использованием больших языковых моделей: обзор.Препринт arXiv:2405.17935, 2024.
- Rajbhandari et al. (2020)↑Samyam Rajbhandari, Jeff Rasley, Olatunji Ruwase, and Yuxiong He.Zero: Memory optimizations toward training trillion моделей с триллионами параметров, 2020.URL https://arxiv.org/abs/1910.02054.
- Робертсон и др. (2009)↑Стивен Робертсон, Уго Сарагоса и др. актуальность рамки: Bm25 и далее.Основы и тенденции® в информационном поиске, 3(4):333-389, 2009.
- Schick et al. (2023)↑Timo Schick, Jane Dwivedi-Yu, Roberto Dessì, Roberta Raileanu, Maria Lomeli, Luke Zettlemoyer, Nicola Cancedda, and Thomas Scialom.Toolformer: языковые модели могут сами научить себя использовать инструменты, 2023.URL https://arxiv.org/abs/2302.04761.
- Shen et al. (2024)↑Weizhou Shen, Chenliang Li, Hongzhan Chen, Ming Yan, Xiaojun Quan, Hehong Chen, Ji Zhang, and Fei Huang.Small llms are weak tool обучающихся: мульти-лм агент, 2024.URL https://arxiv.org/abs/2401.07324.
- Shinn et al. (2023)↑ Noah Shinn, Federico Cassano, Ashwin Gopinath, Karthik Narasimhan, and Shunyu Yao.Reflexion: language agents with verbal reinforcement learning.In Материалы 37-й Международной конференции по нейронным системам обработки информации, pp. 8634-8652, 2023.
- Sun et al. (2023)↑Weiwei Sun, Lingyong Yan, Zheng Chen, Shuaiqiang Wang, Haichao Zhu, Pengjie Ren, Zhumin Chen, Dawei Yin, Maarten de Rijke, and Zhaochun Ren.Learning to tokenize for generative retrieval.In Alice Oh, Tristan Naumann, Amir Globerson, Kate Saenko, Moritz Hardt, and Sergey Levine (eds.) Advances in Neural Information Processing Systems 36: Annual Conference on Neural Information Processing Systems 2023, NeurIPS 2023, New Orleans, LA, USA, December 10 - 16, 2023 США, 10 - 16 декабря 2023 г., 2023.URL http://papers.nips.cc/paper_files/paper/2023/hash/91228b942a4528cdae031c1b68b127e8-Abstract-Conference.html.
- Touvron et al. (2023)↑ Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, Aurelien Rodriguez, Armand Joulin, Edouard Grave, and Guillaume Lample.Llama: open and efficient foundation языковых моделей, 2023.URL https://arxiv.org/abs/2302.13971.
- Wang et al. (2024)↑Renxi Wang, Haonan Li, Xudong Han, Yixuan Zhang, and Timothy Baldwin.Learning from failure: integrating negative examples when fine -настройки больших языковых моделей в качестве агентов.Препринт arXiv:2402.11651, 2024.
- Wang et al. (2022)↑Yujing Wang, Yingyan Hou, Haonan Wang, Ziming Miao, Shibin Wu, Qi Chen, Yuqing Xia, Chengmin Chi, Guoshuai Zhao, Zheng Liu, Xing Xie, Hao Sun, Weiwei Deng, Qi Zhang, and Mao Yang. Hao Sun, Weiwei Deng, Qi Zhang, and Mao Yang.A neural corpus indexer for document retrieval.In Sanmi Koyejo, S. Mohamed, A. Agarwal, Danielle Belgrave, K . Cho, and A. Oh (2008), a neural corpus indexer for document retrieval. Чо и А. О (ред.). Advances in Neural Information Processing Systems 35: Annual Conference on Neural Information Processing Systems 2022, NeurIPS 2022, New Orleans, LA, USA, November 28 - December 9, 2022 Новый Орлеан, Лос-Анджелес, США, 28 ноября - 9 декабря 2022 г., 2022.URL http://papers.nips.cc/paper_files/paper/2022/hash/a46156bd3579c3b268108ea6aca71d13-Abstract-Conference.html.
- Wei et al. (2023)↑Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Brian Ichter, Fei Xia, Ed Chi, Quoc Le, and Denny Zhou.Chain-of-thought побуждение к действию вызывает рассуждения в больших языковых моделях, 2023.URL https://arxiv.org/abs/2201.11903.
- Wu et al. (2024a)↑Qingyun Wu, Gagan Bansal, Jieyu Zhang, Yiran Wu, Beibin Li, Erkang Zhu, Li Jiang, Xiaoyun Zhang, Shaokun Zhang, Jiale Liu, Ahmed Hassan Autogen: Enabling next-gen llm applications through multi-agent conversation framework.In COLM, 2024a.
- Wu et al. (2024b)↑Qinzhuo Wu, Wei Liu, Jian Luan, and Bin Wang.ToolPlanner: a Tool Augmented LLM for Multi Granularity Instructions with Path Planning и обратной связью, 2024b.URL https://arxiv.org/abs/2409.14826.
- Xiong et al. (2021)↑Lee Xiong, Chenyan Xiong, Ye Li, Kwok-Fung Tang, Jialin Liu, Paul N. Bennett, Junaid Ahmed, and Arnold Overwijk.Approximate nearest neighbour negative contrastive learning for dense text retrieval. приближенное обучение негативного контраста ближайших соседей для поиска плотных текстов.In 9-я Международная конференция по обучающим представлениям, ICLR 2021, Виртуальное мероприятие, Австрия, 3-7 мая 2021 г.. OpenReview.net, 2021.URL https://openreview.net/forum?id=zeFrfgyZln.
- Xu et al. (2024)↑Qiancheng Xu, Yongqi Li, Heming Xia, and Wenjie Li.Enhancing tool retrieval with iterative feedback from large language models.Препринт arXiv:2406.17465, 2024.
- Yao et al. (2023)↑Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, and Yuan Cao.ReAct: Synergising reasoning and acting in языковых моделях.In Международная конференция по изучению представлений (ICLR), 2023.
- Yin et al. (2024)↑Da Yin, Faeze Brahman, Abhilasha Ravichander, Khyathi Chandu, Kai-Wei Chang, Yejin Choi, and Bill Yuchen Lin.Agent lumos: Unified and модульное обучение для языковых агентов с открытым исходным кодом.In Lun-Wei Ku, Andre Martins, and Vivek Srikumar (eds.). Материалы 62-й ежегодной встречи Ассоциации вычислительной лингвистики (Том 1: Длинные доклады)pp. 12380-12403, Bangkok, Thailand, August 2024. association for Computational Linguistics. doi: 10.18653/v1/2024.acl-long.670. URL https://aclanthology.org/2024.acl-long.670.
- Zeng et al. (2023) ↑Aohan Zeng, Mingdao Liu, Rui Lu, Bowen Wang, Xiao Liu, Yuxiao Dong, and Jie Tang.Agenttuning: enabling generalised agent abilities для llms, 2023.
Пример реального инструмента
искать 5 Показан пример реального инструмента. Каждый инструмент содержит несколько API. В наших экспериментах используются следующие поля: "tool_name" - название инструмента. "tool_description" описывает информацию об инструменте, например, что он делает. В каждом API "name" - это название API. "description" описывает информацию об API. "method" - метод http, который вызывает API. "required_parameters" - это параметры, которые необходимо заполнить при вызове API. "optional_parameters" может использоваться для задания дополнительных параметров (опционально).
{
"tool_name":"YouTube Hub",
"tool_description":"获取单个视频的点赞数、观看次数、标题、缩略图等详细信息。",
"home_url":"https://rapidapi.com/itsrohitofficial-XBPdXttOUQ/api/youtube-hub/",
"host":"youtube-hub.p.rapidapi.com",
"api_list":[
{
"name":"获取视频详情",
"url":"https://youtube-hub.p.rapidapi.com/",
"description":"获取视频的所有基本信息",
"method":"GET",
"required_parameters":[
{
"name":"id",
"type":"STRING",
"description":"",
"default":"fD6SzYIRr4c"
}
],
"optional_parameters":[],
}
]
}

Рисунок 5: Пример реального инструмента. Инструмент содержит API, ненужные поля были удалены для простоты.
B Реализация виртуализации инструментов
ToolGen использует единственный уникальный токен для представления инструмента, что демонстрирует его сильные стороны в поиске и вызове инструмента. Мы также представили другие методы индексации инструментов, включая семантическую, числовую и иерархическую. Ниже приводится подробное описание того, как мы реализуем каждый тип индексации.
атомный
Индексирование - это метод, который мы используем в ToolGen. В отличие от других методов, он использует один токен в качестве инструмента и не подтасовывает несуществующий инструмент. Мы используем <>, чтобы объединить название инструмента и API в один токен. Например, в приложении A В примере, приведенном в этом разделе, получен токен <>.
значение слов
Индекс сопоставляет каждый инструмент с именем, используемым в ToolBench, которое также является комбинацией имени инструмента и имени API. Однако имя может быть разбито на несколько Token, чтобы модель могла воспринимать его семантическое значение. В примере, приведенном в приложении A, результирующим отображением является get_video_details_for_youtube_hub.
числовой
В индексе каждому инструменту соответствует уникальный номер. Мы начинаем с получения списка всех инструментов, который имеет длину около 47 000, и для всех инструментов используем пятизначное число, разделенное пробелами, для представления инструмента. Если пример в Приложении A является 128-м элементом в списке, то для обозначения инструмента мы используем 0 0 0 0 1 2 8. Поскольку лексикон Llama-3 кодирует каждое число
наслоение
также сопоставляет каждый инструмент с номером. В отличие от числового индекса, мы вносим структурную информацию в представление инструментов с помощью итеративной кластеризации. На каждой итерации мы объединяем инструменты в десять кластеров, каждому из которых присваивается номер от 0 до 9. Для каждого кластера мы повторяем этот процесс кластеризации до тех пор, пока в нем не останется только один инструмент. Эти шаги образуют дерево кластеризации. Мы переходим от корня к номерам листьев, представляя инструменты в этом листе. Примерам в приложении A можно присвоить номер длиннее пяти цифр, например 0 1 2 2 3 3.
C Детали поиска ограничений
При поиске и выполнении сквозных заданий агента мы используем ограниченный поиск в связке, чтобы ограничить генерируемые операции допустимыми токенами инструментов. Подробно шаги описаны в алгоритме 1. Основная идея заключается в ограничении пространства поиска на этапе поиска в связке. Для этого мы сначала строим дерево словарей, в котором каждый узел представляет ID токена инструмента, а дочерние узлы - все выполнимые ID, следующие за текущим ID. Используя это дерево, мы можем определить все возможные следующие ID токена на основе текущего искомого ID. логиты, заставляя возможные идентификаторы быть отобранными или перебранными.
Для поиска это ограничение может быть применено непосредственно во время генерации. Для сквозной задачи агента, поскольку мы декомпозируем шаг рассуждения на три раунда диалога, мы можем легко определить, когда ToolGen должен сгенерировать действие, и, следовательно, применить ограничение. На рисунке 6 показан пример сквозного рассуждения для ToolGen, когда у ToolGen нет ассоциированного инструмента для выбора. Он может просто сгенерировать ToolToken и выполнить задачу.
Таблица 6: Статистика набора данных для трех этапов обучения. Для памяти инструментов есть несколько дубликатов, в результате чего размер выборки немного больше, чем количество использованных нами инструментов.
набор данных | память инструментов | Поисковое обучение | Комплексная настройка агентов | |||
---|---|---|---|---|---|---|
I1 | I2 | I3 | полный | |||
#num | 49,936 | 194,086 | 222,783 | 72,833 | 489,702 | 183,336 |
系统:您是一个 AutoGPT,能够利用众多工具和功能来完成给定的任务。
1. 首先,我会给您提供任务描述,您的任务将开始。
2. 在每一步中,您需要通过生成一个行动令牌来确定下一步行动。
3. 在令牌之后,您将收到与该令牌对应的行动文档。您需要生成该行动的输入,将您转移到一个新状态。随后,您将决定下一步,并重复此过程。
4. 在生成多个行动和输入的几次迭代后,您将最终完成任务并提供您的最终答案。
... ...
:我最近访问了 Viva City,菜单给我留下了深刻的印象。我想了解更多关于场馆 5a76c927bb5d660001e09731 的菜单项。您能提供菜单类别、价格、可用性、规则、套餐项及其他相关细节吗?请使用语言 'zh-hans' 来提供菜单详情。
:我需要调用 "<<Viva City Documentation&&MenuDetails>>" 函数以检索场馆 5a76c927bb5d660001e09731 的菜单详情。调用此函数的原因是为了向用户提供菜单类别、价格、可用性、规则、套餐项及其他相关细节。该函数的调用参数为 "lang" 设置为 "zh-hans" 和 "is_id" 设置为 "5a76c927bb5d660001e09731",以确保提供的菜单详情符合所需语言,并且是针对特定场馆。
:生成行动。
:<<Viva City Documentation&&MenuDetails>>
:请给出输入。以下是文档:{'name': '<<Viva City Documentation&&VenueDetails>>', 'description': '使用 KV 获取场馆详情(需要重新同步以获取最新数据),并根据查询参数过滤动态多语言数据。', 'required': [{'name': 'id', 'type': 'STRING', 'description': '', 'default': '56c467cb7b0d464811a42017'}, {'name': 'lang', 'type': 'STRING', 'description': '', 'default': 'zh-hans'}], 'optional': []}
:{\n "is_id": "5a76c927bb5d660001e09731",\n "lang": "zh-hans"\n}
:{'error': '', 'response': {'menu_id': '5a76c927bb5d660001e09731', 'language': 'zh-hans', 'menu_details': {'sections': [{'section_name': '开胃菜', 'items': [{'item_name': '春卷', 'description': '脆皮春卷,搭配特制酱汁', 'price': 12.99}, {'item_name': '鸡肉串', 'description': '香辣鸡肉串,外焦里嫩', 'price': 15.99}]}, {'section_name': '主菜', 'items': [{'item_name': '宫保鸡丁', 'description': '经典川菜,麻辣鲜香', 'price': 18.99}, {'item_name': '清蒸鲈鱼', 'description': '清新淡雅,营养健康', 'price': 22.99}]}], 'special_notes': '本菜单提供纯素选项,请告知服务员。'}}}
:场馆 5a76c927bb5d660001e09731 的菜单详情如下:\n- 菜单类别:中餐\n价格:\n - 项目 1:12.99 人民币\n - 项目 2:15.99 人民币\n - 项目 3:18.99 人民币\n - 项目 4:22.99 人民币\n可用性:\n - 项目 1:可用\n - 项目 2:可用\n - 项目 3:可用\n - 项目 4:可用\n- 规则:\n - 项目 1:未提及具体规则\n - 项目 2:未提及具体规则\n - 项目 3:未提及具体规则\n - 项目 4:未提及具体规则\n- 套餐项:\n - 项目 1:2份套餐\n - 项目 2:2份套餐\n - 项目 3:2份套餐\n - 项目 4:2份套餐\n- 其他相关细节:\n - 特别说明:菜单可能会更改,价格也可能会变动。请向场馆确认最新信息。\n\n请告诉我是否还有其他我可以帮助您的地方!
:生成行动。
:<<Finish>>
:请给出输入。以下是文档:{'required': [], 'optional': [{'name': 'give_answer', 'description': '输出答案', 'type': 'string'}, {'name': 'give_up_and_restart', 'description': '无法从此步骤处理任务', 'type': 'string'}]}
:{"return_type": "give_answer", "final_answer": "场馆 5a76c927bb5d660001e09731 的菜单详情如下:\n- 菜单类别:中餐\n- 价格:\n - 项目 1:12.99 人民币\n - 项目 2:15.99 人民币\n - 项目 3:18.99 人民币\n - 项目 4:22.99 人民币\n- 可用性:\n - 项目 1:可用\n - 项目 2:可用\n - 项目 3:可用\n - 项目 4:可用\n- 规则:\n - 项目 1:未提及具体规则\n - 项目 2:未提及具体规则\n - 项目 3:未提及具体规则\n - 项目 4:未提及具体规则\n- 套餐项:\n - 项目 1:2份套餐\n - 项目 2:2份套餐\n - 项目 3:2份套餐\n - 项目 4:2份套餐\n- 其他相关细节:\n - 特别说明:菜单可能会更改,价格也可能会变动。请向场馆确认最新信息。"}
Рисунок 6: Пример рассуждений с ToolGen. Сначала дается системная подсказка, без связанного с ней инструмента. Затем пользователь дает запрос на выполнение задачи, ToolGen генерирует мысль, а затем мы используем модель ролевой подсказки пользователя для генерации действия. После генерации действия мы снова используем пользователя для предоставления документа об инструменте. Модель генерирует входные данные инструмента на основе этой документации.
E Абляционный тест
В таблице 7 приведены результаты абляции для сквозной оценки. В случае невидимых инструкций ToolGen Agent работает немного лучше без обучения запоминанию и извлечению инструментов. Тем не менее, для неизвестных инструментов и SoPR, и SoWR снижаются без первых двух этапов обучения. Это говорит о том, что первые два этапа обучения играют роль в способности ToolGen к обобщению, а обучение извлечению информации важнее, чем запоминание инструментов.
Таблица 7: Результаты сквозной оценки ToolGen. Здесь Inst. представляет невидимые запросы (команды), а Tool. и Cat. представляют инструменты, которые не были замечены во время обучения.
моделирование | SoPR | SoWR | ||||||
---|---|---|---|---|---|---|---|---|
I1-Inst. | I2-Inst. | I3-Inst. | Avg. | I1-Inst. | I2-Inst. | I3-Inst. | Avg. | |
ToolGen | 54.60 | 52.36 | 43.44 | 51.82 | 50.31 | 54.72 | 26.23 | 47.28 |
без обучения поиску | 56.95 | 46.70 | 50.27 | 52.42 | 49.69 | 50.94 | 34.43 | 47.27 |
без запоминания | 56.03 | 47.96 | 57.38 | 53.69 | 49.08 | 59.43 | 34.43 | 49.70 |
I1-Tool. | I1-Cat. | I2 Cat. | Avg. | I1-Tool | I1-Cat. | I2 Cat. | Avg. | |
ToolGen | 56.54 | 49.46 | 51.96 | 52.66 | 40.51 | 39.87 | 37.90 | 39.53 |
без обучения поиску | 49.47 | 40.31 | 37.90 | 42.84 | 36.71 | 30.07 | 36.29 | 34.18 |
без запоминания | 58.86 | 46.19 | 49.87 | 51.70 | 37.34 | 38.56 | 42.74 | 39.32 |
F Способность к обобщению
Для ToolGen Agent мы измеряем производительность модели на необученных запросах к инструментам. В табл. 8 показана сквозная оценка модели на необученных инструментах. Производительность ToolGen Agent ниже, чем ToolLlama, что также свидетельствует о плохом обобщении при выполнении полной задачи. Проблема обобщения широко распространена в генеративном поиске и выходит за рамки данной статьи. Поэтому мы оставляем ее для будущих исследований.
Таблица 8: Результаты обобщения для ToolGen. Мы протестировали и сравнили производительность ToolGen с другими моделями на запросах, в которых требовались невидимые инструменты во время обучения.
моделирование | устанавливать | SoPR | SoWR | ||||||
---|---|---|---|---|---|---|---|---|---|
I1-Tool. | I1-Cat. | I2 Cat. | Avg. | I1-Tool | I1-Cat. | I2 Cat. | Avg | ||
GPT-3.5 | GT. | 58.90 | 60.70 | 54.60 | 58.07 | - | - | - | - |
ToolLlama | GT. | 57.38 | 58.61 | 56.85 | 57.68 | 43.04 | 50.31 | 54.84 | 49.04 |
ToolGen | GT. | 52.32 | 40.46 | 39.65 | 47.67 | 39.24 | 38.56 | 40.32 | 39.30 |
GPT-3.5 | получить (данные) | 57.59 | 53.05 | 46.51 | 52.78 | 46.20 | 54.25 | 54.81 | 51.58 |
ToolLlama | получить (данные) | 57.70 | 61.76 | 45.43 | 54.96 | 48.73 | 50.98 | 44.35 | 48.30 |
ToolGen | 56.54 | 49.46 | 51.96 | 52.66 | 40.51 | 39.87 | 37.90 | 39.53 |
Адаптация данных ToolBench для ToolGen
Наши данные ToolGen адаптированы и преобразованы из данных ToolBench. В частности, мы используем документы об инструментах в качестве данных для обучения памяти инструментов, где входными данными являются документы об инструментах, а выходными - соответствующие Token.
Для обучения поиску мы используем данные, аннотированные для поиска инструментов в ToolBench, где запрос аннотируется несколькими связанными инструментами. Мы принимаем запрос в качестве входных данных и преобразуем соответствующие инструменты в виртуальные лексемы, которые затем используются в качестве выходных данных для обучения поиску.
Для сквозной настройки смарт-тела мы используем траектории взаимодействия в качестве источника со следующими преобразованиями: (1) Каждая траектория содержит доступные инструменты из системных подсказок, которые могут быть использованы для решения запросов. При выполнении задачи ToolLlama полагается на инструменты, извлеченные из системных подсказок, для решения задачи, в то время как ToolGen может генерировать инструменты напрямую. Поэтому мы удаляем инструменты из системных подсказок. (2) Мы заменяем все названия инструментов в траектории соответствующим виртуальным инструментом Token. (3) В исходной траектории модель интеллектуального тела последовательно генерирует мысли, действия и входные данные (также известные как ReAct). Мы декомпозируем весь ReAct на три раунда диалога. В первом раунде модель интеллектуального тела генерирует мысль, а пользователь побуждает модель к действию. Во втором раунде модель генерирует действия, то есть виртуальные маркеры инструментов, а затем мы получаем документы, соответствующие этим маркерам, чтобы модель знала, какие параметры нужно указать. В третьем раунде модель генерирует параметры для инструмента.
Количество образцов в каждом наборе данных приведено в таблице 6. Образцы для обучения запоминанию и извлечению инструментов показаны на рис. 7. Образцы для сквозной настройки интеллекта показаны на рис. 8.
# 工具记忆
用户: 工具名称:泰国驾驶执照 OCR。工具描述:提取泰国驾驶执照上的信息并返回文本结果,例如驾驶执照号码和个人信息。API 名称:驾驶执照 API 描述:提取泰国驾驶执照上的信息并返回文本结果,例如驾驶执照号码和个人信息。
助手: <<Thai Drivers License OCRDriver's License>>
# 检索训练
用户: 我和我的朋友正在组织一个关于“网页开发”和“移动应用开发”的黑客马拉松。我们需要一些灵感和指导。你能从 Medium.com 获取这些主题的热门故事吗?
助手: <<Medium&&/search/topics>>

Рис. 7: Пример набора данных для обучения запоминанию и извлечению инструментов. Мы используем роли пользователей для представления входов и роли помощников для представления выходов.
# 端到端代理调优
系统:
您是一个 AutoGPT,能够利用众多工具和功能来完成给定的任务。
1. 首先,我会提供给您任务描述,您的任务将开始。
2. 在每一步中,您需要通过生成一个操作 Token 来确定下一步行动。
3. 在 Token 之后,您将收到与该 Token 对应的操作文档。您需要生成操作的输入,帮助您转到新的状态。随后,您将对下一步进行决策,并重复此过程。
4. 在生成多个操作和输入的若干次迭代后,您最终将完成任务并提供您的最终答案。
记住:
1. 状态变化是不可逆的,您无法返回到之前的状态。
2. 保持您的操作简洁,限制在最适合当前查询的范围内。
3. 您可以进行多次尝试。如果您计划不断尝试不同的条件,请每次尝试一个条件。
4. 如果您认为您已经收集了足够的信息,请生成操作 "<<Finish>> with argument give_answer",以提供您对该任务的答案。
5. 如果您觉得在这一步无法处理任务,请生成操作 "<<Finish>> with argument give_up_and_restart"。
让我们开始吧!
任务描述:您应该使用操作来处理实时用户查询。记住:
1. 在任务结束时始终生成 "<<Finish>>"。最终答案应包含足够的信息以展示给用户。如果您无法处理任务,或者发现操作总是失败(该功能当前无效),请使用操作 <<Finish>> with give_up_and_restart。
2. 仅生成操作和输入。
用户:
您能否获取邮政编码 'PL11DN' 的地址?我想知道找到的项目数量、区、分区、县、国家以及地理编码详情(东向、北向、纬度和经度)。
开始!
助手:
根据用户的查询,他们想获取邮政编码 'PL11DN' 的地址,并检索特定详情,如找到的项目数量、区、分区、县、国家以及地理编码详情。当前的 API 调用是针对函数 'find_by_postcode',参数 'postcode' 设置为 'PL11DN'。此 API 很有用,因为它可以根据给定的英国邮政编码提供地址。通过使用此 API,我将能够为用户的查询检索所需的信息。
用户:
生成操作。
助手:
<<Find By PostCode&&Find By PostCode>>
用户:
请给出输入。这是文档:{'name': '<<Find By PostCode&&Find By PostCode>>', 'description': '“Find By PostCode” API 根据给定的英国邮政编码获取地址。此 API 提供 JSON 接口以搜索英国邮政编码的地址。', 'required': [{'name': 'postcode', 'type': 'string', 'description': '', 'default': 'PL11DN'}], 'optional': []}
助手:
{
"postcode": "PL11DN"
}
工具:
{"error": "", "response": "{'status': 200, 'message': '成功', 'noOfItems': 37, 'result': {'postcode': 'PL1 1DN', 'district': '普利茅斯', 'ward': '圣彼得和海滨', 'county': '德文', 'country': '英格兰', 'geocode': {'eastings': '248025', 'northings': '0054420', 'lattitude': '50.370001', 'longitude': '-4.138397'}, 'addresses': [{'po_box': '', 'line_2': '', 'postcode_type': 'S', 'line_3': '', 'su_organisation_indicator': ' ', 'building_number': '5', 'udprn': '18911184', 'thoroughfare': '圣安德鲁十字', 'line_1': '5 圣安德鲁十字', 'postcode_outcode': 'PL1', 'postcode_compact': 'PL11DN', 'dependant_thoroughfare': '', 'premise': '5', 'post_town': '普利茅斯', 'building_name': '', 'organisation_name': '', 'postcode': 'PL1 1DN', 'department_name': '', 'postcode_incode': '1DN', 'address': '5 圣安德鲁十字, 普利茅斯, PL1 1DN', 'double_dependant_locality': '', 'sub_building_name': '', 'dependant_locality': '', 'delivery_point_suffix': '4T'}, {'po_box': '', 'line_2': '2 圣安德鲁十字', 'p...
用户:
生成操作。
助手:
<<Finish>>
用户:
请给出输入。这是文档:{'required': [], 'optional': [{'name': 'give_answer', 'description': '输出答案', 'type': 'string'}, {'name': 'give_up_and_restart', 'description': '无法处理此步骤的任务', 'type': 'string'}]}
助手:
{
"return_type": "give_answer",
"final_answer": "找到的项目数量:37\n区:普利茅斯\n分区:圣彼得和海滨\n县:德文\n国家:英格兰\n地理编码详情:\n- 东向:248025\n- 北向:0054420\n- 纬度:50.370001\n经度:-4.138397"
}
! [[Вставленное изображение 20241027190429.png]]
Рисунок 8: Пример сквозной настройки агента.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...