Romper el cuello de botella de la llamada a herramientas: el marco CoTools permite a los grandes modelos lingüísticos utilizar de forma eficiente cantidades masivas de herramientas.
Base de conocimientos de IAActualizado hace 4 meses Círculo de intercambio de inteligencia artificial 1.4K 00
introducción
En los últimos años, los grandes modelos lingüísticos (LLM) han experimentado un impresionante avance en el campo de la Inteligencia Artificial, y sus potentes capacidades de comprensión y generación de lenguaje han dado lugar a una amplia gama de aplicaciones en diversos dominios. Sin embargo, los LLM siguen enfrentándose a muchos retos cuando se enfrentan a tareas complejas que requieren la invocación de herramientas externas. Por ejemplo, cuando un usuario pregunta "¿Qué tiempo hará mañana en mi destino?". los LLM necesitan poder llamar a la API meteorológica para obtener información precisa.
Para hacer frente a este problema, los investigadores han propuesto diversos métodos de aprendizaje de herramientas destinados a permitir que los LLM utilicen herramientas externas de forma más eficaz. Sin embargo, los métodos existentes suelen adolecer de las siguientes limitaciones:
- Enfoque basado en el ajuste finoEl modelo debe ajustarse para que sólo pueda utilizar herramientas que se hayan visto en los datos de entrenamiento. Este enfoque, aunque mejora la precisión de las llamadas a herramientas, puede limitar la capacidad del modelo para generalizar a herramientas no vistas.
- Enfoque de aprendizaje basado en el contexto (ICL)No es necesario afinar el modelo y las herramientas pueden invocarse añadiendo una demostración de herramienta a la consulta. Sin embargo, la eficacia de razonamiento de este enfoque disminuye significativamente cuando se enfrenta a un gran número de herramientas.
CoTools: un marco más eficaz para el aprendizaje de herramientas
Para superar estos retos, un equipo de investigadores de la Universidad de Soochow ha desarrollado una nueva tecnología llamada CoTools de un novedoso marco de aprendizaje de herramientas. El objetivo principal del marco es lograr la invocación eficiente de un gran número de herramientas desconocidas sin sacrificar la capacidad de generalizar el modelo.
Cómo funciona CoTools
La idea central de CoTools es hacer uso de la potente capacidad de representación semántica del modelo de lenguaje congelado para determinar dinámicamente si es necesario invocar una herramienta durante el proceso de razonamiento, y seleccionar la herramienta más adecuada. Su proceso principal es el siguiente:
- evaluación de herramientas::
- importación: La pregunta del usuario y el fragmento de respuesta actual generado por el modelo.
- desarrollo de los acontecimientos: CoTools analiza la información semántica del fragmento de respuesta actual y determina si es necesaria una llamada a la herramienta para completar la información. Por ejemplo, cuando un usuario pregunta por el tiempo, el modelo reconoce que es necesaria una llamada a la API meteorológica.
- exportaciones: Un resultado de juicio que determina si se activa una llamada a la herramienta.
- búsqueda de herramientas::
- importación: Preguntas de los usuarios y resultados de los juicios.
- desarrollo de los acontecimientosSi es necesario invocar una herramienta, CoTools recupera la más adecuada del conjunto de herramientas basándose en la descripción del problema. El conjunto de herramientas puede contener un gran número de herramientas desconocidas, y CoTools evalúa su relevancia para el problema analizando la información de la descripción de la herramienta.
- exportacionesHerramientas seleccionadas.
- Llamada a la herramienta::
- importación: Cuestiones relativas a determinadas herramientas y usuarios.
- desarrollo de los acontecimientos: CoTools utiliza indicaciones de aprendizaje contextual para generar los parámetros de la herramienta, ejecutar la herramienta y obtener los resultados.
- exportaciones: Los resultados devueltos por la herramienta se añaden a la respuesta.
Figura 1: Diagrama de flujo del método CoTools.
La ventaja de CoTools
- Uso eficaz de las herramientas invisiblesCoTools: CoTools no se basa en el preentrenamiento de las herramientas, sino que las selecciona dinámicamente analizando sus descripciones. Esto le da flexibilidad para llamar a un gran número de herramientas desconocidas.
- Mantener las capacidades originales del modelo: Dado que el modelo lingüístico está congelado, CoTools no afecta a la capacidad del modelo para generalizar y razonar.
- Mejorar la interpretabilidad de los modelosCoTools puede ayudar a los investigadores a comprender mejor el proceso de selección de herramientas analizando las dimensiones clave de los resultados de los modelos.
Resultados
Para comprobar la eficacia de CoTools, el equipo de investigación realizó varios experimentos:
- tarea de razonamiento numéricoCoTools: utilizando los conjuntos de datos GSM8K-XL y FuncQA, CoTools obtiene buenos resultados tanto en problemas de un solo salto como de varios saltos.
- tareas de cuestionarioCoTools: Utilizando los conjuntos de datos KAMEL y SimpleToolQuestions (STQuestions), CoTools obtiene buenos resultados en un gran número de escenarios de herramientas y muestra una buena generalización a herramientas no vistas.
A continuación se muestran los resultados de CoTools comparados con otros métodos en los conjuntos de datos KAMEL y STQuestions:
metodologías | KAMEL SUP | KAMEL SYN | STQuestions Visto | STQuestions Invisibles |
---|---|---|---|---|
ToolkenGPT LLaMA | 93.4 | 20.6 | 23.8 | 0.0 |
CoTools (Nuestro) LLaMA | 93.8 | 43.6 | 35.1 | 10.4 |
llegar a un veredicto
CoTools proporciona un marco de aprendizaje de herramientas más eficaz y flexible que permite invocar de forma eficiente un gran número de herramientas no vistas sin sacrificar la capacidad de generalización del modelo. El planteamiento abre nuevas posibilidades para la aplicación de grandes modelos lingüísticos en escenarios más complejos del mundo real.
perspectivas de futuro
A pesar de los alentadores resultados de CoTools, los investigadores también señalaron que la investigación actual sobre el aprendizaje de herramientas LLM está aún en sus primeras fases. En el futuro, el equipo de CoTools tiene previsto:
- Descubra cómo manejar herramientas que contienen múltiples valores de retorno.
- Pruebe el rendimiento de CoTools en conjuntos de herramientas reales más grandes y complejos.
Ejemplo de pregunta
La idea central de CoTools es aprovechar la potente comprensión semántica del modelo de lenguaje congelado para determinar dinámicamente si es necesario invocar una herramienta durante el proceso de razonamiento y seleccionar la herramienta más adecuada para realizar la tarea. A continuación se presentará en detalle el flujo de trabajo de CoTools y se ofrecerán ejemplos detallados de Prompt para ayudar a los lectores a comprender mejor las entradas y salidas de cada paso.
#### 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 通过精细化的流程设计和强大的语义理解能力,实现了在复杂任务中对外部工具的高效调用。该框架不仅能够处理常见工具,还能灵活应对未见过的工具,为大型语言模型在现实场景中的应用提供了新的可能性。
Con estas indicaciones, CoTools puede determinar dinámicamente si es necesario invocar una herramienta en función de la pregunta del usuario y el fragmento de respuesta actual, y seleccionar la herramienta más adecuada para obtener la información requerida.
Original: https://arxiv.org/pdf/2503.16779
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...