Briser le goulot d'étranglement de l'appel d'outils : le cadre CoTools permet aux grands modèles linguistiques d'utiliser efficacement des quantités massives d'outils

introductif

Ces dernières années, les grands modèles de langage (LLM) ont fait des progrès impressionnants dans le domaine de l'intelligence artificielle, et leurs puissantes capacités de compréhension et de génération de langage ont conduit à un large éventail d'applications dans plusieurs domaines. Cependant, les LLM sont encore confrontés à de nombreux défis lorsqu'ils traitent des tâches complexes qui nécessitent l'invocation d'outils externes. Par exemple, lorsqu'un utilisateur demande "Quel temps fera-t-il demain à ma destination ?" les LLM doivent être en mesure d'appeler l'API météo pour obtenir des informations précises.

Pour résoudre ce problème, les chercheurs ont proposé une variété de méthodes d'apprentissage d'outils visant à permettre aux MFR d'utiliser des outils externes de manière plus efficace. Cependant, les méthodes existantes souffrent souvent des limitations suivantes :

  • Approche basée sur le réglage finLe modèle doit être affiné de manière à n'utiliser que les outils qui ont été vus dans les données d'apprentissage. Cette approche, tout en améliorant la précision des appels d'outils, peut limiter la capacité du modèle à se généraliser à des outils non vus.
  • Approche de l'apprentissage en contexte (ICL)Il n'est pas nécessaire d'affiner le modèle et les outils peuvent être invoqués en ajoutant une démonstration d'outil à l'invite. Cependant, l'efficacité du raisonnement de cette approche diminue considérablement lorsqu'elle est confrontée à un grand nombre d'outils.

CoTools : un cadre plus efficace pour l'apprentissage des outils

Pour surmonter ces difficultés, une équipe de chercheurs de l'université de Soochow a mis au point une nouvelle technologie appelée CoTools d'un nouveau cadre d'apprentissage des outils. L'objectif principal de ce cadre est de permettre l'invocation efficace d'un grand nombre d'outils inconnus sans sacrifier la capacité à généraliser le modèle.

Comment fonctionne CoTools

L'idée centrale de CoTools est d'utiliser la puissante capacité de représentation sémantique du modèle de langage figé pour déterminer dynamiquement s'il est nécessaire d'invoquer un outil au cours du processus de raisonnement, et de sélectionner l'outil le plus approprié. Le processus principal est le suivant :

  1. jugement de l'outil: :
    • importationLa question de l'utilisateur et l'extrait de réponse actuel généré par le modèle.
    • déroulement des événementsCoTools : CoTools analyse les informations sémantiques du fragment de réponse actuel et détermine si un appel à l'outil est nécessaire pour compléter l'information. Par exemple, lorsqu'un utilisateur demande le temps qu'il fait, le modèle reconnaît qu'un appel à l'API météo est nécessaire.
    • exportationsRésultat d'un jugement qui détermine s'il y a lieu de déclencher un appel à l'outil.
  2. recherche d'outils: :
    • importationQuestions de l'utilisateur et résultats de l'évaluation.
    • déroulement des événementsSi un outil doit être invoqué, CoTools récupère l'outil le plus approprié dans la réserve d'outils sur la base de la description du problème. La réserve d'outils peut contenir un grand nombre d'outils inédits, et CoTools évalue leur pertinence par rapport au problème en analysant les informations de description de l'outil.
    • exportations: Outils sélectionnés.
  3. Appel d'outil: :
    • importation: Questions relatives à des outils et des utilisateurs sélectionnés.
    • déroulement des événementsCoTools : CoTools utilise des invites d'apprentissage contextuel pour générer les paramètres de l'outil, exécuter l'outil et obtenir les résultats.
    • exportationsLes résultats renvoyés par l'outil sont ajoutés à la réponse.

    突破工具调用瓶颈:CoTools 框架助力大型语言模型高效利用海量工具
    Figure 1 : Organigramme de la méthode CoTools.

L'avantage CoTools

  • Utilisation efficace d'outils invisiblesCoTools : CoTools ne s'appuie pas sur un préapprentissage des outils, mais sélectionne dynamiquement les outils en analysant leurs descriptions. Cela lui donne la flexibilité nécessaire pour appeler un grand nombre d'outils inconnus.
  • Maintien des capacités initiales du modèleLe modèle linguistique étant figé, CoTools n'affecte pas la capacité du modèle à généraliser et à raisonner.
  • Améliorer l'interprétabilité des modèlesCoTools : En analysant les dimensions clés des résultats des modèles, CoTools peut aider les chercheurs à mieux comprendre le processus de sélection des outils.

Résultats

Pour vérifier l'efficacité de CoTools, l'équipe de recherche a mené plusieurs expériences :

  • tâche de raisonnement numériqueLes résultats de l'étude sont les suivants : en utilisant les ensembles de données GSM8K-XL et FuncQA, CoTools donne de bons résultats pour les problèmes à un seul saut et à plusieurs sauts.
  • tâches d'interrogationLes résultats de l'étude sont les suivants : en utilisant les ensembles de données KAMEL et SimpleToolQuestions (STQuestions), CoTools donne de bons résultats dans un grand nombre de scénarios d'outils et fait preuve d'une bonne généralisation pour des outils inédits.

Les résultats de CoTools comparés à d'autres méthodes sur les ensembles de données KAMEL et STQuestions sont présentés ci-dessous :

les méthodologiesKAMEL SUPKAMEL SYNSTQuestions VuesSTQuestions Unseen
ToolkenGPT LLaMA93.420.623.80.0
CoTools (les nôtres) LLaMA93.843.635.110.4

rendre un verdict

CoTools fournit un cadre d'apprentissage d'outils plus efficace et plus flexible qui permet l'invocation efficace d'un grand nombre d'outils inconnus sans sacrifier les capacités de généralisation du modèle. Cette approche ouvre de nouvelles perspectives pour l'application de grands modèles linguistiques dans des scénarios réels plus complexes.

perspectives d'avenir

Malgré les résultats encourageants de CoTools, les chercheurs ont également noté que la recherche actuelle sur l'apprentissage des outils LLM n'en est qu'à ses débuts. À l'avenir, l'équipe CoTools prévoit de.. :

  • Découvrez comment gérer les outils qui contiennent plusieurs valeurs de retour.
  • Tester les performances de CoTools sur des ensembles d'outils réels plus importants et plus complexes.

Exemple d'invite

L'idée centrale de CoTools est de tirer parti de la puissante compréhension sémantique du modèle de langage figé pour déterminer de manière dynamique si un outil doit être invoqué au cours du processus de raisonnement et sélectionner l'outil le plus approprié pour effectuer la tâche. Les paragraphes suivants présentent en détail le flux de travail de CoTools et fournissent des exemples détaillés d'invites afin d'aider les lecteurs à mieux comprendre les entrées et les sorties de chaque étape.

#### 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 通过精细化的流程设计和强大的语义理解能力,实现了在复杂任务中对外部工具的高效调用。该框架不仅能够处理常见工具,还能灵活应对未见过的工具,为大型语言模型在现实场景中的应用提供了新的可能性。

Grâce à ces invites, CoTools peut déterminer de manière dynamique si un outil doit être invoqué en fonction de la question de l'utilisateur et de l'extrait de réponse actuel, et sélectionner l'outil le plus approprié pour obtenir les informations requises.

 

Original : https://arxiv.org/pdf/2503.16779

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...