Modelo de raciocínio MiMo da Xiaomi
(github.com/XiaomiMiMo)- 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
- MiMo-7B-Base: modelo base com potencial de raciocínio
- MiMo-7B-RL-Zero: modelo treinado com RL a partir do modelo base
- MiMo-7B-SFT: modelo treinado com SFT a partir do modelo base
- MiMo-7B-RL: modelo treinado com RL a partir do modelo SFT
- 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
- PRs relacionadas: MiMo model support, MTP
- A documentação de uso está disponível em SGLang documents
- 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
- Arquivo de registro: registry/register_mimo_in_vllm.py
- O exemplo de inferência no HuggingFace usa
AutoModelForCausalLM.from_pretrainedeAutoTokenizer.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
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.
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.
https://commoncrawl.org/
Testar algo diretamente em chinês é claramente impossível para mim; seria necessária tradução.
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-...
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....
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
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 existenteMeu fluxo de trabalho no Open WebUI é verificar com
ollama show qwen3:30b-a3b-q8_0 --modelfile, colar o conteúdo do Modelfile emadmin -> models -> OpenwebUI, mudar o nome para algo comoqwen3:30b-a3b-q8_0-monkversion-1, ajustar o número de camadas com parâmetros comonum_gpu 90e então manter ou apagar o arquivo antigoDentro do Modelfile há uma instrução dizendo que, para criar um novo Modelfile, é preciso alterar o
FROMpara 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 OllamaAlé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
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
É 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
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
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
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
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
https://qwenlm.github.io/blog/qwen3/