AI Personal Learning
und praktische Anleitung
豆包Marscode1

Überwindung des Engpasses beim Aufruf von Werkzeugen: Das CoTools-Framework ermöglicht großen Sprachmodellen die effiziente Nutzung einer großen Anzahl von Werkzeugen

Einführung

In den letzten Jahren haben große Sprachmodelle (Large Language Models, LLMs) beeindruckende Fortschritte im Bereich der künstlichen Intelligenz gemacht, und ihre leistungsstarken Sprachverständnis- und -generierungsfähigkeiten haben zu einer breiten Palette von Anwendungen in verschiedenen Bereichen geführt. Allerdings stehen LLMs immer noch vor vielen Herausforderungen, wenn es um komplexe Aufgaben geht, die den Aufruf externer Tools erfordern. Wenn ein Benutzer zum Beispiel fragt: "Wie ist das Wetter an meinem Zielort morgen? LLMs müssen in der Lage sein, die Wetter-API aufzurufen, um genaue Informationen zu erhalten.

Um dieses Problem zu lösen, haben Forscher eine Reihe von Methoden zum Erlernen von Werkzeugen vorgeschlagen, die es LLMs ermöglichen sollen, externe Werkzeuge effektiver zu nutzen. Die bestehenden Methoden leiden jedoch häufig unter den folgenden Einschränkungen:

  • Auf Feinabstimmung basierender AnsatzDas Modell muss so fein abgestimmt werden, dass es nur Werkzeuge verwenden kann, die in den Trainingsdaten gesehen wurden. Dieser Ansatz verbessert zwar die Genauigkeit der Werkzeugaufrufe, kann aber die Fähigkeit des Modells zur Verallgemeinerung auf ungesehene Werkzeuge einschränken.
  • Konzept des kontextbezogenen Lernens (ICL)Es ist keine Feinabstimmung des Modells erforderlich, und die Werkzeuge können durch Hinzufügen einer Werkzeugdemo zur Eingabeaufforderung aufgerufen werden. Allerdings nimmt die Effizienz dieses Ansatzes erheblich ab, wenn eine große Anzahl von Werkzeugen zur Verfügung steht.

CoTools: ein effizienterer Rahmen für das Lernen von Werkzeugen

Um diese Herausforderungen zu bewältigen, hat ein Forscherteam der Universität Soochow eine neue Technologie entwickelt, die CoTools eines neuartigen Rahmens für das Lernen von Werkzeugen. Das Hauptziel des Rahmens besteht darin, eine große Anzahl von unbekannten Werkzeugen effizient aufzurufen, ohne die Fähigkeit zur Verallgemeinerung des Modells zu beeinträchtigen.

Wie CoTools funktioniert

Die Kernidee von CoTools besteht darin, die leistungsstarke semantische Darstellungsfähigkeit des eingefrorenen Sprachmodells zu nutzen, um dynamisch zu bestimmen, ob es notwendig ist, während des Argumentationsprozesses ein Werkzeug aufzurufen, und das am besten geeignete Werkzeug auszuwählen. Der Hauptprozess läuft wie folgt ab:

  1. Werkzeugbeurteilung::
    • EinfuhrDie Frage des Benutzers und der aktuelle, vom Modell generierte Antwortausschnitt.
    • Ablauf der EreignisseCoTools analysiert die semantischen Informationen des aktuellen Antwortfragments und stellt fest, ob ein Aufruf des Tools erforderlich ist, um die Informationen zu ergänzen. Wenn ein Nutzer beispielsweise nach dem Wetter fragt, erkennt das Modell, dass ein Aufruf der Wetter-API erforderlich ist.
    • AusfuhrenEin Beurteilungsergebnis, das bestimmt, ob ein Werkzeugaufruf ausgelöst wird.
  2. Werkzeugsuche::
    • Einfuhr: Benutzerfragen und Beurteilungsergebnisse.
    • Ablauf der EreignisseWenn ein Werkzeug aufgerufen werden muss, ruft CoTools auf der Grundlage der Problembeschreibung das am besten geeignete Werkzeug aus dem Werkzeugpool ab. Der Werkzeugpool kann eine große Anzahl ungesehener Werkzeuge enthalten, und CoTools bewertet deren Relevanz für das Problem, indem es die Informationen der Werkzeugbeschreibung analysiert.
    • Ausfuhren: Ausgewählte Tools.
  3. Werkzeug Aufruf::
    • EinfuhrProbleme für ausgewählte Werkzeuge und Benutzer.
    • Ablauf der EreignisseCoTools verwendet kontextbezogene Lernaufforderungen, um die Parameter des Werkzeugs zu erstellen, das Werkzeug auszuführen und die Ergebnisse zu erhalten.
    • AusfuhrenDie vom Tool zurückgegebenen Ergebnisse werden der Antwort hinzugefügt.

    突破工具调用瓶颈:CoTools 框架助力大型语言模型高效利用海量工具-1
    Abbildung 1: Flussdiagramm der CoTools-Methode.

Der CoTools-Vorteil

  • Effizienter Einsatz von unsichtbaren WerkzeugenCoTools verlässt sich nicht auf das Vortraining von Werkzeugen, sondern wählt die Werkzeuge dynamisch aus, indem es ihre Beschreibungen analysiert. Dies gibt ihm die Flexibilität, eine große Anzahl von unbekannten Werkzeugen aufzurufen.
  • Beibehaltung der ursprünglichen Fähigkeiten des ModellsDa das Sprachmodell eingefroren ist, beeinträchtigt CoTools nicht die Fähigkeit des Modells, zu verallgemeinern und Schlussfolgerungen zu ziehen.
  • Verbesserung der Interpretierbarkeit von ModellenDurch die Analyse der wichtigsten Dimensionen der Modellausgabe kann CoTools den Forschern helfen, den Prozess der Werkzeugauswahl besser zu verstehen.

Ergebnisse

Um die Wirksamkeit von CoTools zu überprüfen, führte das Forschungsteam mehrere Experimente durch, unter anderem:

  • Aufgabe zum ZahlenverständnisUnter Verwendung der GSM8K-XL- und FuncQA-Datensätze schneidet CoTools sowohl bei Single-Hop- als auch bei Multi-Hop-Problemen gut ab.
  • QuizaufgabenUnter Verwendung der KAMEL- und SimpleToolQuestions (STQuestions)-Datensätze erbringt CoTools gute Leistungen in einer großen Anzahl von Werkzeugszenarien und zeigt eine gute Generalisierung auf unbekannte Werkzeuge.

Nachfolgend sind die Ergebnisse von CoTools im Vergleich zu anderen Methoden auf den KAMEL- und STQuestions-Datensätzen aufgeführt:

Methodologien KAMEL SUP KAMEL SYN STQuestions Seen STQuestions Unseen
ToolkenGPT LLaMA 93.4 20.6 23.8 0.0
CoTools (Unsere) LLaMA 93.8 43.6 35.1 10.4

zu einem Urteil gelangen

CoTools bietet einen effizienteren und flexibleren Rahmen für das Lernen von Werkzeugen, der den effizienten Aufruf einer großen Anzahl von unbekannten Werkzeugen ermöglicht, ohne die Generalisierungsfähigkeit des Modells zu beeinträchtigen. Der Ansatz eröffnet neue Möglichkeiten für die Anwendung von großen Sprachmodellen in komplexeren realen Szenarien.

Zukunftsaussichten

Trotz der ermutigenden Ergebnisse von CoTools wiesen die Forscher auch darauf hin, dass die derzeitige Forschung zum Erlernen von LLM-Werkzeugen noch in den Kinderschuhen steckt. Für die Zukunft plant das CoTools-Team Folgendes:

  • Entdecken Sie, wie man mit Tools umgeht, die mehrere Rückgabewerte enthalten.
  • Testen Sie die Leistung von CoTools an größeren, komplexeren realen Werkzeugsätzen.

Beispiel für eine Aufforderung

Die Kernidee von CoTools besteht darin, das leistungsstarke semantische Verständnis des eingefrorenen Sprachmodells zu nutzen, um dynamisch zu bestimmen, ob ein Werkzeug während des Argumentationsprozesses aufgerufen werden muss, und das am besten geeignete Werkzeug zur Durchführung der Aufgabe auszuwählen. Im Folgenden wird der Arbeitsablauf von CoTools im Detail vorgestellt, und es werden ausführliche Prompt-Beispiele gegeben, um dem Leser zu helfen, die Eingaben und Ausgaben der einzelnen Schritte besser zu verstehen.

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

Mit solchen Eingabeaufforderungen kann CoTools dynamisch bestimmen, ob ein Tool auf der Grundlage der Frage des Benutzers und des aktuellen Antwortausschnitts aufgerufen werden muss, und das am besten geeignete Tool auswählen, um die erforderlichen Informationen zu erhalten.


 

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

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Überwindung des Engpasses beim Aufruf von Werkzeugen: Das CoTools-Framework ermöglicht großen Sprachmodellen die effiziente Nutzung einer großen Anzahl von Werkzeugen
de_DEDeutsch