Introdução geral
O ReSearch é uma ferramenta de pesquisa de código aberto desenvolvida pela equipe do Agent-RL para aprimorar os recursos de pesquisa e inferência de modelos de linguagem grandes (LLMs) por meio do aprendizado por reforço (RL). Inspirado no Deepseek-R1-Zero e no Deep Research da OpenAI, o ReSearch é baseado no modelo Qwen2.5-7B, treinado do zero usando GRPO (Generalised Reward Policy Optimization), que permite que o modelo invoque autonomamente ferramentas de pesquisa com base apenas em sinais de recompensa, sem dados supervisionados. O ReSearch foi validado no conjunto de dados HotpotQA e é generalizado para conjuntos de dados como Bamboogle e StrategyQA. O ReSearch está hospedado no GitHub, com código completo e documentação experimental, e é adequado para que os pesquisadores reproduzam ou ampliem suas explorações de combinação de RL e LLM.
Lista de funções
- Aprendizado aprimorado Pipeline de treinamentoSuporte para treinamento de modelos grandes a partir do zero, configurações completas de parâmetros e projetos de sinais de recompensa.
- Chamada da ferramenta de pesquisaModelos: os modelos podem invocar automaticamente ferramentas de pesquisa com base em perguntas para melhorar a precisão de tarefas de raciocínio complexas.
- Adaptação de vários conjuntos de dadosApós o treinamento no HotpotQA, ele pode ser estendido a conjuntos de dados como Bamboogle, StrategyQA, etc.
- Suporte à avaliação de desempenhoIntegração do ambiente FlashRAG: integre o ambiente FlashRAG para testar rapidamente o desempenho de um modelo em um conjunto de desenvolvimento.
- implementação de código abertoCódigo detalhado e configurações experimentais para facilitar a reprodução de pesquisas e o desenvolvimento secundário.
Usando a Ajuda
Processo de instalação
O ReSearch requer um ambiente de GPU e depende das estruturas verl e FlashRAG. Veja a seguir as etapas detalhadas de instalação:
1. preparação ambiental
- Requisitos do sistemaRecomendamos o Linux (por exemplo, Ubuntu), pois o Windows pode ter problemas de compatibilidade.
- Versão PythonRequer Python 3.11 ou superior.
- Configuração da GPUSuporte para GPUs NVIDIA: instale o CUDA 12.4 (para corresponder à versão do torch).
2. clonagem de armazéns
Digite o seguinte comando no terminal:
git clone https://github.com/Agent-RL/ReSearch.git
cd ReSearch
3. instalação do ambiente verl
O ReSearch é baseado no verl para treinamento de aprendizagem por reforço, e as etapas de instalação são as seguintes:
cd verl
pip3 install -e .
cd ...
- versão de dependênciaTorch==2.4.0+cu124, vllm==0.6.3, ray==2.10.0. Se houver algum conflito, instale-o manualmente:
pip install torch==2.4.0+cu124 vllm==0.6.3 ray==2.10.0
4. instalação do ambiente FlashRAG
O FlashRAG é usado para avaliar e RAG Serviço, método de instalação:
git clone https://github.com/RUC-AIBox/FlashRAG.git
cd FlashRAG
pip3 install -e .
cd ... /ReSearch
5. download de modelos pré-treinados
O Qwen2.5-7B é usado por padrão, baixado do site Hugging Face:
git lfs install
git clone https://huggingface.co/Qwen/Qwen2.5-7B
Registre o caminho do modelo e configure-o para uso posterior.
Uso
Início do serviço RAG
- Download de dados pré-indexadosObtenha o índice, o corpus e o modelo de recuperação da Wikipédia a partir de um documento FlashRAG.
- Serviços de configuração:: Editorial
rag_serving/serving_config.yaml
As IDs de GPU dos modelos de pesquisa, índices, caminhos de corpus e IDs de GPU disponíveis são preenchidas. - Serviços operacionais::
conda activate flashrag python rag_serving/serving.py --config rag_serving/serving_config.yaml --num_retriever 1 --port 8000
O suporte à pesquisa é fornecido quando o serviço estiver em execução.
Modelos de treinamento
- Preparar dadosFaça o download do conjunto de dados HotpotQA e execute o script de pré-processamento:
python training/data_preprocess_hpqa.py
Os dados de treinamento e desenvolvimento gerados são salvos no formato parquet.
- Parâmetros de configuraçãoModificação
treinamento/run.sh
A seguir estão alguns dos recursos que você pode usar para configurar o caminho do modelo, o URL de pesquisa, o caminho dos dados etc. - treinamento de preparação::
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/
- Treinamento com GPU de nó único 8, vários nós exigem ajuste de raio.
modelo de avaliação
- Iniciando o serviço de modeloApós o treinamento, o modelo é implantado usando o SGLang:
python3 -m sglang.launch_server --served-model-name research --model-path runs/trained_model --tp 2 --context-length 8192 --port 80
- Avaliação operacional::
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name hotpotqa
- Os resultados são salvos em
avaliação/resultados/
Suporte para troca de conjuntos de dados (por exemplo, Bamboogle).
- Os resultados são salvos em
Operação da função em destaque
- Chamada da ferramenta de pesquisa::
- Após o treinamento, o modelo pode determinar automaticamente se deve ou não chamar a ferramenta de pesquisa. Por exemplo, digite "How many moons does Jupiter have?" (Quantas luas Júpiter tem?):
python inference.py --model_path runs/trained_model --question "Quantas luas Júpiter tem?"
Exemplo de saída:
Júpiter tem 95 luas conhecidas desde 2025.
. - Processo: o modelo gera uma consulta de pesquisa com base na pergunta e chama o serviço RAG para obter as informações e, em seguida, raciocinar sobre a resposta.
- Após o treinamento, o modelo pode determinar automaticamente se deve ou não chamar a ferramenta de pesquisa. Por exemplo, digite "How many moons does Jupiter have?" (Quantas luas Júpiter tem?):
- Generalização entre conjuntos de dados::
- Teste de desempenho do modelo no StrategyQA:
python evaluation/run_eval.py --config_path evaluation/eval_config.yaml --method_name research --split dev --dataset_name strategyqa
O resultado contém o processo de raciocínio e a resposta, verificando a capacidade de generalização.
- Teste de desempenho do modelo no StrategyQA:
advertência
- Requisitos de hardwareMemória de vídeo: 24 GB ou mais de memória de vídeo para treinamento, 16 GB para avaliação.
- Monitoramento de registrosUse o TensorBoard para visualizar o progresso do treinamento:
tensorboard --logdir runs/
- resolução de falhasSe você receber um erro, verifique a versão da dependência ou verifique os problemas do GitHub.
Com isso, os usuários podem reproduzir totalmente os experimentos do ReSearch e explorar a combinação de aprendizagem por reforço e modelos grandes.