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 в открытый доступ с целью стимулирования разработки эффективных моделей вывода.

Список функций
- математическое мышление: Решение математических задач, таких как 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.6
AIME и LiveCodeBench используют многократное усреднение прогонов. - Поддержка общества: Если у вас возникли проблемы, вы можете подать заявку на GitHub или связаться с
mimo@xiaomi.com
.
сценарий применения
- научные исследования
Модель MiMo-7B подходит для исследователей, изучающих математические рассуждения и алгоритмы генерации кода. Разработчики могут доработать ее на основе модели с открытым исходным кодом, чтобы исследовать стратегии предварительного обучения и обучения с подкреплением. - обучение программированию
Преподаватели могут использовать MiMo для создания ответов на задания по программированию, а студенты - проверять логику кода или изучать реализацию алгоритмов. - Соревновательная подготовка
MiMo поддерживает конкурсные вопросы по математике AIME и MATH-500 для студентов, готовящихся к олимпиадам по математике и программированию. - Разработка искусственного интеллекта
Разработчики могут создавать на базе MiMo-7B специализированные приложения, например, инструменты для автоматизированной проверки кода или математические решатели.
QA
- Какие модели представлены в серии MiMo-7B?
MiMo-7B состоит из базовой модели (Base), модели тонкой настройки под наблюдением (SFT), модели обучения с подкреплением, обученной на основе базовой модели (RL-Zero), и модели обучения с подкреплением, обученной на основе модели SFT (RL). Версия RL имеет наилучшую производительность. - Как выбрать механизм вывода?
Рекомендуется пользовательский vLLM от Xiaomi (поддержка MTP, оптимальная производительность). SGLang для быстрого развертывания, Hugging Face Transformers для простого тестирования. - Как MTP может повысить производительность?
MTP подходит для сценариев с высокой пропускной способностью, предсказывая множество лексем с коэффициентом принятия умозаключений 90%, что значительно повышает скорость. - Поддерживает ли модель несколько языков?
MiMo в основном оптимизирован для решения математических и кодовых задач и поддерживает ввод на английском и некоторых китайских языках, без явной поддержки других языков. - Каковы требования к оборудованию?
Для работы MiMo-7B-RL достаточно одного графического процессора (например, NVIDIA A100 40GB). Для выводов на процессоре требуется не менее 32 ГБ оперативной памяти, но это медленнее.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...