AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

[Nachdruck] QwQ-32B's Tool Calling Capability und Agentic RAG Anwendung

Kontexte

Ein kürzlich erschienener Artikel mit dem Titel Search-R1: Training von LLMs zum Verstehen und Nutzen von Suchmaschinen mit Reinforcement Learning Dissertation zum Thema "Die Zukunft der Vereinten Nationen" (arxiv.org/pdf/2503.09516) hat viel Aufmerksamkeit auf sich gezogen. Das Papier schlägt einen neuen Weg zum Trainieren von Large Language Models (LLMs) unter Verwendung von Reinforcement Learning für die Argumentation und Nutzung von Suchmaschinen vor. Es ist erwähnenswert, dass einige der Ideen in dem Papier denen ähneln, die von Qwens Team in QwQ-32B Die Erkundung des Modells stimmt überein.

Das kürzlich von Alibaba veröffentlichte QwQ-32B (qwenlm.github.io/zh/blog/qwq-32b/) integriert agentenbezogene Fähigkeiten in das Schlussfolgerungsmodell. Diese Fähigkeiten ermöglichen es dem Modell, während der Verwendung des Werkzeugs kritisch zu denken und den Argumentationsprozess auf der Grundlage von Rückmeldungen aus der Umgebung anzupassen. Im Modellordner QwQ-32B im Verzeichnis added_tokens.json können Sie die speziellen Token sehen, die für Tool-Aufrufe und Tool-Antworten hinzugefügt wurden:

{
"</think>": 151668,
"</tool_call>": 151658,
"</tool_response>": 151666,
"<think>": 151667,
"<tool_call>": 151657,
"<tool_response>": 151665
}

In diesem Papier werden wir Agentic RAG Als Beispiel werden die Fähigkeiten des Modells QwQ-32B in Bezug auf den Werkzeugaufruf demonstriert.


 

Agentische RAG vs. Traditionelle RAG

Um die Vorteile von Agentic RAG besser zu verstehen, müssen wir zunächst zwischen Agentic RAG und dem derzeit vorherrschenden Paradigma der RAG-Praxis unterscheiden:

  • Traditionelle RAGDie überwiegende Mehrheit der heutigen RAG-Projekte sind im Wesentlichen Workflows, d.h. Systeme, die LLMs und Werkzeuge durch vordefinierte Codepfade orchestrieren. Dieser künstlich vordefinierte, "zu Tode geschriebene" Workflow besteht aus vielen miteinander verknüpften, aber fragilen Teilen wie Routing, Chunking, Reordering, Query-Interpretation, Query-Expansion, Source-Kontextualisierung und Search Engineering.
    • NachteileEs ist schwierig, in einem vom Menschen gesteuerten Arbeitsablauf alle Eckfälle abzudecken. Vor allem in komplexen Szenarien, die mehrere Abfragerunden erfordern, ist die Wirkung begrenzt.
  • Agentische RAGRationalisierung des Prozesses durch einen End-to-End-Ansatz. Statten Sie das Modell einfach mit einem API-Tool für den vernetzten Abruf aus (im Falle dieses Papiers unter Verwendung des Tavily API, mit einer bestimmten Menge an freien Credits), der Rest der Arbeit wird vom Modell selbst erledigt, einschließlich, aber nicht beschränkt auf:
    • Absicht zu verstehen (Beurteilung, ob Vernetzung erforderlich ist)
    • Umformulierung oder Aufteilung der Frage
    • Schnittstellenaufruf
    • Prozess-Choreographie (einschließlich der Frage, ob und wie man mehrstufige Suchen durchführt)
    • etw. als Quelle von etw. anführen
    • ...

Einfach ausgedrückt, ist das Kernkonzept der Agentic RAG:Weniger Struktur, mehr Intelligenz, Weniger ist mehr.

genau wie Anthropisch Definition des Agentenmodells: Ähnlich wie bei der Tiefensuche müssen die Agenten die Zielaufgabe intern ausführen, und sie "lenken dynamisch ihre eigenen Prozesse und die Verwendung von Werkzeugen und kontrollieren die Art und Weise, wie die Aufgabe erfüllt wird".

Gesamtprozess

Die folgende Abbildung veranschaulicht den Gesamtablauf von Agentic RAG:

[Nachdruck] QwQ-32B's Tool Calling Capability und Agentic RAG Application-1

  1. Anpassung der Benutzerfragen an die Wortvorlagen.
  2. Ruft das Modell auf, um ein neues Token zu erzeugen. Wenn der Erzeugungsprozess nicht zu einem <tool_call> ... </tool_call>dann wird das Rückgabeergebnis direkt ausgegeben.
  3. Im Falle von <tool_call> ... </tool_call>dann bedeutet dies, dass das Modell während des Argumentationsprozesses einen Werkzeugaufruf initiiert hat. Das Parsen dieser Anfrage, die Ausführung von web_searchund wickelt die Ergebnisse des Schnittstellenaufrufs in <tool_response> ... </tool_response> formatiert, in den Kontext des Makromodells eingefügt und erneut zur Makromodellerstellung angefordert.
  4. Wiederholen Sie die obigen Schritte, bis es keine weiteren <tool_call>(oder das Anfragelimit erreicht ist) oder das Vorhandensein von <|im_end|>.

Das Verfahren ist im Wesentlichen dasselbe wie das im Search-R1-Papier beschriebene:

[Nachdruck] QwQ-32B's Tool Calling Capability und Agentic RAG Application-2

Wichtige technische Punkte

  • Cue word-Vorlagen::
user_question = input('请输入你的问题:')
max_search_times = 5
prompt = f"""You are Qwen QwQ, a curious AI built for retrival augmented generation.
You are at 2025 and current date is {date.today()}.
You have access to the web_search tool to retrival relevant information to help answer user questions.
You can use web_search tool up to {max_search_times} times to answer a user's question, but try to be efficient and use as few as possible.
Below are some guidelines:
- Use web_search for general internet queries, like finding current events or factual information.
- Always provide a final answer in a clear and concise manner, with citations for any information obtained from the internet.
- If you think you need to use a tool, format your response as a tool call with the `action` and `action_input` within <tool_call>...</tool_call>, like this:\n<tool_call>\n{{ "action": "web_search", "action_input": {{ "query": "current stock price of Tesla" }} }}\n</tool_call>.
- After using a tool, continue your reasoning based on the web_search result in <tool_response>...</tool_response>.
- Remember that if you need multi-turn web_search to find relevant information, make sure you conduct all search tasks before you provide a final answer.
---
User Question:{user_question}"""
  • Individuelle Stoppschilder::

    Wenn festgestellt wird, dass das Modell einen autoregressiven Erzeugungsprozess während der <tool_call>(.*?)</tool_call>\s*$ Die Generierung endet nach dem Format (Übereinstimmung mit dem regulären Ausdruck):

from transformers import (
AutoModelForCausalLM,
AutoTokenizer,
StoppingCriteria,
StoppingCriteriaList
)
import torch
import re
tool_call_regex = r"<tool_call>(.*?)</tool_call>\s*$"
end_regex = r"<\|im_end\|\>\s*$"
# 同时监测: <tool_call> 或 <|im_end|>
class RegexStoppingCriteria(StoppingCriteria):
def __init__(self, tokenizer, patterns):
self.patterns = patterns
self.tokenizer = tokenizer
def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
decoded_text = self.tokenizer.decode(input_ids[0])
for pattern in self.patterns:
if re.search(pattern, decoded_text, re.DOTALL):
return True
return False
stopping_criteria = StoppingCriteriaList([
RegexStoppingCriteria(
tokenizer,
patterns=[tool_call_regex, end_regex]
)
])
#model.generate(..., stopping_criteria=stopping_criteria) # 加上停止符
  • Web-Such-API::

    Die Such-API, die in dieser Praxis verwendet wird, ist die Tavily-API, die ein gewisses Maß an kostenlosem Guthaben bietet, um das Experimentieren und die Replikation zu erleichtern, und die es Entwicklern ermöglicht, Websuchfunktionen durch einfache API-Aufrufe in ihre Anwendungen zu integrieren.

Verhaltenskodex

Einen ausführlichen Praxiskodex finden Sie unter folgendem Link:

Kapitel DeepSearch-Replikation: ein erster Blick auf die QwQ-32B ToolCall-Funktion am Beispiel von Agentic RAG.ipynb

Testfälle

Probleme beim TestenBitte geben Sie mir mehr Informationen über das Modell QwQ-32B, das Ali kürzlich als Open Source veröffentlicht hat.

Ergebnisse generieren(vollständige Ergebnisse siehe Notizbuch)

[Nachdruck] QwQ-32B's Tool Calling Capability und Agentic RAG Application-3

[Nachdruck] QwQ-32B's Tool Calling Capability und Agentic RAG Application-4

[Nachdruck] QwQ-32B's Tool Calling Capability und Agentic RAG Application-5

Wie aus den Ergebnissen ersichtlich ist, führt das Inferenzmodell selbstständig das Verstehen der Absicht (Feststellung, ob eine vernetzte Suche erforderlich ist) und die Generierung von Suchbegriffen (Umschreiben oder Aufteilen von Fragen) durch. Das Modell berücksichtigt auch potenzielle Mehrrunden-Suchszenarien. Nach dem Auslösen einer web search Anschließend erstellt das Modell einen Abschlussbericht auf der Grundlage der Suchergebnisse.

In diesem Fall hat das Modell nur einen Aufruf der Suchschnittstelle durchgeführt. Dies kann auf die Einfachheit des Fallproblems zurückzuführen sein oder darauf, dass das Basismodell noch nicht in der Lage ist, komplexe Mehrrunden-Suchen auszulösen. Dies zeigt auch, dass es, um das Potenzial des Modells als intelligente Instanz voll auszuschöpfen, immer noch notwendig ist, Search-R1 für das Nachtraining und die gezielte Feinabstimmung heranzuziehen.

Ausgehend von den Fähigkeiten, die das Modell QwQ-32B bereits demonstriert hat, kann die Kombination aus gut konzipierten synthetischen (oder manuell sortierten) Umschulungsdaten und Reenforcement-Training oder SFT in segmentierten Szenarien sowie die Ausblendung der von der Werkzeugschnittstelle zurückgegebenen Antwort Token Es wird erwartet, dass dieser Weg des Retrainings zum Hauptbestandteil der zukünftigen Entwicklung und des Einsatzes von Intelligenz wird, da die entsprechenden Verluste für eine Vielzahl von Aktionen und Grenzfällen im Voraus berücksichtigt werden können, was den Einsatz vereinfacht und die Notwendigkeit einer menschlichen Orchestrierung des Design-Workflows eliminiert. Retraining ermöglicht die Vorabberücksichtigung verschiedener Aktionen und Grenzfälle, was den Einsatz vereinfacht und die Notwendigkeit menschlich orchestrierter Design-Workflows eliminiert. Abschnitt 3.1 des Search-R1-Papiers beschreibt detailliert die "Loss Masking for Retrieved Wertmarken"Technologie. Durch den Einsatz des PPO und GRPO in dem die abgerufenen Token verlustmaskiert sind, optimiert Search-R1 das LLM, um Token zu generieren, und verbessert so die Fähigkeit des Modells, mit Suchmaschinen zu interagieren und Inferenzen durchzuführen.

Darüber hinaus unterstützt Search-R1 Multi-Round Retrieval und Inferenz (Abschnitt 3.2 "Textgenerierung mit Interleaved Multi-Turn Search Engine Call" in der Dissertation) durch die <search> im Gesang antworten </search> Auslöser und legt den abgerufenen Inhalt in der <information> im Gesang antworten </information> zwischen. Die Ausgabe der endgültigen Antwort hingegen verwendet die <answer> im Gesang antworten </answer>.

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " [Nachdruck] QwQ-32B's Tool Calling Capability und Agentic RAG Anwendung
de_DEDeutsch