O modelo de inferência 32B usa apenas 1/8 dos dados e está empatado com DeepSeek-R1 do mesmo tamanho!

Agora mesmo, instituições como Stanford, UC Berkeley e a Universidade de Washington lançaram em conjunto um modelo de inferência de nível SOTA, Pensador Aberto-32B, e também disponibilizamos de código aberto até 114 mil dados de treinamento.

Página inicial do Projeto OpenThinker:

OpenThinker Abraçando Rosto:

Conjunto de dados de pensamentos abertos:

Descoberta em equipe: usando um conjunto de dados de alta qualidade em larga escala com anotações verificadas DeepSeek-R1 (com base na destilação R1), um modelo de inferência SOTA pode ser treinado.

O método específico é dimensionar os dados, verificar o processo de inferência e dimensionar o modelo.

O OpenThinker-32B resultante superou os modelos s1 e s1.1 de Li Fei-Fei em vários testes de benchmark em matemática, codificação e ciências, e ficou próximo do R1-Distill-32B.

Vale mencionar que, em comparação com o R1-Distill-32B, que usou 800 mil dados (incluindo 600 mil amostras de inferência), o OpenThinker-32B usou apenas 114 mil dados para obter quase os mesmos resultados excelentes.

Além disso, o OpenThinker-32 também tornou públicos todos os pesos do modelo, conjuntos de dados, código de geração de dados e código de treinamento!

Curadoria de dados

Os pesquisadores treinaram o OpenThinker-32B usando o mesmo conjunto de dados OpenThoughts-114k que haviam treinado anteriormente o OpenThinker-7B.

Eles usaram o modelo DeepSeek-R1 para coletar os processos de raciocínio e tentativas de resposta para um conjunto cuidadosamente selecionado de 173.000 perguntas. Esses dados brutos foram então publicados como o conjunto de dados OpenThoughts-Unverified-173k.

A etapa final do processo é filtrar as amostras de dados correspondentes caso o processo de raciocínio não passe na verificação.

A figura a seguir exibe visualmente todo o processo.

A equipe de pesquisa primeiro insere dados de origem ou prompts de perguntas, que podem vir de diferentes campos e plataformas, como BAAI/TACO, DeepMind, envios em Python, etc., abrangendo vários aspectos, como código, quebra-cabeças, ciência e matemática.

Essas diversas entradas são então passadas para o módulo de processamento central, DeepSeek-R1, onde os dados são analisados e processados. As perguntas são divididas em três categorias: perguntas de ciências, matemática e quebra-cabeças, e código.

Alguns resultados não exigem verificação e podem ser análises simples ou saídas diretas. Para alguns conteúdos que exigem verificação aprofundada, um modelo de linguagem grande (LLM) é usado para julgá-lo de uma forma comparável ao GT (Ground Truth). Se for código, o código é executado e testes unitários são realizados para garantir sua correção e eficácia.

Por fim, os resultados de diferentes direções podem ser combinados para gerar pensamento aberto e soluções mais abrangentes.

A equipe de pesquisa atualizou o conjunto de dados final OpenThoughts-114k com uma configuração chamada “metadados” que contém algumas colunas adicionais usadas para construir o conjunto de dados:

  • problema
  • solução_da_verdade_fundamental
  • test_cases (somente código)
  • starter_code (somente código)
  • DeepSeek_raciocínio
  • DeepSeek_solução
  • domínio
  • fonte

Esses metadados adicionais facilitarão o uso desse conjunto de dados em novos cenários, como filtragem de dados, troca de domínio, verificações e alteração do modelo do processo de inferência.

Esses metadados adicionais facilitarão o uso desse conjunto de dados, e isso pode ser feito com apenas uma linha de código, como filtragem, alteração de domínio, verificação de verificação e alteração do modelo de rastreamento de inferência.

load_dataset("pensamentos-abertos/OpenThoughts-114k", "metadados", split="train")

A equipe de pesquisa diz que está ansiosa para ver a comunidade alavancar essas perguntas e respostas padrão para pesquisa sobre aprendizado por reforço (RL) no modelo OpenThinker. O DeepScaleR já demonstrou que essa abordagem funciona particularmente bem em escalas menores.

Verificação

Para chegar ao conjunto de dados final OpenThoughts-114k, a equipe de pesquisa verificou as respostas e eliminou as respostas incorretas.

Conforme mostrado na tabela abaixo, reter inferências que não passam na verificação pode prejudicar o desempenho, embora o modelo não verificado ainda tenha um bom desempenho em comparação aos outros modelos de inferência 32B.

O papel da verificação é manter a qualidade das anotações R1 enquanto expande a diversidade e o tamanho do conjunto de prompts de treinamento. Por outro lado, dados não verificados podem ser expandidos mais facilmente e, portanto, também vale a pena explorar mais.

Para problemas de código, concluímos a verificação do processo de inferência verificando as tentativas de resposta em relação aos casos de teste existentes.

Inspirados pelos desafios enfrentados durante a execução do código, implementamos uma estrutura de execução de código no Curator que permite aos usuários executar código em escala, com segurança, e verificá-lo em relação à saída esperada.

Para problemas matemáticos, a equipe de pesquisa utilizou um juiz LLM (Large Language Model) para verificação, que recebe tanto a resposta padrão quanto a tentativa de solução DeepSeek-R1.

Foi descoberto que usar o avaliador LLM para geração de dados em vez do mecanismo de análise mais rigoroso (Math-Verify) resultou em uma taxa de dados efetiva mais alta e permitiu o treinamento de modelos posteriores com melhor desempenho.

Treinamento

A equipe de pesquisa usou o LLaMa-Factory para ajustar o Qwen2.5-32B-Instruct três vezes no conjunto de dados OpenThoughts-114k com um comprimento de contexto de 16k. A configuração completa do treinamento pode ser encontrada no GitHub.

O OpenThinker-32B foi treinado por 90 horas usando quatro nós P5 8xH100 em um cluster AWS SageMaker, para um total de 2.880 horas H100.

Enquanto isso, o OpenThinker-32B-Unverified treinou por 30 horas no supercomputador Leonardo usando 96 nós 4xA100 (64 GB por GPU), acumulando 11.520 horas A100.

Avaliação

A equipe de pesquisa usou a biblioteca de avaliação de código aberto Evalchemy para avaliar todos os modelos.

Para AIME24 e AIME25, eles calcularam a precisão pela média dos resultados de cinco execuções. A configuração de avaliação usou um parâmetro de temperatura de 0,7, limitou a resposta do modelo a 32.768 tokens, não adicionou nenhuma palavra adicional de prompt do sistema ou do usuário e não usou nenhuma estratégia especial de decodificação (como forçar orçamento).

Quando o projeto OpenThoughts foi lançado, eles estabeleceram a meta de criar um modelo de dados abertos com desempenho que pudesse corresponder ao DeepSeek-R1-Distill-Qwen-32B.

Agora essa lacuna foi quase eliminada.

Por fim, a equipe de pesquisa está animada com o rápido progresso que a comunidade fez na construção de modelos de inferência de dados abertos nas últimas semanas e espera continuar avançando com base nos insights uns dos outros.

O lançamento de código aberto do OpenThinker-32B demonstra que as sinergias entre dados, validação e tamanho do modelo são essenciais para melhorar os recursos de inferência.

Este resultado não apenas promove o desenvolvimento de modelos de inferência de código aberto, mas também fornece recursos valiosos e inspiração para toda a comunidade de IA.

Publicações semelhantes

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *