ReSearch : un modèle Qwen2.5-7B pour un raisonnement de recherche amélioré (expérimental)
Introduction générale
ReSearch est un outil de recherche open source développé par l'équipe Agent-RL pour améliorer les capacités de recherche et d'inférence des grands modèles de langage (LLM) grâce à l'apprentissage par renforcement (RL). Inspiré par Deepseek-R1-Zero et OpenAI's Deep Research, ReSearch est basé sur le modèle Qwen2.5-7B, entraîné à partir de zéro en utilisant GRPO (Generalised Reward Policy Optimization), qui permet au modèle d'invoquer de manière autonome des outils de recherche basés uniquement sur des signaux de récompense, sans données supervisées. ReSearch a été validé sur l'ensemble de données HotpotQA et se généralise à des ensembles de données tels que Bamboogle et StrategyQA. ReSearch est hébergé sur GitHub, avec un code complet et une documentation expérimentale, et convient aux chercheurs pour reproduire ou étendre leurs explorations de la combinaison RL et LLM.

Liste des fonctions
- Apprentissage renforcé Pipeline de formationLes modèles d'évaluation de la qualité de l'air : aide à la formation de grands modèles à partir de zéro, configuration complète des paramètres et conception des signaux de récompense.
- Outil de recherche AppelLes modèles peuvent invoquer automatiquement des outils de recherche basés sur des questions afin d'améliorer la précision des tâches de raisonnement complexes.
- Adaptation de jeux de données multiplesAprès avoir été formé à HotpotQA, il peut être étendu à des ensembles de données tels que Bamboogle, StrategyQA, etc.
- Soutien à l'évaluation des performancesLes résultats de l'étude de faisabilité : Intégrer l'environnement FlashRAG pour tester rapidement les performances d'un modèle sur un plateau de développement.
- mise en œuvre d'une source ouverteLes projets de recherche et de développement secondaire : Fournir un code détaillé et des configurations expérimentales pour faciliter la reproduction de la recherche et le développement secondaire.
Utiliser l'aide
Processus d'installation
ReSearch nécessite un environnement GPU et s'appuie sur les frameworks verl et FlashRAG. Vous trouverez ci-dessous les étapes détaillées de l'installation :
1. préparation à l'environnement
- exigences du systèmeLinux (par exemple Ubuntu) est recommandé, Windows peut avoir des problèmes de compatibilité.
- Version PythonPython : Python 3.11 ou supérieur est requis.
- Configuration du GPUSupport pour les GPU NVIDIA, installer CUDA 12.4 (pour correspondre à la version de Torch).
2. clonage d'entrepôts
Entrez la commande suivante dans le terminal :
git clone https://github.com/Agent-RL/ReSearch.git
cd ReSearch
3. installation de l'environnement verl
ReSearch est basé sur verl pour la formation à l'apprentissage par renforcement, les étapes d'installation sont les suivantes :
cd verl
pip3 install -e .
cd ..
- version de la dépendanceS'il y a un conflit, installez-le manuellement :
pip install torch==2.4.0+cu124 vllm==0.6.3 ray==2.10.0
4. installation de l'environnement FlashRAG
FlashRAG est utilisé pour évaluer et RAG Service, méthode d'installation :
git clone https://github.com/RUC-AIBox/FlashRAG.git
cd FlashRAG
pip3 install -e .
cd ../ReSearch
5. téléchargement de modèles pré-entraînés
Qwen2.5-7B est utilisé par défaut, téléchargé depuis Hugging Face :
git lfs install
git clone https://huggingface.co/Qwen/Qwen2.5-7B
Enregistrez le chemin d'accès au modèle et configurez-le pour une utilisation ultérieure.
Utilisation
Démarrage du service RAG
- Télécharger les données pré-indexées: Obtenir l'index, le corpus et le modèle de recherche de Wikipédia à partir d'un document FlashRAG.
- Services de configuration: : Editorial
rag_serving/serving_config.yaml
Les ID GPU des modèles de recherche, des index, des chemins d'accès au corpus et les ID GPU disponibles sont renseignés. - Services opérationnels: :
conda activate flashrag python rag_serving/serving.py --config rag_serving/serving_config.yaml --num_retriever 1 --port 8000
Une assistance à la recherche est fournie une fois que le service est opérationnel.
Modèles de formation
- Préparer les donnéesTélécharger l'ensemble de données HotpotQA et exécuter le script de prétraitement :
python training/data_preprocess_hpqa.py
Les données de formation et de développement générées sont enregistrées au format parquet.
- Paramètres de configurationModification de la loi sur la protection des données
training/run.sh
Voici quelques-unes des fonctions que vous pouvez utiliser pour définir le chemin d'accès au modèle, l'URL de recherche, le chemin d'accès aux données, etc. - formation d'amorçage: :
conda activate 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/
- Entraînement à 8 GPU sur un seul nœud, les nœuds multiples nécessitent un réglage des rayons.
modèle d'évaluation
- Démarrage du service de modélisationAprès l'entraînement, le modèle est déployé à l'aide de SGLang :
python3 -m sglang.launch_server --served-model-name research --model-path runs/trained_model --tp 2 --context-length 8192 --port 80
- Évaluation opérationnelle: :
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name hotpotqa
- Les résultats sont enregistrés dans
evaluation/results/
la prise en charge du changement d'ensemble de données (par exemple, Bamboogle).
- Les résultats sont enregistrés dans
Fonction en vedette Fonctionnement
- Outil de recherche Appel: :
- Après l'entraînement, le modèle peut déterminer automatiquement s'il faut appeler l'outil de recherche ou non. Par exemple, entrez "Combien de lunes a Jupiter ?":
python inference.py --model_path runs/trained_model --question "How many moons does Jupiter have?"
Exemple de sortie :
Jupiter has 95 known moons as of 2025.
. - Processus : Le modèle génère une requête de recherche basée sur la question et appelle le service RAG pour obtenir l'information, puis raisonner sur la réponse.
- Après l'entraînement, le modèle peut déterminer automatiquement s'il faut appeler l'outil de recherche ou non. Par exemple, entrez "Combien de lunes a Jupiter ?":
- Généralisation entre les ensembles de données: :
- Tester la performance du modèle sur StrategyQA :
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name strategyqa
La sortie contient le processus de raisonnement et la réponse, ce qui permet de vérifier la capacité de généralisation.
- Tester la performance du modèle sur StrategyQA :
mise en garde
- exigences en matière de matérielLes logiciels d'évaluation de la qualité de l'eau et de la qualité de l'air peuvent être utilisés dans le cadre de l'évaluation de la qualité de l'eau et de l'air.
- Surveillance des journauxTensorBoard : Utilisez TensorBoard pour visualiser les progrès de la formation :
tensorboard --logdir runs/
- résolution des problèmesSi vous obtenez une erreur, vérifiez la version de la dépendance ou consultez GitHub Issues.
Les utilisateurs peuvent ainsi reproduire intégralement les expériences de ReSearch et explorer la combinaison de l'apprentissage par renforcement et des grands modèles.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...