Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

MiMo: um pequeno modelo de código aberto para raciocínio matemático eficiente e geração de código

Introdução geral

O MiMo é um projeto de modelagem de linguagem grande de código aberto desenvolvido pela Xiaomi, com foco em raciocínio matemático e geração de código. O produto principal é a família de modelos MiMo-7B, que consiste em um modelo básico (Base), um modelo de ajuste fino supervisionado (SFT), um modelo de aprendizado de reforço treinado a partir do modelo básico (RL-Zero) e um modelo de aprendizado de reforço treinado a partir do modelo SFT (RL). Esses modelos de 7 bilhões de parâmetros demonstram um poder de raciocínio comparável a modelos maiores, otimizando os dados de pré-treinamento, a previsão de vários tokens (MTP) e o aprendizado por reforço. O miMo-7B-RL supera o OpenAI o1-mini em tarefas matemáticas e de codificação. vLLM e SGLang, e está disponível para download em Hugging Face e ModelScope. A Xiaomi abriu o código-fonte do MiMo com o objetivo de impulsionar o desenvolvimento de modelos de inferência eficientes.

MiMo: um pequeno modelo de código aberto para raciocínio matemático eficiente e geração de código-1


 

Lista de funções

  • raciocínio matemáticoResolver competições de matemática, como AIME, MATH-500, etc., e apoiar o raciocínio em problemas complexos.
  • geração de códigoGeração de código de alta qualidade em Python, C++ e outros para tarefas de programação do LiveCodeBench.
  • Previsão de múltiplos tokens (MTP)Previsão de vários tokens com uma taxa de aceitação de inferência de ~90%, melhorando a velocidade e a precisão.
  • Suporte a modelos de código abertoModelos da série MiMo-7B (Base, SFT, RL-Zero, RL) são fornecidos para uso livre dos desenvolvedores.
  • Mecanismo de inferência eficienteSuporte a vLLM e SGLang personalizados da Xiaomi para otimizar o desempenho da inferência.
  • Otimização do aprendizado aprimoradoinferência de modelo aprimorada com base em 130.000 conjuntos de dados de problemas de matemática e código.
  • Mecanismo de reversão contínuoTreinamento acelerado de aprendizagem por reforço com treinamento 2,29 vezes mais rápido e validação 1,96 vezes mais rápida.
  • Implementação flexívelHá suporte para Hugging Face Transformers, vLLM e SGLang.

 

Usando a Ajuda

Instalação e implementação

O modelo MiMo-7B não requer a instalação de um software autônomo, mas requer a configuração do ambiente de inferência. Veja a seguir as etapas detalhadas de implantação; recomenda-se o Python 3.8 ou superior.

1. preparação ambiental

Certifique-se de que o Python e o pip estejam instalados em seu sistema. Recomenda-se um ambiente virtual para evitar conflitos de dependência:

python3 -m venv mimo_env
source mimo_env/bin/activate

2. instalação de dependências

A MiMo recomenda o uso da ramificação vLLM personalizada da Xiaomi, que oferece suporte à funcionalidade MTP. O comando de instalação é o seguinte:

pip install torch transformers
pip install "vllm @ git+https://github.com/XiaomiMiMo/vllm.git@feat_mimo_mtp_stable_073"

Se estiver usando SGLang, execute:

python3 -m pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git@main#egg=sglang&subdirectory=python"

3. download do modelo

O modelo MiMo-7B está hospedado no Hugging Face e no ModelScope, com o MiMo-7B-RL como exemplo:

from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "XiaomiMiMo/MiMo-7B-RL"
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_id)

Os arquivos do modelo têm aproximadamente 14 GB, portanto, certifique-se de ter espaço de armazenamento suficiente. O download do modelScope é feito de maneira semelhante, substituindo model_id é o endereço correspondente.

4. ativação do serviço de raciocínio

Inicie o servidor de inferência usando o vLLM (recomendado):

python3 -m vllm.entrypoints.api_server --model XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

ou usar SGLang:

python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

Depois que o servidor é iniciado, você pode interagir com o modelo por meio da API ou da linha de comando.

Funções principais

raciocínio matemático

O MiMo-7B-RL é excelente em tarefas de raciocínio matemático, especialmente nos conjuntos de dados AIME e MATH-500. Os usuários podem inserir perguntas matemáticas e o modelo gera as respostas. Exemplo:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Solve: 2x + 3 = 7"], sampling_params)
print(outputs[0].outputs[0].text)

Instruções de operação::

  • fazer uso de temperature=0.6 Equilíbrio entre qualidade geradora e diversidade.
  • Problemas complexos podem ser inseridos em etapas para garantir uma descrição clara.
  • O AIME 2024 (68,2% Pass@1), o AIME 2025 (55,4% Pass@1) e o MATH-500 (95,8% Pass@1) são compatíveis.

geração de código

O MiMo-7B-RL gera código de alta qualidade com suporte para Python, C++ e outras linguagens para o LiveCodeBench v5 (57.8% Pass@1) e v6 (49.3% Pass@1). Exemplo:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python function to calculate factorial"], sampling_params)
print(outputs[0].outputs[0].text)

Instruções de operação::

  • Forneça descrições de tarefas específicas, como requisitos de entrada e saída de funções.
  • Verifica a integridade sintática do código gerado.
  • Adequado para o projeto de algoritmos e tarefas de competição de programação.

Previsão de múltiplos tokens (MTP)

O MTP é um recurso essencial do MiMo que acelera a inferência ao prever vários tokens com uma taxa de aceitação de cerca de 90%. A ativação do MTP requer o vLLM personalizado da Xiaomi:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True, num_speculative_tokens=1)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python script"], sampling_params)
print(outputs[0].outputs[0].text)

Instruções de operação::

  • configurar num_speculative_tokens=1 Ativar MTP.
  • O MTP funciona melhor em cenários de alto rendimento.
  • A camada MTP é ajustada nas fases de pré-treinamento e SFT e congelada na fase RL.

Mecanismo de reversão contínuo

O MiMo desenvolveu um mecanismo de reversão contínuo para otimizar o treinamento de aprendizagem por reforço. Os usuários não precisam operar esse recurso diretamente, mas seu efeito é refletido no desempenho do modelo:

  • Treinamento 2,29 vezes mais rápido e validação 1,96 vezes mais rápida.
  • Reduza o tempo ocioso da GPU com reversão contínua integrada, cálculo assíncrono de recompensa e encerramento antecipado.

Seleção do mecanismo de inferência

  • vLLM (recomendado)Xiaomi: o vLLM personalizado da Xiaomi (baseado no vLLM 0.7.3) oferece suporte a MTP com desempenho ideal. Adequado para necessidades de raciocínio de alto desempenho.
  • SGLangSuporte para raciocínio convencional, suporte para MTP em breve. Adequado para implantação rápida.
  • Transformadores de rostos abraçadosAdequado para testes simples ou depuração local, mas não oferece suporte a MTP.

advertência

  • alerta do sistemaRecomendamos o uso de pontas de sistema vazias para obter o melhor desempenho.
  • Requisitos de hardwareGPU única recomendada (por exemplo, NVIDIA A100 40GB), a inferência da CPU requer pelo menos 32GB de RAM.
  • Configuração da avaliaçãoTodas as avaliações usam temperature=0.6O AIME e o LiveCodeBench usam várias médias de execução.
  • Suporte à comunidadeSe tiver algum problema, você pode registrar um problema no GitHub ou entrar em contato com o mimo@xiaomi.com.

 

cenário do aplicativo

  1. pesquisa acadêmica
    O modelo MiMo-7B é adequado para pesquisadores que exploram o raciocínio matemático e os algoritmos de geração de código. Os desenvolvedores podem ajustá-lo com base no modelo de código aberto para investigar estratégias de pré-treinamento e aprendizado por reforço.
  2. educação em programação
    Os professores podem usar o MiMo para gerar respostas a exercícios de programação, e os alunos podem verificar a lógica do código ou aprender sobre a implementação de algoritmos.
  3. Treinamento para competições
    O MiMo oferece suporte a perguntas de concursos de matemática AIME e MATH-500 para alunos que estão se preparando para concursos de matemática e programação.
  4. Desenvolvimento de IA
    Os desenvolvedores podem criar aplicativos personalizados com base no MiMo-7B, como ferramentas automatizadas de revisão de código ou solucionadores matemáticos.

 

QA

  1. Quais modelos estão disponíveis na série MiMo-7B?
    O MiMo-7B consiste em um modelo básico (Base), um modelo de ajuste fino supervisionado (SFT), um modelo de aprendizado de reforço treinado a partir do modelo básico (RL-Zero) e um modelo de aprendizado de reforço treinado a partir do modelo SFT (RL).
  2. Como escolher um mecanismo de inferência?
    Recomendamos o vLLM personalizado da Xiaomi (suporte a MTP, desempenho ideal), SGLang para implantação rápida, Hugging Face Transformers para testes simples.
  3. Como o MTP pode melhorar o desempenho?
    O MTP é adequado para cenários de alta produtividade, prevendo vários tokens com uma taxa de aceitação de inferência de 90%, o que melhora significativamente a velocidade.
  4. O modelo é compatível com vários idiomas?
    O MiMo é otimizado principalmente para tarefas matemáticas e de codificação e oferece suporte a entradas em inglês e chinês, sem suporte explícito a outros idiomas.
  5. Quais são os requisitos de hardware?
    Uma única GPU (por exemplo, NVIDIA A100 40GB) pode executar o MiMo-7B-RL. A inferência da CPU requer pelo menos 32GB de RAM, mas é mais lenta.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " MiMo: um pequeno modelo de código aberto para raciocínio matemático eficiente e geração de código
pt_BRPortuguês do Brasil