ReSearch: un modelo Qwen2.5-7B para mejorar el razonamiento de búsqueda (experimental)

Introducción general

ReSearch es una herramienta de investigación de código abierto desarrollada por el equipo Agent-RL para mejorar las capacidades de búsqueda e inferencia de los grandes modelos lingüísticos (LLM) mediante el aprendizaje por refuerzo (RL). Inspirado en Deepseek-R1-Zero y OpenAI's Deep Research, ReSearch se basa en el modelo Qwen2.5-7B, entrenado desde cero utilizando GRPO (Generalised Reward Policy Optimization), que permite al modelo invocar de forma autónoma herramientas de búsqueda basadas únicamente en señales de recompensa, sin datos supervisados. ReSearch se validó en el conjunto de datos HotpotQA y se generaliza a conjuntos de datos como Bamboogle y StrategyQA. ReSearch está alojado en GitHub, con código completo y documentación experimental, y es adecuado para que los investigadores reproduzcan o amplíen sus exploraciones de la combinación de RL y LLM.

ReSearch:强化搜索推理能力的 Qwen2.5-7B 模型(实验)

 

Lista de funciones

  • Mejora de la formaciónSoporte para el entrenamiento de grandes modelos desde cero, configuración completa de parámetros y diseño de señales de recompensa.
  • Llamada a la herramienta de búsquedaEl modelo de búsqueda: los modelos pueden invocar automáticamente herramientas de búsqueda basadas en preguntas para mejorar la precisión de las tareas de razonamiento complejas.
  • Adaptación de múltiples conjuntos de datosDespués del entrenamiento en HotpotQA, se puede ampliar a conjuntos de datos como Bamboogle, StrategyQA, etc.
  • Apoyo a la evaluación del rendimiento: Integre el entorno FlashRAG para probar rápidamente el rendimiento de un modelo en un conjunto de desarrollo.
  • aplicación de código abierto: Proporcionar código detallado y configuraciones experimentales para facilitar la reproducción de la investigación y el desarrollo secundario.

 

Utilizar la ayuda

Proceso de instalación

ReSearch requiere un entorno GPU y se basa en los frameworks verl y FlashRAG. A continuación se detallan los pasos de instalación:

1. Preparación medioambiental

  • requisitos del sistemaSe recomienda Linux (por ejemplo, Ubuntu), ya que Windows puede tener problemas de compatibilidad.
  • Versión PythonRequiere Python 3.11 o superior.
  • Configuración de la GPUSoporte para GPUs NVIDIA, instala CUDA 12.4 (para que coincida con la versión de la antorcha).

2. Clonación de almacenes

Introduzca el siguiente comando en el terminal:

git clone https://github.com/Agent-RL/ReSearch.git
cd ReSearch

3. Instalación del entorno verl

ReSearch se basa en verl para el entrenamiento de aprendizaje por refuerzo, los pasos de instalación son los siguientes:

cd verl
pip3 install -e .
cd ..
  • versión de dependencia: torch==2.4.0+cu124, vllm==0.6.3, ray==2.10.0. Si hay algún conflicto, instálalo manualmente:
    pip install torch==2.4.0+cu124 vllm==0.6.3 ray==2.10.0
    

4. Instalación del entorno FlashRAG

FlashRAG se utiliza para evaluar y RAG Servicio, método de instalación:

git clone https://github.com/RUC-AIBox/FlashRAG.git
cd FlashRAG
pip3 install -e .
cd ../ReSearch

5. Descarga de modelos preentrenados

Por defecto se utiliza Qwen2.5-7B, descargado de Hugging Face:

git lfs install
git clone https://huggingface.co/Qwen/Qwen2.5-7B

Registre la ruta del modelo y configúrela para su uso posterior.

Utilización

Iniciar el servicio RAG

  1. Descargar datos preindexados: Obtenga el índice, el corpus y el modelo de recuperación de Wikipedia a partir de un documento FlashRAG.
  2. Servicios de configuración:: Editorial rag_serving/serving_config.yamlSe rellenan los ID de GPU de los modelos de búsqueda, los índices, las rutas del corpus y los ID de GPU disponibles.
  3. Servicios operativos::
    conda activate flashrag
    python rag_serving/serving.py --config rag_serving/serving_config.yaml --num_retriever 1 --port 8000
    

    Una vez que el servicio está en marcha, se proporciona asistencia para la búsqueda.

Modelos de formación

  1. Preparar los datosDescarga el conjunto de datos HotpotQA y ejecuta el script de preprocesamiento:
    python training/data_preprocess_hpqa.py
    

    Los datos de entrenamiento y desarrollo generados se guardan en formato parquet.

  2. Parámetros de configuraciónModificación training/run.shA continuación se indican algunas de las funciones que puede utilizar para configurar la ruta del modelo, la URL de búsqueda, la ruta de datos, etc.
  3. formación inicial::
    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/
    
    • Un solo nodo 8 GPU de entrenamiento, múltiples nodos requieren ajuste de rayo.

modelo de evaluación

  1. Iniciar el servicio de modelosEl modelo, una vez entrenado, se despliega con SGLang:
    python3 -m sglang.launch_server --served-model-name research --model-path runs/trained_model --tp 2 --context-length 8192 --port 80
    
  2. Evaluación operativa::
    python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name hotpotqa
    
    • Los resultados se guardan en evaluation/results/Soporte para el cambio de conjuntos de datos (por ejemplo, Bamboogle).

Función destacada Operación

  • Llamada a la herramienta de búsqueda::
    • Una vez entrenado, el modelo puede determinar automáticamente si debe llamar o no a la herramienta de búsqueda. Por ejemplo, introduzca "¿Cuántas lunas tiene Júpiter?":
      python inference.py --model_path runs/trained_model --question "How many moons does Jupiter have?"
      

      Ejemplo de salida:Jupiter has 95 known moons as of 2025..

    • Proceso: El modelo genera una consulta de búsqueda basada en la pregunta y llama al servicio RAG para obtener la información y luego razonar sobre la respuesta.
  • Generalización entre conjuntos de datos::
    • Comprobación del rendimiento del modelo en StrategyQA:
      python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name strategyqa
      

      La salida contiene el proceso de razonamiento y la respuesta, verificando la capacidad de generalización.

advertencia

  • requisitos de hardware: 24 GB o más de memoria de vídeo para el entrenamiento, 16 GB para la evaluación.
  • Supervisión de registros: Utiliza TensorBoard para ver el progreso del entrenamiento:
    tensorboard --logdir runs/
    
  • resolución de averíasSi obtiene un error, compruebe la versión de la dependencia o consulte los problemas de GitHub.

De este modo, los usuarios pueden reproducir íntegramente los experimentos de ReSearch y explorar la combinación de aprendizaje por refuerzo y grandes modelos.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...