Преодоление узкого места вызова инструментов: CoTools Framework позволяет большим языковым моделям эффективно использовать большое количество инструментов
вводная
В последние годы большие языковые модели (LLM) добились впечатляющего прогресса в области искусственного интеллекта, а их мощные возможности по пониманию и генерации языка нашли широкое применение в различных областях. Тем не менее, LLM по-прежнему сталкиваются с множеством проблем при решении сложных задач, требующих обращения к внешним инструментам. Например, когда пользователь спрашивает: "Какая погода будет завтра в пункте назначения?". LLM должны уметь вызывать API погоды, чтобы получить точную информацию.
Для решения этой проблемы исследователи предложили множество методов изучения инструментов, направленных на то, чтобы дать возможность LLM более эффективно использовать внешние инструменты. Однако существующие методы часто страдают от следующих недостатков:
- Подход, основанный на точной настройке: Модель должна быть настроена таким образом, чтобы она могла использовать только те инструменты, которые были замечены в обучающих данных. Такой подход, хотя и повышает точность вызова инструментов, может ограничить способность модели к обобщению на невидимые инструменты.
- Контекстно-ориентированное обучение (ICL): Нет необходимости в тонкой настройке модели, а инструменты можно вызвать, добавив в подсказку демонстрацию инструмента. Однако эффективность такого подхода значительно снижается при работе с большим количеством инструментов.
CoTools: более эффективная структура для обучения инструментам
Чтобы преодолеть эти трудности, группа исследователей из Университета Сучоу разработала новую технологию под названием CoTools Новая система обучения инструментам. Основная цель фреймворка - обеспечить эффективный вызов большого количества неизвестных инструментов без ущерба для способности обобщать модель.
Как работает CoTools
Основная идея CoTools заключается в использовании мощных возможностей семантического представления замороженной языковой модели для динамического определения необходимости вызова инструмента в процессе рассуждения и выбора наиболее подходящего инструмента. Основной процесс работы CoTools заключается в следующем:
- суждение об инструменте::
- импорт: Вопрос пользователя и текущий фрагмент ответа, сгенерированный моделью.
- ход событий: CoTools анализирует семантическую информацию текущего фрагмента ответа и определяет, требуется ли обращение к инструменту для дополнения информации. Например, когда пользователь спрашивает о погоде, модель распознает, что требуется вызов API погоды.
- экспорт: Результат суждения, определяющий, следует ли запускать вызов инструмента.
- поиск инструментов::
- импорт: Вопросы пользователей и результаты суждений.
- ход событий: Если необходимо вызвать инструмент, CoTools извлекает наиболее подходящий инструмент из пула инструментов на основе описания проблемы. Пул инструментов может содержать большое количество невидимых инструментов, и CoTools оценивает их релевантность проблеме, анализируя информацию об описании инструмента.
- экспорт: Избранные инструменты.
- Вызов инструмента::
- импортВопросы для отдельных инструментов и пользователей.
- ход событийCoTools использует контекстные обучающие подсказки для создания параметров инструмента, его выполнения и получения результатов.
- экспорт: Результаты, возвращенные инструментом, добавляются к ответу.
Рисунок 1: Блок-схема метода CoTools.
Преимущество CoTools
- Эффективное использование невидимых инструментовCoTools не полагается на предварительное обучение инструментов, а динамически выбирает инструменты, анализируя их описания. Это дает ему возможность вызывать большое количество неизвестных инструментов.
- Сохранение первоначальных возможностей модели: Поскольку языковая модель заморожена, CoTools не влияет на способность модели к обобщению и рассуждениям.
- Повышение интерпретируемости моделей: Анализируя ключевые параметры выходных данных модели, CoTools может помочь исследователям лучше понять процесс выбора инструмента.
Результаты
Чтобы убедиться в эффективности CoTools, исследовательская группа провела несколько экспериментов, в том числе:
- задача на числовые рассуждения: Используя наборы данных GSM8K-XL и FuncQA, CoTools демонстрирует хорошие результаты как в одноходовых, так и в многоходовых задачах.
- контрольные задания: Используя наборы данных KAMEL и SimpleToolQuestions (STQuestions), CoTools показывает хорошие результаты в большом количестве сценариев использования инструментов и демонстрирует хорошую обобщенность на неизвестные инструменты.
Ниже приведены результаты сравнения CoTools с другими методами на наборах данных KAMEL и STQuestions:
методологии | KAMEL SUP | КАМЕЛЬ СИН | STQuestions Seen | STQuestions Unseen |
---|---|---|---|---|
ToolkenGPT LLaMA | 93.4 | 20.6 | 23.8 | 0.0 |
CoTools (наши) LLaMA | 93.8 | 43.6 | 35.1 | 10.4 |
вынести вердикт
CoTools предоставляет более эффективную и гибкую структуру обучения инструментам, которая позволяет эффективно вызывать большое количество неизвестных инструментов без ущерба для обобщения модели. Этот подход открывает новые возможности для применения больших языковых моделей в более сложных реальных сценариях.
прогноз на будущее
Несмотря на обнадеживающие результаты работы CoTools, исследователи также отметили, что текущие исследования в области изучения инструментов LLM все еще находятся на ранней стадии. В будущем команда CoTools планирует:
- Узнайте, как работать с инструментами, содержащими несколько возвращаемых значений.
- Проверьте производительность CoTools на более крупных и сложных наборах инструментов реального мира.
Пример подсказки
Основная идея CoTools - использовать преимущества мощного семантического понимания замороженной языковой модели для динамического определения необходимости вызова инструмента в процессе рассуждения и выбора наиболее подходящего инструмента для выполнения задачи. Далее мы подробно представим рабочий процесс CoTools и приведем подробные примеры Prompt, чтобы помочь читателям лучше понять входные и выходные данные каждого этапа.
#### 1. 初始输入与预处理
- **输入**:
- **用户问题**:例如,“明天我目的地的天气如何?”
- **上下文信息**(如果有):例如,之前对话的上下文或用户的位置信息。
- **处理**:
- **问题解析**:将用户问题进行预处理,包括分词、去除停用词等。
- **上下文整合**:将上下文信息与用户问题整合,形成完整的输入序列。
- **输出**:
- **预处理后的输入序列**:例如,“[CLS] 明天 我 目的地 的 天气 如何? [SEP] 北京”
#### 2. 工具判断
- **输入**:
- **预处理后的输入序列**。
- **处理**:
- **语义分析**:CoTools 使用冻结语言模型生成输入序列的隐藏状态,并利用工具判断器(Tool Judge)分析这些隐藏状态,以确定是否需要调用工具。
- **工具判断器**:
- **计算公式**(简化版):
```
Score_I = 工具判断器(隐藏状态)
```
- **决策逻辑**:
- 如果 $Score_I$ 超过预设阈值(通常为 0.5),则触发工具调用。
- 否则,继续生成答案文本。
- **输出**:
- **判断结果**:
- **调用工具**:例如,“需要调用天气 API”。
- **无需调用工具**:继续生成答案。
#### 3. 工具检索
- **输入**:
- **判断结果**:例如,“需要调用天气 API”。
- **用户问题**:例如,“明天我目的地的天气如何?”
- **处理**:
- **工具池检索**:CoTools 使用工具检索器(Tool Retriever)从工具池中检索最合适的工具。
- **工具检索器**:
- **查询向量计算**:将用户问题转换为向量表示。
- **工具向量计算**:将工具池中的每个工具描述转换为向量表示。
- **相似度计算**:计算查询向量与每个工具向量的相似度得分,得分最高的工具即为最合适的工具。
- **工具池示例**:
```
1. 天气 API:提供指定地点的天气信息。
2. 地图 API:提供指定地点的地图信息。
3. 翻译工具:提供文本翻译服务。
```
- **输出**:
- **选定的工具**:例如,“天气 API”。
#### 4. 工具调用
- **输入**:
- **选定的工具**:例如,“天气 API”。
- **用户问题**:例如,“明天我目的地的天气如何?”
- **处理**:
- **参数生成**:使用上下文学习提示(ICL Prompt)生成工具调用所需的参数。
- **示例提示**:
```
[用户问题]
[当前答案片段(如果有)]
请调用以下工具并生成调用参数:
工具名称:天气 API
工具描述:提供指定地点的天气信息。
```
- **工具执行**:将生成的参数传递给工具,执行工具并获取返回结果。
- **输出**:
- **工具返回结果**:例如,“北京的天气情况:晴天,气温 25°C”。
#### 5. 答案生成
- **输入**:
- **工具返回结果**:例如,“北京的天气情况:晴天,气温 25°C”。
- **用户问题**:例如,“明天我目的地的天气如何?”
- **处理**:
- **答案整合**:将工具返回结果整合到答案中,生成最终回答。
- **输出**:
- **最终回答**:
```
明天北京的天气情况是晴天,气温 25°C。
```
### 详细的 Prompt 示例
以下是一个更详细的 Prompt 示例,展示了 CoTools 在每个流程节点的具体操作:
用户问题:明天我目的地的天气如何?
初始输入序列:
[CLS] 明天 我 目的地 的 天气 如何? [SEP] 北京
工具判断:
输入:预处理后的输入序列
处理:
语义分析:生成隐藏状态并计算 Score_I
决策:Score_I > 0.5,触发工具调用
输出:需要调用天气 API
工具检索:
输入:用户问题和判断结果
处理:
查询向量计算:生成用户问题的向量表示
工具向量计算:生成工具池中每个工具的向量表示
相似度计算:计算相似度得分
输出:选定天气 API
工具调用:
输入:选定的工具和用户问题
处理:
参数生成:
[用户问题]
[当前答案片段(如果有)]
请调用以下工具并生成调用参数:
工具名称:天气 API
工具描述:提供指定地点的天气信息。
工具执行:调用天气 API 并获取返回结果
输出:北京的天气情况:晴天,气温 25°C
答案生成:
输入:工具返回结果和用户问题
处理:整合结果生成最终回答
输出:明天北京的天气情况是晴天,气温 25°C。
### 总结
CoTools 通过精细化的流程设计和强大的语义理解能力,实现了在复杂任务中对外部工具的高效调用。该框架不仅能够处理常见工具,还能灵活应对未见过的工具,为大型语言模型在现实场景中的应用提供了新的可能性。
С помощью таких подсказок CoTools может динамически определять необходимость вызова того или иного инструмента на основе вопроса пользователя и текущего фрагмента ответа и выбирать наиболее подходящий инструмент для получения необходимой информации.
Оригинал: https://arxiv.org/pdf/2503.16779
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...