1 pontos por GN⁺ 2025-05-01 | 1 comentários | Compartilhar no WhatsApp
  • O MiMo-7B da Xiaomi é uma série de modelos de linguagem de 7B treinada do zero para tarefas de raciocínio, com checkpoints dos modelos base, SFT e RL publicados como open source
  • Na atualização de 30 de maio de 2025, o dataset de SFT foi ampliado de cerca de 500 mil para 6 milhões de exemplos, e a janela de treino de RL foi expandida de 32K para 48K, levando o MiMo-7B-RL-0530 a alcançar 80.1 no AIME 2024
  • O pré-treinamento usa cerca de 25 trilhões de tokens e uma estratégia de mistura de dados em 3 estágios, incluindo filtragem de dados para aumentar a densidade de padrões de raciocínio, dados sintéticos de raciocínio e Multiple-Token Prediction
  • O pós-treinamento usa 130 mil problemas de matemática e código, verificadores baseados em regras, recompensa de acurácia baseada em regras, recompensa baseada na dificuldade dos testes para problemas de código e uma estratégia de reamostragem para problemas fáceis
  • A implantação oferece exemplos com SGLang, um fork do vLLM da Xiaomi e HuggingFace; a validação do MiMo em outros motores de inferência ainda não foi concluída e contribuições são bem-vindas

Objetivo da série MiMo-7B e escopo da publicação

  • O MiMo-7B é uma série de modelos criada com o objetivo de extrair o potencial de raciocínio de modelos de linguagem desde o pré-treinamento até o pós-treinamento
  • Os checkpoints publicados são os 4 seguintes
  • Os modelos estão disponíveis no HuggingFace e no ModelScope
  • O relatório técnico foi publicado no arXiv

Atualização de 30 de maio de 2025

  • O MiMo-7B-RL-0530 reflete os resultados da expansão do dataset de SFT de cerca de 500 mil para 6 milhões de exemplos, além da continuação da expansão da janela de treino de RL de 32K para 48K
  • No AIME 2024, o MiMo-7B-RL-0530 registrou 80.1, superando os 79.8 do DeepSeek R1
  • As principais mudanças nos benchmarks são as seguintes
    • MATH500 Pass@1: 95.8 → 97.2
    • AIME 2024 Pass@1: 68.2 → 80.1
    • AIME 2025 Pass@1: 55.4 → 70.2
    • LiveCodeBench v5 Pass@1: 57.8 → 60.9
    • LiveCodeBench v6 Pass@1: 49.3 → 52.2
    • GPQA-Diamond Pass@1: 54.4 → 60.6
    • Alignbench1.1, avaliação GPT-4.1: 6.9 → 7.4

Pré-treinamento: modelo base para raciocínio

  • O MiMo-7B-Base é um modelo base treinado do zero para tarefas de raciocínio
  • O pré-treinamento usa cerca de 25 trilhões de tokens
  • No processamento de dados, foram melhoradas as ferramentas de extração de texto e aplicada filtragem de dados multidimensional para aumentar a densidade de padrões de raciocínio nos dados de pré-treinamento
  • Foram usadas várias estratégias para gerar diversos grandes volumes de dados sintéticos de raciocínio
  • Uma estratégia de mistura de dados em 3 estágios foi aplicada no pré-treinamento
  • Multiple-Token Prediction foi incluído como objetivo adicional de treinamento para melhorar o desempenho e a velocidade de raciocínio do modelo

Pós-treinamento e método de treinamento com RL

  • No pós-treinamento, foram usados como dados de treino de RL 130 mil problemas de matemática e código verificáveis por validadores baseados em regras
  • Cada problema passa por curadoria e avaliação de dificuldade para garantir a qualidade
  • Para evitar possível reward hacking, foi usada apenas recompensa de acurácia baseada em regras
  • Para aliviar o problema de recompensa esparsa em problemas difíceis de código, foi introduzida uma recompensa de código baseada na dificuldade dos testes
    • Pontuações detalhadas são atribuídas a casos de teste com diferentes níveis de dificuldade
    • A política pode ser otimizada com sinais de recompensa mais densos
  • Para problemas fáceis, foi aplicada uma estratégia de reamostragem de dados para aumentar a eficiência da amostragem de rollout, especialmente estabilizando a atualização da política na fase final do treino de RL

Infraestrutura de RL e arquitetura do modelo

  • O Seamless Rollout Engine foi desenvolvido para acelerar o treino e a validação em RL
  • O design combina rollouts contínuos, cálculo assíncrono de recompensa e encerramento antecipado para reduzir o tempo ocioso de GPU
  • Os números de melhora de desempenho são os seguintes
    • Velocidade de treino 2,29x maior
    • Velocidade de validação 1,96x maior
  • As camadas MTP do MiMo-7B são ajustadas durante o pré-treinamento e o SFT, e ficam congeladas durante o RL
  • Ao usar 1 camada MTP para decodificação especulativa, a taxa de aceitação é de cerca de 90%
  • Há suporte a MTP no vLLM, e a robustez do motor de inferência do sistema de RL foi reforçada

Resultados de avaliação

  • O MiMo-7B-RL é apresentado como tendo desempenho comparável ao OpenAI o1-mini em tarefas de raciocínio matemático e de código
  • Na comparação entre os principais modelos, os resultados de matemática e código do MiMo-7B-RL são os seguintes
    • MATH-500 Pass@1: 95.8
    • AIME 2024 Pass@1: 68.2
    • AIME 2025 Pass@1: 55.4
    • LiveCodeBench v5 Pass@1: 57.8
    • LiveCodeBench v6 Pass@1: 49.3
  • Na comparação interna da série MiMo-7B, o desempenho sobe significativamente após a aplicação de RL
    • MATH500: Base 37.4 → RL-Zero 93.6 → SFT 93.0 → RL 95.8
    • AIME 2024: Base 32.9 → RL-Zero 56.4 → SFT 58.7 → RL 68.2
    • LiveCodeBench v5: Base 32.9 → RL-Zero 49.1 → SFT 52.3 → RL 57.8
  • A configuração de avaliação é temperature=0.6
  • As condições de avaliação repetida são as seguintes
    • AIME24 e AIME25 são média de 32 repetições
    • LiveCodeBench v5, LiveCodeBench v6, GPQA-Diamond e IF-Eval são média de 8 repetições
    • MATH500 e SuperGPQA são execução única

Implantação e uso em inferência

  • O SGLang oferece suporte principal ao MiMo por meio do suporte ao modelo MiMo e ao MTP
  • Para inferência com vLLM, recomenda-se usar o fork de vLLM da Xiaomi
    • Fork recomendado: XiaomiMiMo/vllm
    • Esse fork foi desenvolvido com base no vLLM 0.7.3
  • Também é possível registrar o loader do vLLM de modo que ele não carregue os parâmetros de MTP
  • O exemplo de inferência no HuggingFace usa AutoModelForCausalLM.from_pretrained e AutoTokenizer.from_pretrained
  • A configuração de prompt recomendada é um system prompt vazio
  • A validação do MiMo em outros motores de inferência ainda não foi concluída, e são aceitas contribuições baseadas na definição do modelo no repositório do HuggingFace

1 comentários

 
GN⁺ 2025-05-01
Opiniões no Hacker News
  • Achei interessante como o artigo lidou com a etapa de aprendizado por reforço para dados de código. Eles treinaram executando, com testes unitários, tarefas de geração de código difíceis, mas solucionáveis; fiquei curioso se outros modelos também passam por esse tipo de etapa de treinamento.
    O artigo diz que eles removeram problemas sem casos de teste; excluíram aqueles em que, mesmo havendo código de referência, ele não passava em todos os testes; e, para problemas sem código de referência, descartaram os que não eram resolvidos em nenhum teste após 16 amostragens de um modelo avançado de raciocínio. Também filtraram problemas fáceis usando a versão SFT do MiMo-7B, chegando no fim a 30 mil problemas de código.
    Além disso, como a cada iteração de aprendizado por reforço era preciso avaliar milhares de problemas e centenas de casos de teste por problema, eles criaram um ambiente de online judge que executa uma quantidade enorme de testes unitários em paralelo para eliminar tempo ocioso de GPU.

    • Existe caso de fazer aprendizado por reforço sem testes unitários? Se não, seria surpreendente, pois isso significaria que outros criadores de modelos ignoram a precisão.
      Pode funcionar para pequenos problemas modulares, mas talvez esse método seja difícil para problemas com entrada de 200 mil tokens.
  • Fico me perguntando por que há tantos modelos de IA vindos da China que são prioritariamente em inglês. Não sei se é porque eles não pretendem mirar usuários domésticos, ou porque, mesmo lançando um modelo prioritariamente em chinês, seria difícil chamar atenção no Ocidente.

    • O CommonCrawl é o maior e mais acessível conjunto de dados legal de crawling, coletando dados desde 2008. Quase todo mundo o usa como dataset básico para treinar grandes modelos de linguagem de base e, como a maior parte é em inglês, os modelos acabam ficando bons em inglês.
      https://commoncrawl.org/
    • Em pesquisa científica, especialmente em benchmarks de IA, o inglês parece ter se tornado a língua padrão de fato.
      Testar algo diretamente em chinês é claramente impossível para mim; seria necessária tradução.
    • O que achei interessante neste artigo sobre entender LLMs foi a parte em que os modelos conectam palavras e conceitos de diferentes línguas por meio de circuitos multilíngues (Multilingual Circuits).
      O exemplo é algo como o oposto de “small” em inglês levar a big, o oposto de “petit” em francês levar a grand, e o oposto de “小” em chinês levar a “大”. A figura relacionada também é bem legal.
      O inglês é a língua franca da internet e compõe o maior corpus, mas os modelos mainstream conseguem usar datasets em inglês para construir associações entre idiomas. Por isso, comunidades linguísticas com poucos dados, tecnologia e recursos, e para as quais é difícil criar modelos regionais próprios, podem acabar tendo uma IA e capacidade de raciocínio muito mais fortes.
      https://www.anthropic.com/research/tracing-thoughts-language...
      https://www.anthropic.com/_next/image?url=https%3A%2F%2Fwww-...
    • Imagino que uma parte significativa do material de treinamento de alta qualidade esteja em inglês.
    • A internet chinesa é composta, em grande parte, por alguns jardins murados fortemente controlados por grandes empresas. Quando cada empresa mobiliza batalhões de engenheiros para proteger seus próprios dados, crawlers não funcionam direito.
      Muitos sites populares também são apenas para apps, o que torna impossível obter o corpus necessário para treinar bons LLMs.
  • Para um modelo 7B, o desempenho em programação é forte a ponto de ser difícil de acreditar. O Gemini Pro 2.5 que eu uso marca 67,8, enquanto este modelo marca 57,8, ficando muito perto do Gemini 2.5 Flash, que marca 60,6.
    Depois das histórias envolvendo o llama4, fiquei bastante cético em relação a resultados de avaliação, então ainda é preciso ver onde ele fica em avaliações privadas, mas os números atuais são muito impressionantes.

  • Versão GGUF que pode ser usada no LM Studio, Ollama etc.: https://huggingface.co/jedisct1/MiMo-7B-RL-GGUF

  • Fico curioso se, ao usar arquivos gguf no Ollama, as pessoas normalmente criam e usam diretamente um Modelfile para acompanhar, ou se esperam que os padrões do Ollama também sirvam bem para novos modelos
    https://github.com/ollama/ollama/blob/main/docs%2Fmodelfile....

    • Um dos principais objetivos de Georgi Gerganov ao projetar o GGUF era não precisar de outros arquivos. O primeiro item da especificação é literalmente distribuição em arquivo único
      Diz que todas as informações necessárias para carregar o modelo estão dentro do arquivo do modelo, e que o usuário não precisa fornecer informações adicionais
      https://github.com/ggml-org/ggml/blob/master/docs/gguf.md
      É uma pena: mal se eliminou a confusão de múltiplos arquivos, e o Ollama acabou reintroduzindo isso
    • Ao executar ollama pull, o Modelfile também é baixado junto com o blob. Se quiser modificar um modelo de forma permanente, você pode copiar o Modelfile para um editor de texto, fazer as alterações necessárias e criar um novo modelo a partir do Modelfile existente
      Meu fluxo de trabalho no Open WebUI é verificar com ollama show qwen3:30b-a3b-q8_0 --modelfile, colar o conteúdo do Modelfile em admin -> models -> OpenwebUI, mudar o nome para algo como qwen3:30b-a3b-q8_0-monkversion-1, ajustar o número de camadas com parâmetros como num_gpu 90 e então manter ou apagar o arquivo antigo
      Dentro do Modelfile há uma instrução dizendo que, para criar um novo Modelfile, é preciso alterar o FROM para algo como # FROM qwen3:30b-a3b-q8_0, e também verificar se o caminho está correto. Para mim isso é importante porque armazeno os modelos em um SSD NVMe grande, não no local padrão do Ollama
      Além disso, detesto o fluxo de trabalho com Modelfile, porque é um padrão realmente trabalhoso e ruim. Alguns modelos têm 30–60 GB, e copiar tudo só para mudar um parâmetro é uma forma idiota de fazer isso
      Ainda assim, o Ollama faz muita coisa bem e facilita começar. vLLM, SGLang, Mistral.rs e llama.cpp exigem muito mais trabalho de configuração
    • Normalmente, no começo uso os padrões; se for um modelo que vou continuar usando, aí uso um Modelfile. Também deve dar para despejar o Modelfile que o Ollama usa e tomá-lo como template
  • Acho meio engraçado quando benchmarks deixam de fora modelos de ponta como O3, Gemini Pro e Claude 3.7, que hoje têm o melhor desempenho em várias avaliações

    • Esses modelos são muito, muito maiores e são modelos fechados. Os provedores deles também não publicaram versões destiladas identificáveis
      É preciso notar que a maioria dos comparados são modelos 7B. A exceção é o Qwen-2.5-32B-RL-Zero, que também é um modelo de pesos abertos, e o MiMo-7B se sai melhor até do que esse modelo de 32B parâmetros
    • Acho que o objetivo aqui é comparar com modelos semelhantes, otimizados para rodar offline ou em hardware móvel
  • O MiMo-7B afirma ter treinado um modelo 7B do zero, superando modelos maiores como o Qwen-32B e empatando com o OpenAI o1-mini em benchmarks de matemática e código. Fico curioso se isso é um sinal de que a pré-treinamento + otimização por RLHF finalmente começou a superar a força da escala, ou se é apenas uma melhora na habilidade de medir capacidades estreitas em benchmarks

    • Fico curioso se é Qwen 3 ou 2.5
  • O README não diz que tipo de aprendizado por reforço é; só fala RL. Sei que pesquisadores são ocupados e que escrever bem leva tempo, mas gostaria que não deixassem esse tipo de detalhe de fora

    • O relatório técnico trata com bastante profundidade de como o aprendizado por reforço foi usado, incluindo uma função objetivo GRPO modificada. Quanto ao README, acho que a maioria das pessoas atuando nesta área entende o que “RL” significa em modelos de raciocínio
    • Entendi que “RL” significa aprendizado por reforço e, embora já faça uns 10 anos que estudei IA na universidade, acho que escrever apenas RL ainda é perfeitamente razoável. Fico curioso se você queria algo mais específico, como se usaram Q-Learning ou outro algoritmo
  • Fico curioso se este modelo será usado no assistente de IA dos celulares da série Xiaomi 15. Parece bem provável, mas não sei muito bem que resultado isso vai dar

  • É difícil acreditar que esses números de benchmark venham de um modelo 7B

    • O desempenho dos modelos pequenos continua subindo aos poucos. Eles não vão superar de uma vez os modelos principais das grandes empresas, então não viram manchete, mas todos ficaram bastante competentes
      Há pouco tempo rodei um modelo 12B qualquer no Ollama e fiquei surpreso com o quão bom e rápido ele pareceu, considerando a máquina que eu estava usando. Há cerca de um ano, provavelmente não seria assim
    • Se esses números parecem irreais, você deveria ver os números de benchmark do qwen3-4B
      https://qwenlm.github.io/blog/qwen3/
    • Meu palpite é que houve overfitting nos testes
    • Todos os LLMs são, na prática, treinados com benchmarks, então a palavra “benchmark” aplicada a LLMs está ficando bastante sem sentido
    • O melhor modelo de hoje continuará sendo um modelo cada vez pior pelo resto da sua vida