O SimpleDeepSearcher é uma estrutura de código aberto projetada para aprimorar os recursos dos modelos de linguagem grande (LLMs) para tarefas complexas de recuperação de informações. Ele gera inferência e traços de pesquisa de alta qualidade ao simular o comportamento real de pesquisa na Web, ajudando os modelos a serem treinados de forma eficiente sem a necessidade de grandes quantidades de dados. Em comparação com os métodos tradicionais RAG (Retrieval Augmented Generation) ou RL (Reinforcement Learning), o SimpleDeepSearcher usa uma pequena quantidade de dados selecionados para permitir que o modelo execute de forma autônoma tarefas complexas de raciocínio e pesquisa por meio de técnicas de destilação e autodestilação de conhecimento. Desenvolvido pela equipe RUCAIBox e lançado sob a licença MIT, o projeto destina-se a pesquisadores e desenvolvedores para otimizar a funcionalidade de pesquisa de grandes modelos de linguagem. A documentação e o código oficiais estão hospedados no GitHub e foram atualizados pela última vez em abril de 2025.
Lista de funções
- Simulação de pesquisa na WebSimula o comportamento de pesquisa de usuários reais em um ambiente aberto da Web, gerando várias rodadas de inferência e trajetórias de pesquisa.
- Síntese e triagem de dadosGeração de dados de treinamento de alta qualidade por meio de amostragem de consultas diversificadas e filtragem de respostas multidimensionais.
- Monitoramento eficiente do ajuste finoAjuste fino supervisionado: O ajuste fino supervisionado (SFT) pode ser feito com apenas uma pequena quantidade de dados selecionados, reduzindo os custos computacionais.
- Compatível com vários modelosSuporte ao modelo de linguagem grande subjacente existente e ao modelo de diálogo sem ajuste fino adicional dos comandos de inicialização a frio.
- Código-fonte aberto e documentaçãoCódigo de treinamento completo, código de inferência e pontos de verificação do modelo são fornecidos para facilitar o uso e a pesquisa dos desenvolvedores.
Usando a Ajuda
Processo de instalação
O SimpleDeepSearcher é um projeto de código aberto baseado em Python, cujo ambiente de tempo de execução requer o Python 3.10 ou superior. Veja a seguir as etapas detalhadas de instalação:
- Clonagem do depósito do projeto
Clone o repositório SimpleDeepSearcher localmente executando o seguinte comando em um terminal:git clone https://github.com/RUCAIBox/SimpleDeepSearcher.git cd SimpleDeepSearcher
- Criação de um ambiente virtual
Use o conda para criar e ativar um ambiente virtual e garantir o isolamento de dependências:conda create --name simpledeepsearcher python=3.10 conda activate simpledeepsearcher
- Instalação de dependências
Instale as bibliotecas de dependência central exigidas pelo projeto, como vLLM, deepspeed e datasets. Execute o seguinte comando:pip install vllm==0.6.5 pip install packaging ninja flash-attn --no-build-isolation pip install deepspeed accelerate datasets
- Configuração da API de pesquisa
O SimpleDeepSearcher usa a API de pesquisa do Google para pesquisa on-line. O usuário precisa obter a chave de assinatura e o URL do endpoint do Google Search e configurá-lo ao executar o script. Exemplo:export GOOGLE_SUBSCRIPTION_KEY="YOUR_KEY" export GOOGLE_ENDPOINT="https://google.serper.dev/search"
- Preparando o caminho do modelo
O usuário precisa especificar os caminhos para o modelo de inferência e o modelo de resumo. Exemplo:export MODEL_PATH="/path/to/your/reasoning_model" export SUMMARIZATION_MODEL_PATH="/path/to/your/summarization_model"
- Execução de scripts de inferência
Depois de concluir a configuração, execute o script de inferência para teste ou implantação:export CUDA_VISIBLE_DEVICES=0,1 python -u inference/inference.py \ --dataset_name YOUR_DATASET_NAME \ --cache_dir_base cache \ --output_dir_base output \ --model_path "$MODEL_PATH" \ --summarization_model_path "$SUMMARIZATION_MODEL_PATH" \ --summarization_model_url YOUR_SUMMARIZATION_MODEL_URL \ --google_subscription_key "$GOOGLE_SUBSCRIPTION_KEY" \ --google_endpoint "$GOOGLE_ENDPOINT" > output/output.log 2>&1
Funções principais
A principal funcionalidade do SimpleDeepSearcher é aprimorar a inferência de grandes modelos de linguagem por meio da pesquisa na Web. Abaixo está um fluxo detalhado de como os principais recursos funcionam:
- Síntese de dados e geração de trilhas de pesquisa
O SimpleDeepSearcher gera várias rodadas de trajetórias de inferência ao simular o comportamento de pesquisa do usuário em um ambiente real da Web. Os usuários podem configurardata_synthesis
especificando termos de pesquisa e tipos de perguntas. O sistema coleta automaticamente amostras de diversas perguntas de recursos de QA de domínio aberto e obtém conteúdo relevante da Web por meio da API de pesquisa do Google. Os dados gerados, incluindo perguntas, termos de pesquisa, resultados de páginas da Web e caminhos de inferência, são salvos no arquivocache
pasta.
Procedimento operacional:- compilador
data_synthesis_config.json
Definir parâmetros de amostragem de consulta (por exemplo, diversidade de domínio, complexidade de palavras-chave). - estar em movimento
python data_synthesis.py
Gerar dados iniciais. - sonda
cache/synthesis_data
para garantir a geração completa de dados.
- compilador
- Filtragem e otimização de dados
O projeto oferece triagem de resposta multidimensional para garantir a qualidade dos dados de treinamento. Os usuários podem usar oresponse_curation.py
Scripts que filtram dados com base em critérios como dificuldade do problema, comprimento do caminho de inferência e eficácia da pesquisa.
Procedimento operacional:- Execute o seguinte comando para iniciar a triagem:
python response_curation.py --input_dir cache/synthesis_data --output_dir cache/curated_data
- Os dados filtrados são salvos no
cache/curated_data
em que apenas amostras de treinamento de alta qualidade são retidas.
- Execute o seguinte comando para iniciar a triagem:
- Ajuste fino supervisionado por modelo
O SimpleDeepSearcher usa o ajuste fino supervisionado (SFT) para otimizar modelos de idiomas grandes. Os usuários precisam preparar um modelo básico (por exemplo, QWEN2.5-32B) e usar os dados filtrados para o ajuste fino.
Procedimento operacional:- configurar
sft_config.json
especifique o caminho do modelo e os parâmetros de treinamento (por exemplo, taxa de aprendizado, tamanho do lote). - Execute o seguinte comando para iniciar o ajuste fino:
python sft_train.py --config sft_config.json
- Após a conclusão do treinamento, os pontos de verificação do modelo são salvos na pasta
output/checkpoints
Catálogo.
- configurar
- Raciocínio e testes
Os usuários podem testar os recursos de pesquisa e inferência do modelo por meio de scripts de inferência. Os resultados da inferência são enviados para ooutput/results
incluindo respostas geradas e caminhos de inferência.
Procedimento operacional:- Configure os parâmetros de inferência (por exemplo, nome do conjunto de dados, diretório de saída).
- Execute o script de inferência (consulte os comandos no processo de instalação).
- confira
output/output.log
Verifique os resultados do raciocínio.
Operação da função em destaque
- Amostragem de consulta de diversidadeSimpleDeepSearcher: O SimpleDeepSearcher usa uma estratégia de amostragem de consulta de diversidade para selecionar problemas com base na heterogeneidade do domínio, na diversidade de palavras-chave e na complexidade da unidade de conhecimento. Os usuários podem encontrar uma lista de perguntas na seção
query_sampling_config.json
Os parâmetros de amostragem são ajustados para garantir que as perguntas geradas abranjam uma ampla gama de domínios e níveis de dificuldade. - Destilação de conhecimento e autodestilaçãoO projeto gera dados de treinamento de alta qualidade usando modelos de inferência avançados por meio de técnicas de destilação de conhecimento. Os usuários podem especificar um modelo avançado pré-treinado (por exemplo, família LLaMA ou GPT) como o modelo do professor, executar o
distillation.py
script para geração de dados. - Pesquisa na Web em tempo realSimpleDeepSearcher: O SimpleDeepSearcher oferece suporte à pesquisa na Web em tempo real, combinada com a API de pesquisa do Google para obter as informações mais recentes de forma dinâmica. Os usuários precisam ter certeza de que a chave da API é válida e verificar a conexão de rede.
advertência
- Garantir um ambiente de rede estável para suportar pesquisas na Web em tempo real.
- Verifique o caminho do modelo e a configuração da chave de API para evitar erros de tempo de execução.
- As versões da biblioteca de dependências são atualizadas regularmente para garantir a compatibilidade.
- O código e a documentação do projeto seguem a licença MIT, e os usuários são obrigados a citar a fonte (por exemplo, tese).
@article{sun2025simpledeepsearcher}
).
cenário do aplicativo
- pesquisa acadêmica
O SimpleDeepSearcher ajuda os pesquisadores a otimizar o desempenho de grandes modelos de linguagem em tarefas de recuperação de informações. Por exemplo, na recuperação de artigos ou na análise de dados, o modelo pode acessar rapidamente a literatura ou os conjuntos de dados relevantes por meio de pesquisas na Web, melhorando a eficiência da pesquisa. - Desenvolvimento do sistema de perguntas e respostas
Os desenvolvedores podem usar o SimpleDeepSearcher para criar sistemas inteligentes de perguntas e respostas. O sistema simula o comportamento de pesquisa do usuário e gera respostas precisas, o que o torna adequado para bots de atendimento ao cliente ou plataformas educacionais. - Raciocínio de problemas complexos
Para problemas que exigem raciocínio em várias etapas (por exemplo, problemas de matemática ou lógica), o SimpleDeepSearcher ajuda os modelos a fornecer respostas mais precisas, gerando trajetórias de raciocínio, adequadas para educação on-line ou plataformas de competição.
QA
- Quais são os pré-requisitos exigidos pelo SimpleDeepSearcher?
Os usuários precisarão de um ambiente Python 3.10+, uma chave da API de pesquisa do Google e um modelo de linguagem grande pré-treinado. Certifique-se de instalar todas as bibliotecas dependentes e configurar o caminho correto para o modelo. - Como você garante a qualidade dos dados gerados?
O projeto fornece filtragem de resposta multidimensional e os usuários podem ajustar os parâmetros de filtragem (por exemplo, dificuldade da pergunta, comprimento do caminho de inferência) para reter dados de alta qualidade. - Há suporte para outras APIs de pesquisa?
A versão atual é compatível principalmente com a API de pesquisa do Google. Os usuários podem modificar o código para se adaptar a outros serviços de pesquisa, mas precisam ajustar a lógica de chamada da API. - Quanto tempo dura o treinamento?
O tempo de treinamento depende do tamanho do modelo e da quantidade de dados. O ajuste fino de um modelo QWEN2.5-32B com 871 amostras de alta qualidade normalmente leva várias horas (ambiente de GPU).