Allgemeine Einführung
ReSearch ist ein Open-Source-Forschungstool, das vom Agent-RL-Team entwickelt wurde, um die Such- und Inferenzfähigkeiten von Large Language Models (LLMs) durch Reinforcement Learning (RL) zu verbessern. Inspiriert von Deepseek-R1-Zero und OpenAI's Deep Research, basiert ReSearch auf dem Qwen2.5-7B Modell, das von Grund auf mit GRPO (Generalised Reward Policy Optimization) trainiert wurde, was es dem Modell ermöglicht, selbstständig Suchwerkzeuge allein auf der Basis von Belohnungssignalen und ohne überwachte Daten aufzurufen. ReSearch wurde mit dem HotpotQA-Datensatz validiert und lässt sich auf Datensätze wie Bamboogle und StrategyQA verallgemeinern. ReSearch wird auf GitHub gehostet, mit vollständigem Code und experimenteller Dokumentation, und eignet sich für Forscher, um ihre Erkundungen der Kombination von RL und LLM zu reproduzieren oder zu erweitern.
Funktionsliste
- Erweitertes Lernen Training PipelineUnterstützung für das Training großer Modelle von Grund auf, vollständige Parameterkonfigurationen und Reward-Signaldesigns.
- Suchwerkzeug AufrufModelle können automatisch Suchwerkzeuge auf der Grundlage von Fragen aufrufen, um die Genauigkeit komplexer Argumentationsaufgaben zu verbessern.
- Anpassung mehrerer DatensätzeHotpotQA: Nach dem Training in HotpotQA kann es auf Datensätze wie Bamboogle, StrategyQA, etc. erweitert werden.
- Unterstützung bei der LeistungsbewertungIntegration der FlashRAG-Umgebung zum schnellen Testen der Leistung eines Modells auf einem Entwicklungsset.
- Open-Source-ImplementierungBereitstellung von detailliertem Code und experimentellen Konfigurationen für die einfache Reproduktion in der Forschung und für sekundäre Entwicklungen.
Hilfe verwenden
Ablauf der Installation
ReSearch benötigt eine GPU-Umgebung und stützt sich auf die Frameworks verl und FlashRAG. Nachfolgend finden Sie die detaillierten Installationsschritte:
1. die Vorbereitung der Umwelt
- SystemanforderungenLinux (z. B. Ubuntu) wird empfohlen, bei Windows kann es Kompatibilitätsprobleme geben.
- Python-VersionBenötigt Python 3.11 oder höher.
- GPU-KonfigurationUnterstützung für NVIDIA-GPUs, Installation von CUDA 12.4 (passend zur Torch-Version).
2. das Klonen von Lagern
Geben Sie den folgenden Befehl in das Terminal ein:
git clone https://github.com/Agent-RL/ReSearch.git
cd ReSearch
3. die Installation der verl-Umgebung
ReSearch basiert auf Verl für Reinforcement Learning Training, die Installationsschritte sind wie folgt:
cd verl
pip3 install -e .
cd ...
- abhängige Versiontorch==2.4.0+cu124, vllm==0.6.3, ray==2.10.0. Wenn es einen Konflikt gibt, installieren Sie es manuell:
pip install torch==2.4.0+cu124 vllm==0.6.3 ray==2.10.0
4. die Installation der FlashRAG-Umgebung
FlashRAG dient der Bewertung und RAG Service, Installationsmethode:
git clone https://github.com/RUC-AIBox/FlashRAG.git
cd FlashRAG
pip3 install -e .
cd ... /ReSearch
5) Herunterladen von vortrainierten Modellen
Standardmäßig wird Qwen2.5-7B verwendet, heruntergeladen von Hugging Face:
git lfs install
git clone https://huggingface.co/Qwen/Qwen2.5-7B
Zeichnen Sie den Modellpfad auf und konfigurieren Sie ihn für die spätere Verwendung.
Verwendung
Starten des RAG-Dienstes
- Vorindizierte Daten herunterladenAbrufen des Wikipedia-Index, des Korpus und des Suchmodells aus einem FlashRAG-Dokument.
- Konfiguration der Dienste:: Leitartikel
rag_serving/serving_config.yaml
Die GPU-IDs der Suchmodelle, Indizes, Korpuspfade und verfügbaren GPU-IDs werden eingegeben. - Operative Dienste::
conda flashrag aktivieren python rag_serving/serving.py --config rag_serving/serving_config.yaml --num_retriever 1 --port 8000
Sobald der Dienst läuft, wird Suchunterstützung angeboten.
Ausbildungsmodelle
- Daten vorbereitenLaden Sie den HotpotQA-Datensatz herunter und führen Sie das Vorverarbeitungsskript aus:
python training/data_preprocess_hpqa.py
Die erzeugten Trainings- und Entwicklungsdaten werden im Parkettformat gespeichert.
- KonfigurationsparameterModifikation
training/run.sh
Im Folgenden finden Sie einige der Funktionen, die Sie zum Einrichten des Modellpfads, der Such-URL, des Datenpfads usw. verwenden können. - Grundlagentraining::
conda aktivieren verl bash training/run.sh --actor_model_path /path/to/Qwen2.5-7B --search_url http://localhost:8000 --train_data_path data/train.parquet --dev_ data_path data/dev.parquet ---save_path runs/
- Einzelknoten 8 GPU-Training, mehrere Knoten erfordern Strahlentuning.
Bewertungsmodell
- Starten des ModelldienstesNach dem Training wird das Modell mit SGLang eingesetzt:
python3 -m sglang.launch_server --served-model-name research --model-path runs/trained_model --tp 2 --context-length 8192 --port 80
- Operative Bewertung::
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name hotpotqa
- Die Ergebnisse werden gespeichert in
Bewertung/Ergebnisse/
Unterstützung für den Wechsel von Datensätzen (z. B. Bamboogle).
- Die Ergebnisse werden gespeichert in
Featured Function Bedienung
- Suchwerkzeug Aufruf::
- Nach dem Training kann das Modell automatisch feststellen, ob das Suchwerkzeug aufgerufen werden soll oder nicht. Geben Sie zum Beispiel ein: "Wie viele Monde hat der Jupiter?
python inference.py --model_path runs/trained_model --question "Wie viele Monde hat der Jupiter?"
Beispielhafte Ausgabe:
Jupiter hat 95 bekannte Monde (Stand: 2025).
. - Prozess: Das Modell generiert eine Suchanfrage auf der Grundlage der Frage und ruft den RAG-Dienst auf, um die Informationen zu erhalten und dann über die Antwort nachzudenken.
- Nach dem Training kann das Modell automatisch feststellen, ob das Suchwerkzeug aufgerufen werden soll oder nicht. Geben Sie zum Beispiel ein: "Wie viele Monde hat der Jupiter?
- Verallgemeinerung über Datensätze hinweg::
- Testen der Modellleistung auf StrategyQA:
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name strategyqa
Die Ausgabe enthält den Argumentationsprozess und die Antwort, wodurch die Generalisierungsfähigkeit überprüft wird.
- Testen der Modellleistung auf StrategyQA:
caveat
- Hardware-Voraussetzung24 GB oder mehr Videospeicher für das Training, 16 GB für die Auswertung.
- Log-ÜberwachungTensorBoard verwenden, um den Trainingsfortschritt zu sehen:
tensorboard --logdir runs/
- FehlerbehebungWenn Sie eine Fehlermeldung erhalten, überprüfen Sie die Version der Abhängigkeit oder sehen Sie auf GitHub Issues nach.
Auf diese Weise können die Benutzer die ReSearch-Experimente vollständig reproduzieren und die Kombination von Reinforcement Learning und großen Modellen erkunden.