ReCall ist ein Open-Source-Framework, das entwickelt wurde, um Large Language Models (LLMs) für den Aufruf von Tools und die Inferenz durch Reinforcement Learning zu trainieren, ohne auf überwachte Daten angewiesen zu sein. ReCall unterstützt benutzerdefinierte Tools und eignet sich für die Entwicklung von Allzweckintelligenzen. Das Projekt basiert auf dem Qwen2.5-Modell und stellt synthetische Datensätze SynTool und MuSiQue zur Verfügung, um die Inferenz von Mehrschrittaufgaben zu unterstützen. ReCall ist eine erweiterte Version von ReSearch, die umfassender ist und sich für die Entwicklung von Werkzeugen für mehrere Szenarien eignet.
Funktionsliste
- Training großer Modelle durch Verstärkungslernen ohne überwachte Daten und Unterstützung autonomer Werkzeugaufrufe.
- Unterstützung benutzerdefinierter, beliebiger Werkzeuge, flexible Anpassung an eine Vielzahl von Aufgabenszenarien.
- SynTool stellt synthetische Datensätze mit verschiedenen Umgebungen und komplexen mehrstufigen Aufgaben zur Verfügung.
- Integrierte FlashRAG-Evaluierungsumgebung für die Validierung von Multi-Hop-Q&A-Aufgaben.
- Effiziente Sandboxing- und Modellierungsdienste auf der Grundlage von FastAPI und SGLang.
- Unterstützung für MuSiQue-Datensätze, kombiniert mit Wikipedia-Suchwerkzeugen zur Datenvorverarbeitung.
- Detaillierte Skripte und Dokumentationen werden bereitgestellt, um benutzerdefinierte Daten und Modellschulungen zu erleichtern.
Hilfe verwenden
ReCall ist ein Open-Source-Projekt für Entwickler, das auf GitHub gehostet wird und den Benutzern einen schnellen Einstieg ermöglicht, indem sie Code klonen, Abhängigkeiten installieren und Beispielskripte ausführen. Im Folgenden finden Sie einen detaillierten Leitfaden, der die Installation, die wichtigsten Funktionen und den Entwicklungsprozess abdeckt, um Ihnen den Einstieg in ReCall von Grund auf zu erleichtern.
Einbauverfahren
- Klonen der Codebasis
Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um das ReCall-Repository zu klonen:git clone https://github.com/Agent-RL/ReCall.git cd ReCall
- Installation von Abhängigkeiten
ReCall hängt von der Python-Umgebung ab, Python 3.8 oder höher wird empfohlen. Installieren Sie die Kern-Abhängigkeiten:pip3 install -e . pip3 install flash-attn --no-build-isolation
Wenn Sie ein auf FlashRAG basierendes Wikipedia-RAG-System betreiben wollen, müssen Sie die zusätzliche
faiss-gpu
::conda install -c pytorch -c nvidia faiss-gpu=1.8.0
Zu den Abhängigkeiten gehören
transformers
undvllm==0.8.4
undsglang
usw., für eine vollständige Liste siehesetup.py
. - Download vorverarbeiteter Daten
ReCall bietet vorverarbeitete SynTool- und MuSiQue-Datensätze für das Training und die Auswertung. Die Benutzer können sie direkt herunterladen:# 访问提供的下载链接(见 GitHub README)
Alternativ kann der Benutzer auch
data/prepare_musique_recall.py
Skripte zur Anpassung der Generierung von MuSiQue-Daten, kombiniert mit Wikipedia-Suchwerkzeugen. - Starten des Modelldienstes
ReCall verwendet SGLang für die Modellierung von Diensten. Beispiel für den Start eines Dienstes:python3 -m sglang.launch_server \ --served-model-name {trained/model/name} \ --model-path {trained/model/path} \ --tp 2 \ --context-length 8192 \ --enable-metrics \ --dtype bfloat16 \ --host 0.0.0.0 \ --port 80 \ --trust-remote-code \ --disable-overlap \ --disable-radix-cache
Benutzer austauschbar
{trained/model/name}
im Gesang antworten{trained/model/path}
für Ihren eigenen Modellnamen und Pfad.
Hauptfunktionen
Die Kernfunktion von ReCall ist das Trainieren großer Modelle für die Inferenz von Werkzeuganrufen durch verstärkendes Lernen. Im Folgenden werden die wichtigsten Funktionen und der Arbeitsablauf beschrieben:
- Werkzeugaufruf-Inferenz
ReCall ermöglicht es den Modellen, Werkzeuge wie Suche, Rechner oder benutzerdefinierte Werkzeuge selbständig auszuwählen und zu verwenden. Kern-KlassenReCall
Verantwortlich für die Koordination der Modellerstellung und der Werkzeugausführung. Die Benutzer können sich auf diescripts/inference/re_call_use_case.py
Beispielskripte, um zu sehen, wie man das Tool aufruft, um eine Aufgabe zu erledigen. Beispiel:- Geben Sie eine komplexe Frage ein (z. B. ein Multi-Hop-Quiz).
- Das Modell wählt das geeignete Werkzeug (z. B. die Wikipedia-Suche) durch Verstärkungslernen aus.
- Gibt die Ergebnisse der strukturierten Argumentation zurück.
Der Benutzer lädt einfach das trainierte Modell, ruft dieReCall
Klassenschnittstelle, geben Sie einfach die Frage und die Werkzeugkonfiguration ein.
- Erzeugung synthetischer Datensätze
ReCall stellt SynTool-Datensätze zur Verfügung, um die Erzeugung verschiedener Umwelt- und Mehrschritt-Aufgabendaten zu unterstützen. Benutzer können Folgendes ausführendata/prepare_musique_recall.py
Skripte, die benutzerdefinierte Datensätze erzeugen. Beispiel:python data/prepare_musique_recall.py
Das Skript generiert Trainingsdaten auf der Grundlage von benutzerdefinierten Tools (z. B. Wikipedia-Suche) für komplexe Inferenzaufgaben. Die generierten Trainingsdaten können direkt für das Modelltraining verwendet werden.
- Bewertung von Multi-hop-Quiz
ReCall verwendet FlashRAG als Evaluierungsumgebung für Multi-Hop-Quizze. Benutzer können Evaluierungsdatensätze herunterladen und Tests durchführen:# 下载 FlashRAG 评估数据(见 GitHub 说明)
Die Evaluierungsergebnisse bestätigen die Leistung des Modells bei mehrstufigen Inferenzaufgaben und eignen sich zum Testen der Werkzeugaufrufe.
- Entwicklung kundenspezifischer Werkzeuge
Der Benutzer kann jedes beliebige Werkzeug definieren, um die Funktionalität von ReCall zu erweitern. Fügen Sie zum Beispiel einen Taschenrechner hinzu:- Definieren Sie die Werkzeugschnittstelle im Code, um die Eingabe- und Ausgabeformate festzulegen.
- Integrieren Sie Werkzeugkonfigurationen in
ReCall
Im Unterricht. - Führen Sie Trainings- oder Inferenzskripte aus, um die Wirksamkeit neuer Tools zu testen.
Siehe GitHub für Dokumentation und Beispielcode.
Featured Function Bedienung
ReCall bietet Tool-Call-Inferenz durch Reinforcement Learning, ohne dass überwachte Daten benötigt werden. Hier sehen Sie, wie die vorgestellten Funktionen verwendet werden:
- Intensives LerntrainingReCall Use
verl
Framework für Reinforcement Learning Training. Benutzer können Trainingsparameter konfigurieren und Trainingsskripte ausführen:# 示例训练命令(具体参数见 GitHub 文档) python train.py --config {config_file}
Beim Trainingsprozess werden die SynTool- und MuSiQue-Datensätze verwendet, um die Werkzeugauswahl und die Schlussfolgerungsmöglichkeiten des Modells zu optimieren.
- Flexibles InstrumentariumBenutzer können mehrere Werkzeuge (z. B. Suche, Datenbankabfrage usw.) über eine Konfigurationsdatei definieren, und das Modell wählt und kombiniert die Werkzeuge automatisch entsprechend der Aufgabe. Arbeitsschritte:
- Bearbeiten Sie die Werkzeugkonfigurationsdatei (z.B. im YAML-Format).
- Laden auf
ReCall
Klasse. - Führen Sie das Inferenzskript aus und beobachten Sie, wie das Modell das Werkzeug dynamisch aufruft.
- Effiziente ModellierungsdiensteDer SGLang-basierte Modelldienst unterstützt hochgradig konkurrierende Schlussfolgerungen und ist für Produktionsumgebungen geeignet. Benutzer können Modelle über API aufrufen, um Echtzeitaufgaben zu bearbeiten.
caveat
- Sicherstellung der Hardware-Unterstützung (z. B. GPU für
faiss-gpu
im Gesang antwortenflash-attn
). - Prüfen Sie regelmäßig Ihr GitHub-Repository auf Updates, um die neuesten Funktionen und Korrekturen zu erhalten.
- Training und Argumentation erfordern viel Speicherplatz, und es wird empfohlen, sich darauf vorzubereiten.
Anwendungsszenario
- Entwicklung eines Multi-Hop-Quiz-Systems
ReCall kann zur Entwicklung von Frage- und Antwortsystemen verwendet werden, die ein mehrstufiges Denken erfordern. Zum Beispiel zur Beantwortung der Frage "Was war die Hauptstadt des Landes, in dem eine historische Figur im 19. Jahrhundert geboren wurde? Das Modell kann die Wikipedia-Suche nutzen, um Schritt für Schritt die genaue Antwort zu finden. Es eignet sich für die Entwicklung von Bildungs- und Wissens-Q&A-Plattformen. - Automatisierte Aufgabenbearbeitung
ReCall kann komplexe Aufgaben in Verbindung mit einer Vielzahl von Werkzeugen (z. B. Kalkulatoren, Datenbankabfragen) automatisieren. So können Unternehmen mit ReCall beispielsweise Intelligenz entwickeln, um Verkaufsdaten automatisch zu analysieren und Berichte zu erstellen. - KI-Forschung und Experimentieren
Forscher können die synthetischen Datensätze und das Reinforcement Learning Framework von ReCall nutzen, um die Leistung großer Modelle bei Toolaufrufen und komplexen Inferenzaufgaben zu untersuchen, die für die akademische Forschung und die Entwicklung von Algorithmen geeignet sind.
QA
- Welche Tools werden von ReCall unterstützt?
ReCall unterstützt benutzerdefinierte Tools wie Suchen, Rechner, Datenbankabfragen usw. Sie können neue Tools über Konfigurationsdateien hinzufügen, siehe GitHub für Beispiele. - Wie kann ich mit ReCall beginnen?
Klonen Sie das GitHub-Repository, installieren Sie die Abhängigkeiten, laden Sie die vorverarbeiteten Daten herunter oder generieren Sie benutzerdefinierte Daten, und führen Sie das Beispielskript aus. Siehe die Hilfe für Details. - Was ist der Unterschied zwischen ReCall und ReSearch?
ReCall ist eine aktualisierte Version von ReSearch, die mehr Werkzeuge und komplexere Inferenzaufgaben unterstützt und als direkter Ersatz für ReSearch verwendet werden kann. - Wie viel Speicherplatz wird benötigt?
Schulungen und Auswertungen erfordern viel Speicherplatz, z. B. können die FlashRAG-Auswertungsdaten mehrere Dutzend Gigabyte umfassen, daher wird empfohlen, die Hardwarekapazität im Voraus zu prüfen.