MiMo: небольшая модель с открытым исходным кодом для эффективных математических рассуждений и генерации кода

Общее введение

MiMo - это проект моделирования больших языков с открытым исходным кодом, разработанный компанией Xiaomi и ориентированный на математические рассуждения и генерацию кода. Основным продуктом является семейство моделей MiMo-7B, состоящее из базовой модели (Base), модели тонкой настройки под наблюдением (SFT), модели обучения с подкреплением, обученной на основе базовой модели (RL-Zero), и модели обучения с подкреплением, обученной на основе модели SFT (RL). Эти модели с 7 миллиардами параметров демонстрируют способность к рассуждению, сравнимую с более крупными моделями, благодаря оптимизации данных предварительного обучения, предсказанию по нескольким словам (MTP) и обучению с подкреплением. miMo-7B-RL превосходит OpenAI o1-mini в математических задачах и задачах кодирования. поддержка модели vLLM и SGLang, и доступен для загрузки на сайтах Hugging Face и ModelScope. Xiaomi выложила MiMo в открытый доступ с целью стимулирования разработки эффективных моделей вывода.

MiMo:高效数学推理与代码生成的小型开源模型

 

Список функций

  • математическое мышление: Решение математических задач, таких как AIME, MATH-500 и т.д., и поддержка рассуждений при решении сложных задач.
  • генерация кода: Генерируйте высококачественный код на Python, C++ и других языках для задач программирования LiveCodeBench.
  • Множественное предсказание токенов (MTP): Предсказание нескольких лексем с коэффициентом принятия умозаключений ~90%, что повышает скорость и точность.
  • Поддержка моделей с открытым исходным кодом: Модели серии MiMo-7B (Base, SFT, RL-Zero, RL) предоставляются разработчикам для свободного использования.
  • Эффективный механизм вывода: Поддержка пользовательских vLLM и SGLang от Xiaomi для оптимизации производительности вычислений.
  • Оптимизация обучения: Усовершенствованный вывод модели на основе 130 000 наборов данных задач по математике и коду.
  • Механизм бесшовного откатаУскоренное обучение с применением подкрепления: обучение в 2,29 раза быстрее, а проверка в 1,96 раза быстрее.
  • Гибкое развертываниеПоддерживаются Hugging Face Transformers, vLLM и SGLang.

 

Использование помощи

Установка и развертывание

Модель MiMo-7B не требует установки отдельного программного обеспечения, но требует настройки среды вывода. Ниже приведены подробные шаги по развертыванию, рекомендуется использовать Python 3.8 или выше.

1. Подготовка окружающей среды

Убедитесь, что Python и pip установлены в вашей системе. Чтобы избежать конфликтов зависимостей, рекомендуется использовать виртуальную среду:

python3 -m venv mimo_env
source mimo_env/bin/activate

2. Установка зависимостей

MiMo рекомендует использовать пользовательскую ветку Xiaomi vLLM, которая поддерживает функцию MTP. Команда установки выглядит следующим образом:

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

Если вы используете SGLang, выполните:

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

3. Загрузить модель

Модель MiMo-7B размещена в Hugging Face и ModelScope, а в качестве примера приводится MiMo-7B-RL:

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)

Файлы моделей занимают около 14 Гб, поэтому убедитесь, что у вас достаточно места для хранения. modelScope загружается аналогичным образом, заменяя model_id это соответствующий адрес.

4. Активация службы рассуждений

Запустите сервер выводов с помощью vLLM (рекомендуется):

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

или используйте SGLang:

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

После запуска сервера вы можете взаимодействовать с моделью через API или командную строку.

Основные функции

математическое мышление

MiMo-7B-RL отлично справляется с заданиями на математическое мышление, особенно на наборах данных AIME и MATH-500. Пользователи могут вводить математические вопросы, а модель генерирует ответы. Пример:

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)

Инструкция по эксплуатации::

  • пользоваться temperature=0.6 Баланс между качеством и разнообразием генерации.
  • Сложные задачи можно вводить поэтапно, чтобы обеспечить четкое описание.
  • Поддерживаются AIME 2024 (68,2% Pass@1), AIME 2025 (55,4% Pass@1) и MATH-500 (95,8% Pass@1).

генерация кода

MiMo-7B-RL генерирует высококачественный код с поддержкой Python, C++ и других языков для LiveCodeBench v5 (57.8% Pass@1) и v6 (49.3% Pass@1). Пример:

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)

Инструкция по эксплуатации::

  • Предоставьте конкретные описания задач, например, требования к вводу и выводу функций.
  • Проверяет синтаксическую целостность сгенерированного кода.
  • Подходит для конкурсных заданий по проектированию алгоритмов и программированию.

Множественное предсказание токенов (MTP)

MTP - это основная функция MiMo, которая ускоряет вывод, предсказывая несколько токенов с коэффициентом принятия около 90%. Для включения MTP требуется собственный vLLM компании 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)

Инструкция по эксплуатации::

  • устанавливать num_speculative_tokens=1 Включите MTP.
  • MTP лучше всего работает в сценариях с высокой пропускной способностью.
  • Слой MTP настраивается на этапах предварительного обучения и SFT и замораживается на этапе RL.

Механизм бесшовного отката

Компания MiMo разработала механизм плавного отката для оптимизации обучения с применением подкрепления. Пользователям не нужно напрямую управлять этой функцией, но ее эффект отражается на производительности модели:

  • Обучение в 2,29 раза быстрее, а проверка в 1,96 раза быстрее.
  • Сократите время простоя GPU благодаря интегрированному непрерывному откату, асинхронному расчету вознаграждения и досрочному завершению.

Выбор механизма вывода

  • vLLM (рекомендуется): Xiaomi custom vLLM (на основе vLLM 0.7.3) поддерживает MTP с оптимальной производительностью. Подходит для высокопроизводительных выводов.
  • SGLang: Поддержка основных рассуждений, скоро появится поддержка MTP. Подходит для быстрого развертывания.
  • Трансформеры с обнимающимися лицами: Подходит для простого тестирования или локальной отладки, но не поддерживает MTP.

предостережение

  • системное оповещение: Для оптимальной работы рекомендуется использовать пустые системные наконечники.
  • требования к оборудованию: Рекомендуется один графический процессор (например, NVIDIA A100 40GB), процессорный вывод требует не менее 32 ГБ оперативной памяти.
  • Настройка оценки: Во всех оценках используется temperature=0.6AIME и LiveCodeBench используют многократное усреднение прогонов.
  • Поддержка общества: Если у вас возникли проблемы, вы можете подать заявку на GitHub или связаться с mimo@xiaomi.com.

 

сценарий применения

  1. научные исследования
    Модель MiMo-7B подходит для исследователей, изучающих математические рассуждения и алгоритмы генерации кода. Разработчики могут доработать ее на основе модели с открытым исходным кодом, чтобы исследовать стратегии предварительного обучения и обучения с подкреплением.
  2. обучение программированию
    Преподаватели могут использовать MiMo для создания ответов на задания по программированию, а студенты - проверять логику кода или изучать реализацию алгоритмов.
  3. Соревновательная подготовка
    MiMo поддерживает конкурсные вопросы по математике AIME и MATH-500 для студентов, готовящихся к олимпиадам по математике и программированию.
  4. Разработка искусственного интеллекта
    Разработчики могут создавать на базе MiMo-7B специализированные приложения, например, инструменты для автоматизированной проверки кода или математические решатели.

 

QA

  1. Какие модели представлены в серии MiMo-7B?
    MiMo-7B состоит из базовой модели (Base), модели тонкой настройки под наблюдением (SFT), модели обучения с подкреплением, обученной на основе базовой модели (RL-Zero), и модели обучения с подкреплением, обученной на основе модели SFT (RL). Версия RL имеет наилучшую производительность.
  2. Как выбрать механизм вывода?
    Рекомендуется пользовательский vLLM от Xiaomi (поддержка MTP, оптимальная производительность). SGLang для быстрого развертывания, Hugging Face Transformers для простого тестирования.
  3. Как MTP может повысить производительность?
    MTP подходит для сценариев с высокой пропускной способностью, предсказывая множество лексем с коэффициентом принятия умозаключений 90%, что значительно повышает скорость.
  4. Поддерживает ли модель несколько языков?
    MiMo в основном оптимизирован для решения математических и кодовых задач и поддерживает ввод на английском и некоторых китайских языках, без явной поддержки других языков.
  5. Каковы требования к оборудованию?
    Для работы MiMo-7B-RL достаточно одного графического процессора (например, NVIDIA A100 40GB). Для выводов на процессоре требуется не менее 32 ГБ оперативной памяти, но это медленнее.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...