Acesso no exterior: www.kdjingpai.com
Ctrl + D Marcar este site como favorito

O Verifiers é uma biblioteca de componentes modulares para criar ambientes de Aprendizado por Reforço (RL) e treinar agentes de Modelagem de Linguagem Ampla (LLM). O objetivo desse projeto é fornecer um conjunto de ferramentas confiáveis que permitam aos desenvolvedores criar, treinar e avaliar facilmente os agentes LLM. O Verifiers contém uma biblioteca baseada no transformers Implementação do instrutor do instrutor assíncrono GRPO (Generalised Reinforcement Learning with Policy Optimization) e obteve o prime-rl O suporte do projeto para treinamento FSDP (Fully Sharded Data Parallel) em larga escala. Além do treinamento de aprendizagem por reforço, o Verifiers também pode ser usado diretamente para criar avaliações LLM, criar pipelines de dados sintéticos e implementar procedimentos de controle de agentes. O projeto pretende ser um kit de ferramentas confiável que minimiza o problema da "proliferação de bases de código bifurcadas", comum no ecossistema de infraestrutura de aprendizagem por reforço, e fornece uma base de desenvolvimento estável para os desenvolvedores.

Lista de funções

  • Componentes de ambiente modularFornecimento de um conjunto modular de componentes para a criação de ambientes de aprendizado por reforço, facilitando a criação e a personalização de ambientes.
  • Suporte a vários tipos de ambiente:
    • SingleTurnEnvPara tarefas que exigem apenas uma única resposta do modelo por pista.
    • ToolEnvSuporte para a criação de loops de agente usando a ferramenta nativa do modelo ou os recursos de chamada de função.
    • MultiTurnEnvInterface de interação ambiental personalizada: fornece uma interface para a criação de protocolos de interação ambiental personalizados para diálogos de várias rodadas ou tarefas interativas.
  • Treinador integrado: Contém um GRPOTrainerEle usa vLLM Inferência, suporte para execução via Accelerate/DeepSpeed GRPO Treinamento intensivo de aprendizado em estilo.
  • ferramenta de linha de comando:: Fornece ferramentas práticas de linha de comando para agilizar o fluxo de trabalho:
    • vf-initInicialização de um novo modelo de módulo de ambiente.
    • vf-installInstalar o módulo de ambiente no projeto atual.
    • vf-evalAvalie rapidamente os ambientes usando modelos de API.
  • Integração e compatibilidadepode ser facilmente integrado a qualquer estrutura de aprendizado por reforço que ofereça suporte a um cliente de inferência compatível com a OpenAI e que ofereça suporte nativo ao uso do prime-rl trabalhar em conjunto para um treinamento mais eficiente e em maior escala.
  • Incentivos flexíveis:: Adoção Rubric As classes que encapsulam uma ou mais funções de recompensa podem definir critérios de avaliação complexos para conclusões geradas por modelos.

Usando a Ajuda

A biblioteca Verifiers se propõe a trabalhar com uv Package Manager juntos em seu projeto.

1. instalação

Primeiro, você precisa criar um novo ambiente virtual e ativá-lo.

# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 初始化一个新项目
uv init
# 激活虚拟环境
source .venv/bin/activate

Em seguida, instale os Verifiers de acordo com suas necessidades:

  • Desenvolvimento e avaliação local (CPU)Se você usar o modelo de API apenas para desenvolvimento e avaliação, a instalação da biblioteca principal é suficiente.
    # 安装核心库
    uv add verifiers
    # 如果需要 Jupyter 和测试支持
    uv add 'verifiers[dev]'
    
  • Treinamento em GPUSe você planeja usar vf.GRPOTrainer Para o treinamento de modelos em GPUs, você precisa instalar a versão com todas as dependências e, adicionalmente, instalar o flash-attn.
    uv add 'verifiers[all]' && uv pip install flash-attn --no-build-isolation
    
  • Use a versão de desenvolvimento mais recente: Você também pode obter o main Montagem de ramificação.
    uv add verifiers @ git+https://github.com/willccbb/verifiers.git
    
  • Instalação a partir da fonte (desenvolvimento da biblioteca principal)Se você precisar modificar a biblioteca principal do Verifiers, poderá instalá-la a partir do código-fonte.
    git clone https://github.com/willccbb/verifiers.git
    cd verifiers
    uv sync --all-extras && uv pip install flash-attn --no-build-isolation
    uv run pre-commit install
    

2. criar e gerenciar o ambiente

Os verificadores tratam cada ambiente de aprendizado por reforço como um módulo Python instalável.

  • Inicialização de um novo ambiente: Uso vf-init cria um novo modelo de ambiente.
    # 创建一个名为 my-new-env 的环境
    vf-init my-new-env
    

    Esse comando adiciona um novo comando ao environments/my-new-env para gerar um arquivo contendo o pyproject.toml e a estrutura básica do modelo de ambiente.

  • ambiente de instalação: Depois de criado, use o vf-install Instale-o em seu ambiente Python para que possa ser importado e usado.
    # 安装本地环境
    vf-install my-new-env
    # 你也可以直接从 verifiers 官方仓库安装示例环境
    vf-install vf-math-python --from-repo
    

3. ambiente de uso

Depois de instalar o ambiente, você pode usar o comando vf.load_environment carrega-o e o avalia ou treina.

  • Ambiente de carregamento:
    import verifiers as vf
    # 加载已安装的环境,并传入必要的参数
    vf_env = vf.load_environment("my-new-env", **env_args)
    
  • Avaliação rápida do ambiente: Uso vf-eval para testar rapidamente seu ambiente. O padrão é usar o comando gpt-4.1-mini com 3 implementações para cada uma das 5 pistas.
    # 对名为 my-new-env 的环境进行评估
    vf-eval my-new-env
    

4. elementos essenciais do ambiente

Um ambiente do Verifiers consiste nos seguintes componentes principais:

  • Conjuntos de dadosUm conjunto de dados de rosto abraçado deve conter um prompt como entrada.
  • Lógica de lançamento: a maneira como o modelo interage com o ambiente, por exemplo, no MultiTurnEnv definido em env_response responder cantando is_completed Métodos.
  • Critérios de avaliação (Rubricas)Função de recompensa: Usada para encapsular uma ou mais funções de recompensa que pontuam a saída do modelo.
  • AnalisadoresComponente opcional para encapsular a lógica de análise reutilizável.

5. modelos de treinamento

O Verifiers oferece dois tipos principais de treinamento:

  • Usando o GRPOTrainer:
    Esse treinador é adequado para o treinamento denso eficiente em 2 a 16 GPUs. Transformador Modelos.

    # 步骤1: 启动 vLLM 推理服务器 (shell 0)
    # 假设使用7个GPU进行数据并行
    CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6 vf-vllm --model your-model-name \
    --data-parallel-size 7 --enforce-eager --disable-log-requests
    # 步骤2: 启动训练脚本 (shell 1)
    # 使用剩余的GPU进行训练
    CUDA_VISIBLE_DEVICES=7 accelerate launch --num-processes 1 \
    --config-file configs/zero3.yaml examples/grpo/train_script.py --size 1.7B
    
  • fazer uso de prime-rl (Recomendado):
    prime-rl é um projeto externo que oferece suporte nativo a ambientes criados com Verifiers e proporciona melhor desempenho e escalabilidade por meio do FSDP. Ele tem uma configuração e uma experiência de usuário mais maduras.

    # 在 prime-rl 的配置文件中指定环境
    # orch.toml
    [environment]
    id = "your-env-name"
    # 启动 prime-rl 训练
    uv run rl \
    --trainer @ configs/your_exp/train.toml \
    --orchestrator @ configs/your_exp/orch.toml \
    --inference @ configs/your_exp/infer.toml
    

cenário do aplicativo

  1. Treinamento de inteligências específicas de tarefas
    Utilizar ToolEnv talvez MultiTurnEnvOs desenvolvedores podem criar ambientes interativos complexos e treinar inteligências LLM para aprender a usar ferramentas externas (por exemplo, calculadoras, mecanismos de pesquisa) ou para concluir tarefas específicas (por exemplo, reserva de passagens aéreas, suporte ao cliente) em um diálogo de várias rodadas.
  2. Criação de um processo de avaliação automatizado
    SingleTurnEnv pode ser usado para criar processos de avaliação automatizados. Ao definir um processo de avaliação que contém respostas padrão e critérios de avaliação (Rubric) que permite comparações quantitativas do desempenho de diferentes modelos, por exemplo, avaliando a correção de uma tarefa de geração de código ou a qualidade de um resumo de texto.
  3. Gerar dados sintéticos de alta qualidade
    Uma grande quantidade de dados sobre as interações modelo-ambiente pode ser gerada por meio do processo de interação do ambiente (rollout). Esses dados podem ser salvos como conjuntos de dados Hugging Face e usados para o ajuste fino supervisionado (SFT) subsequente ou outro treinamento de modelo, um pipeline eficiente para a geração de dados sintéticos.
  4. Pesquisa acadêmica e validação de algoritmos
    O Verifiers oferece uma plataforma de experimentação modular e reproduzível para pesquisadores de aprendizagem por reforço. Os pesquisadores podem implementar facilmente novos protocolos de interação, funções de recompensa ou algoritmos de treinamento e verificar sua eficácia em um ambiente padronizado.

QA

  1. O que a biblioteca Verifiers tem a ver com o prime-rl?
    prime-rl é uma estrutura de treinamento autônoma que suporta nativamente ambientes criados com o uso do Verifiers. O Verifiers se concentra em fornecer componentes para a criação de ambientes de RL, enquanto o prime-rl Em vez disso, ele se concentra em fornecer uma solução de treinamento FSDP (Paralelismo de dados totalmente fatiados) mais avançada, com melhor desempenho e melhor escalonamento. Para treinamento em larga escala, a recomendação oficial é usar prime-rl.
  2. Como posso definir uma função de bônus para o meu ambiente?
    Você precisará configurar o vf.Rubric Defina uma ou mais funções de recompensa no objeto. Cada função recebe promptecompletion e outros parâmetros e retorna um número de ponto flutuante como o valor da recompensa. Você também pode definir pesos diferentes para funções de recompensa diferentes.
  3. Preciso implementar eu mesmo a lógica de interação do modelo?
    Não necessariamente. Para questionários de rodada única e cenários de chamada de ferramenta padrão, você pode simplesmente usar o SingleTurnEnv responder cantando ToolEnv. A herança só é necessária se seu aplicativo exigir fluxos de interação muito exclusivos e fora do padrão MultiTurnEnv reescrever simultaneamente is_completed responder cantando env_response Métodos.
  4. O que devo fazer se encontrar erros relacionados ao NCCL durante o treinamento?
    De acordo com a documentação oficial, o vLLM pode sofrer interrupções na comunicação entre as GPUs ao sincronizar pesos. Você pode tentar definir o parâmetro NCCL_P2P_DISABLE=1 para corrigir o problema. Se o problema persistir, tente configurar o NCCL_CUMEM_ENABLE=1 ou levantar um problema com o projeto.
0Marcado
0Recomendado

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

Novos lançamentos

voltar ao topo

pt_BRPortuguês do Brasil