Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

Eliminando o gargalo das chamadas de ferramentas: a estrutura CoTools permite que grandes modelos de linguagem utilizem eficientemente grandes quantidades de ferramentas

introdutório

Nos últimos anos, os modelos de linguagem grande (LLMs) fizeram um progresso impressionante no campo da inteligência artificial, e seus poderosos recursos de compreensão e geração de linguagem levaram a uma ampla gama de aplicações em vários domínios. No entanto, os LLMs ainda enfrentam muitos desafios ao lidar com tarefas complexas que exigem a invocação de ferramentas externas. Por exemplo, quando um usuário pergunta "Qual é o clima no meu destino amanhã?" Os LLMs precisam ser capazes de chamar a API de clima para obter informações precisas.

Para resolver esse problema, os pesquisadores propuseram uma variedade de métodos de aprendizagem de ferramentas com o objetivo de permitir que os LLMs utilizem ferramentas externas de forma mais eficaz. No entanto, os métodos existentes geralmente apresentam as seguintes limitações:

  • Abordagem baseada em ajuste finoO modelo precisa ser ajustado de modo que só possa usar ferramentas que tenham sido vistas nos dados de treinamento. Essa abordagem, embora melhore a precisão das chamadas de ferramentas, pode limitar a capacidade do modelo de generalizar para ferramentas não vistas.
  • Abordagem de aprendizagem baseada em contexto (ICL)Não há necessidade de ajustar o modelo e as ferramentas podem ser invocadas adicionando uma demonstração da ferramenta ao prompt. Entretanto, a eficiência do raciocínio dessa abordagem diminui significativamente quando confrontada com um grande número de ferramentas.

CoTools: uma estrutura mais eficiente para o aprendizado de ferramentas

Para superar esses desafios, uma equipe de pesquisadores da Universidade de Soochow desenvolveu uma nova tecnologia chamada CoTools de uma nova estrutura de aprendizado de ferramentas. O principal objetivo da estrutura é obter a invocação eficiente de um grande número de ferramentas não vistas sem sacrificar a capacidade de generalizar o modelo.

Como o CoTools funciona

A ideia central do CoTools é usar o poderoso recurso de representação semântica do modelo de linguagem congelada para determinar dinamicamente se é necessário invocar uma ferramenta durante o processo de raciocínio e selecionar a ferramenta mais adequada. Seu processo principal é o seguinte:

  1. avaliação de ferramentas::
    • importaçãoPergunta: A pergunta do usuário e o trecho de resposta atual gerado pelo modelo.
    • curso dos acontecimentosO CoTools analisa as informações semânticas do fragmento da resposta atual e determina se é necessária uma chamada para a ferramenta para complementar as informações. Por exemplo, quando um usuário pergunta sobre o clima, o modelo reconhece que é necessária uma chamada para a API do clima.
    • exportaçõesResultado de uma avaliação que determina se deve ser acionada uma chamada de ferramenta.
  2. pesquisa de ferramentas::
    • importaçãoPerguntas dos usuários e resultados dos julgamentos.
    • curso dos acontecimentosSe for necessário chamar uma ferramenta, o CoTools recupera a ferramenta mais adequada do conjunto de ferramentas com base na descrição do problema. O conjunto de ferramentas pode conter um grande número de ferramentas não vistas, e o CoTools avalia sua relevância para o problema analisando as informações de descrição da ferramenta.
    • exportaçõesFerramentas selecionadas.
  3. Chamada de ferramenta::
    • importaçãoProblemas para ferramentas e usuários selecionados.
    • curso dos acontecimentosCoTools: usa prompts de aprendizado contextual para gerar os parâmetros da ferramenta, executar a ferramenta e obter os resultados.
    • exportaçõesResposta: Os resultados retornados pela ferramenta são adicionados à resposta.

    突破工具调用瓶颈:CoTools 框架助力大型语言模型高效利用海量工具-1
    Figura 1: Fluxograma do método CoTools.

A vantagem do CoTools

  • Uso eficiente de ferramentas invisíveisO CoTools não depende de pré-treinamento de ferramentas, mas seleciona dinamicamente as ferramentas analisando suas descrições. Isso lhe dá a flexibilidade de invocar um grande número de ferramentas não vistas.
  • Manutenção dos recursos originais do modeloComo o modelo de linguagem está congelado, o CoTools não afeta a capacidade de generalização e raciocínio do modelo.
  • Aprimoramento da capacidade de interpretação do modeloAnálise das principais dimensões do resultado do modelo: Ao analisar as principais dimensões do resultado do modelo, o CoTools pode ajudar os pesquisadores a entender melhor o processo de seleção de ferramentas.

Resultados

Para verificar a eficácia do CoTools, a equipe de pesquisa realizou vários experimentos, incluindo:

  • tarefa de raciocínio numérico: Usando os conjuntos de dados GSM8K-XL e FuncQA, o CoTools tem um bom desempenho em problemas de salto único e de vários saltos.
  • tarefas de questionamentoO CoTools apresenta bom desempenho em um grande número de cenários de ferramentas e mostra boa generalização para ferramentas não vistas.

Veja a seguir os resultados do CoTools em comparação com outros métodos nos conjuntos de dados KAMEL e STQuestions:

metodologias KAMEL SUP KAMEL SYN STQuestions Seen STQuestions Unseen
FerramentaGPT LLaMA 93.4 20.6 23.8 0.0
CoTools (nossas) LLaMA 93.8 43.6 35.1 10.4

chegar a um veredicto

O CoTools oferece uma estrutura de aprendizado de ferramentas mais eficiente e flexível que permite a invocação eficiente de um grande número de ferramentas não vistas sem sacrificar os recursos de generalização do modelo. A abordagem abre novas possibilidades para a aplicação de grandes modelos de linguagem em cenários mais complexos do mundo real.

perspectivas futuras

Apesar dos resultados animadores do CoTools, os pesquisadores também observaram que a pesquisa atual sobre o aprendizado de ferramentas de LLM ainda está em seus estágios iniciais. No futuro, a equipe do CoTools planeja:

  • Descubra como lidar com ferramentas que contêm vários valores de retorno.
  • Testar o desempenho do CoTools em conjuntos de ferramentas maiores e mais complexos do mundo real.

Exemplo de prompt

A ideia central do CoTools é aproveitar a poderosa compreensão semântica do modelo de linguagem congelada para determinar dinamicamente se uma ferramenta precisa ser chamada durante o processo de raciocínio e selecionar a ferramenta mais adequada para executar a tarefa. A seguir, apresentamos detalhadamente o fluxo de trabalho do CoTools e fornecemos exemplos detalhados do Prompt para ajudar os leitores a entender melhor as entradas e saídas de cada etapa.

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

Com esses prompts, o CoTools pode determinar dinamicamente se uma ferramenta precisa ser chamada com base na pergunta do usuário e no snippet de resposta atual, e selecionar a ferramenta mais adequada para obter as informações necessárias.


 

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

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Eliminando o gargalo das chamadas de ferramentas: a estrutura CoTools permite que grandes modelos de linguagem utilizem eficientemente grandes quantidades de ferramentas
pt_BRPortuguês do Brasil