Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

MiMo-7B-RL: نموذج لغوي استنتاجي من Xiaomi

Stefania Boiko

Stefania Boiko

Updated on مايو 1, 2025

يقدم فريق LLM-Core في Xiaomi نموذج MiMo-7B-RL، متحديًا فكرة أن التفكير عالي المستوى في الذكاء الاصطناعي يتطلب نماذج ضخمة. يوضح هذا النموذج الذي يبلغ حجمه 7 مليارات معلمة، والمصمم خصيصًا للمهام الرياضية والبرمجية، أداءً ينافس النماذج الأكبر بكثير والأنظمة المتخصصة مثل o1-mini من OpenAI. يأتي هذا الإنجاز نتيجة لاستراتيجية شاملة تعمل على تحسين دورة حياة النموذج بأكملها، مما يثبت إمكانية فتح قدرات تفكير قوية في معماريات أكثر كفاءة.

💡
هل تريد أداة رائعة لاختبار واجهات برمجة التطبيقات (API Testing) تقوم بإنشاء وثائق API جميلة؟

هل تريد منصة متكاملة وشاملة لفريق المطورين لديك للعمل معًا بأقصى قدر من الإنتاجية؟

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر أقل بكثير!
button

ما هو MiMo-7B

يعتمد تطوير MiMo-7B على الاعتقاد بأن القدرة الأساسية للنموذج على التفكير تتأسس خلال مرحلة التدريب المسبق. وبينما تعتبر مراحل الضبط الدقيق اللاحقة ضرورية، فإن الأساس الأولي حاسم. حددت Xiaomi أن العديد من النماذج الأصغر تواجه صعوبة في التفكير المعقد لأن تدريبها الأساسي يفتقر إلى التعرض الكافي للأنماط المنطقية.

لمواجهة ذلك، تم تصميم التدريب المسبق لـ MiMo بدقة لزيادة "كثافة أنماط التفكير". شمل ذلك معالجة بيانات متطورة: تعزيز استخلاص النصوص لالتقاط الهياكل المعقدة في المستندات التقنية والتعليمات البرمجية، وتطبيق فلاتر متعددة الأبعاد لتركيز أمثلة التفكير، وتوليد مجموعات بيانات تركيبية ضخمة تجسد الخطوات المنطقية وحل المشكلات. تم استخدام استراتيجية مزيج بيانات من ثلاث مراحل خلال التدريب المسبق، باستخدام ما يقرب من 25 تريليون رمز لبناء نموذج MiMo-7B-Base.

علاوة على ذلك، أدرجت Xiaomi التنبؤ بالرموز المتعددة (MTP) كهدف تدريب إضافي. هذه التقنية، حيث يتنبأ النموذج بعدة رموز قادمة، قد تعزز فهم التبعيات المعقدة ويمكن أن تسرع الاستدلال من خلال فك التشفير التخميني.

التعلم المعزز المتقدم

بناءً على نموذج MiMo-7B-SFT المضبوط بدقة، تستهدف مرحلة التعلم المعزز (RL) على وجه التحديد الكفاءة في الرياضيات والبرمجة. شكلت مجموعة بيانات عالية الجودة تضم 130,000 مشكلة رياضية وبرمجية منسقة بعناية، يمكن التحقق من جميعها من خلال فحوصات قائمة على القواعد (مثل اختبارات الوحدة أو التحقق العددي)، أساس التدريب.

لضمان تحسن حقيقي في القدرة وتجنب "التحايل على المكافآت"، تم استخدام مكافآت دقيقة وموضوعية قائمة على القواعد فقط. تم تقديم نظام جديد لـ "مكافأة التعليمات البرمجية المدفوعة بصعوبة الاختبار" لمعالجة مشكلة المكافآت المتفرقة المتأصلة في توليد التعليمات البرمجية المعقدة. بدلاً من مكافأة شاملة أو لا شيء، يمنح هذا النظام ائتمانًا جزئيًا لاجتياز حالات اختبار أسهل ضمن مشكلة ما، مما يوفر إشارة تدرج أكثر كثافة ليتعلم النموذج منها.

كانت الكفاءة أيضًا عاملًا رئيسيًا. مع تحسن النموذج، قللت استراتيجية إعادة أخذ عينات البيانات من وزن المشكلات الأسهل، مع التركيز على التدريب على الأمثلة الأكثر تحديًا. طورت Xiaomi أيضًا "محرك نشر سلس" (Seamless Rollout Engine)، وهو بنية تحتية محسّنة للتعلم المعزز تدمج التوليد المستمر، وحساب المكافآت غير المتزامن، والإنهاء المبكر لتقليل وقت خمول وحدة معالجة الرسومات (GPU)، مما أدى إلى تسريع كبير في التدريب (2.29x) والتحقق (1.96x).

عائلة MiMo-7B-RL: نظرة سريعة

أصدرت Xiaomi عدة نماذج تعرض مراحل التطوير:

النموذج الوصف
MiMo-7B-Base النموذج الأساسي ذو إمكانات تفكير جوهرية قوية
MiMo-7B-RL-Zero تطبيق RL مباشرة على النموذج الأساسي
MiMo-7B-SFT نموذج مضبوط بدقة بإشراف من النموذج الأساسي
MiMo-7B-RL تطبيق RL على نموذج SFT، أعلى أداء تفكير

معايير MiMo-7B-RL

تُبرز نتائج التقييم نقاط قوة MiMo-7B-RL، خاصة عند مقارنته بالنماذج الرائدة باستخدام درجة حرارة توليد تبلغ 0.6.

الأداء المقارن:

المعيار GPT-4o-0513 Claude-3.5-Sonnet-1022 OpenAI o1-mini MiMo-7B-RL
الرياضيات
MATH-500(Pass@1) 74.6 78.3 90.0 95.8
AIME 2024(Pass@1) 9.3 16.0 63.6 68.2
AIME 2025(Pass@1) 11.6 7.4 50.7 55.4
البرمجة
LiveCodeBench v5(Pass@1) 32.9 38.9 53.8 57.8
LiveCodeBench v6(Pass@1) 30.9 37.2 46.8 49.3

(معايير مختارة في الرياضيات/البرمجة معروضة)

يُظهر MiMo-7B-RL أداءً استثنائيًا في الرياضيات والبرمجة، متجاوزًا في كثير من الأحيان النماذج الأكبر بكثير ونماذج التفكير المتخصصة مثل o1-mini في المعايير الصعبة مثل MATH، AIME، وإصدارات LiveCodeBench الحديثة. في حين أن درجاته في التفكير العام قوية بالنسبة لحجمه، إلا أنها تتخلف بطبيعة الحال عن أكبر النماذج الرائدة، مما يعكس تركيز تدريبه المتخصص.

الأداء ضمن سلسلة MiMo:

المعيار MiMo-7B-Base MiMo-7B-RL-Zero MiMo-7B-SFT MiMo-7B-RL
الرياضيات
MATH500(Pass@1) 37.4 93.6 93.0 95.8
AIME 2024(Pass@1) 32.9 56.4 58.7 68.2
البرمجة
LiveCodeBench v5(Pass@1) 32.9 49.1 52.3 57.8

توضح هذه المقارنة الداخلية فعالية كل مرحلة تدريب. يُظهر النموذج الأساسي تفكيرًا أوليًا قويًا، والذي يتم تعزيزه بشكل كبير بواسطة SFT، ويتم صقله بشكل أكبر إلى ذروة الأداء بواسطة مرحلة RL النهائية التي تستهدف الرياضيات والبرمجة. تطبيق RL مباشرة على الأساس (RL-Zero) فعال، ولكن يبدو أن خطوة SFT الوسيطة مفيدة لتحقيق أعلى الدرجات.

تشغيل MiMo-7B-RL

النماذج متاحة بسهولة على Hugging Face Hub.

الوصول إلى النموذج:

ابحث عن MiMo-7B-RL والنماذج الأخرى في السلسلة في صفحة منظمة XiaomiMiMo على Hugging Face. يبلغ حجم النموذج حوالي 7.83 مليار معلمة (دقة BF16، صيغة Safetensors).

تشغيل الاستدلال باستخدام vLLM (موصى به)

توصي Xiaomi باستخدام نسخة معدلة من vLLM (مبنية على v0.7.3) للاستدلال، حيث تدعم ميزة Multi-Token Prediction لتوليد أسرع محتمل.

  • استخدام نسخة Xiaomi المعدلة من vLLM (مع MTP):
# Ensure Xiaomi's vLLM fork is installed
from vllm import LLM, SamplingParams

# --- FACTUAL CODE SNIPPET START ---
# Source: https://huggingface.co/XiaomiMiMo/MiMo-7B-RL Model Card
model_path = "/path/to/XiaomiMiMo/MiMo-7B-RL" # Replace with your download path

llm = LLM(
    model=model_path,
    trust_remote_code=True,  # Required for MiMo's custom code
    num_speculative_tokens=1, # Enables MTP speculative decoding
    disable_log_stats=False
)
# Recommended sampling temperature for benchmark replication
sampling_params = SamplingParams(temperature=0.6)

# Example conversation structure (empty system prompt recommended)
conversation = [
    {
        "role": "system",
        "content": "" # Use an empty system prompt
    },
    {
        "role": "user",
        "content": "Write a python function to compute the nth Fibonacci number.",
    },
]

# Generate the response
outputs = llm.chat(conversation,
                   sampling_params=sampling_params,
                   use_tqdm=False)

# Process and print output
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}")
    print("-" * 20)
    print(f"Generated text: {generated_text!r}")
# --- FACTUAL CODE SNIPPET END ---

print("=" * 80)
  • استخدام vLLM القياسي (بدون MTP):
    إذا لم تكن تستخدم ميزة MTP أو كنت تستخدم بناء vLLM قياسيًا، قم بتسجيل معمارية MiMo أولاً باستخدام السكريبت register_mimo_in_vllm.py الذي توفره Xiaomi.
# --- FACTUAL CODE SNIPPET START ---
# Source: https://huggingface.co/XiaomiMiMo/MiMo-7B-RL Model Card
# Ensure register_mimo_in_vllm.py is accessible
import register_mimo_in_vllm

from vllm import LLM, SamplingParams

model_path = "/path/to/XiaomiMiMo/MiMo-7B-RL" # Replace with your download path
llm = LLM(
    model=model_path,
    trust_remote_code=True,
    # Do not set num_speculative_tokens if not using MTP
    disable_log_stats=False
)
sampling_params = SamplingParams(temperature=0.6)

# Conversation setup and generation call is the same as the MTP example...
conversation = [
    {"role": "system", "content": ""},
    {"role": "user", "content": "Write a python function to compute the nth Fibonacci number."},
]
outputs = llm.chat(conversation, sampling_params=sampling_params, use_tqdm=False)
# Processing output is the same...
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}\n{'-'*20}\nGenerated text: {generated_text!r}")
# --- FACTUAL CODE SNIPPET END ---

استخدام HuggingFace Transformers

يمكن أيضًا إجراء الاستدلال باستخدام مكتبة HuggingFace transformers القياسية. تذكر أن trust_remote_code=True ضروري.

# --- FACTUAL CODE SNIPPET START ---
# Source: https://huggingface.co/XiaomiMiMo/MiMo-7B-RL Model Card
from transformers import AutoModelForCausalLM, AutoTokenizer

model_path = "/path/to/XiaomiMiMo/MiMo-7B-RL" # Replace with your download path

# Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    trust_remote_code=True, # Essential for loading MiMo
    device_map="auto"       # Use GPU if available
)
tokenizer = AutoTokenizer.from_pretrained(model_path)

# Prepare the input prompt
prompt = "Write a python function to compute the nth Fibonacci number."
# Tokenize the input
inputs = tokenizer([prompt], return_tensors='pt').to(model.device)

# Generate the output sequence
output_sequences = model.generate(
    **inputs,
    max_new_tokens=256,      # Control output length
    temperature=0.6,         # Recommended temperature
    do_sample=True           # Use sampling for temperatures != 1.0
)

# Decode the output
generated_text = tokenizer.decode(output_sequences[0], skip_special_tokens=True)
print(generated_text)
# --- FACTUAL CODE SNIPPET END ---

توصيات الاستخدام

للحصول على أفضل النتائج، خاصة عند محاولة تكرار درجات المعايير، استخدم الإعداد الموصى به: نسخة Xiaomi المعدلة من vLLM (مبنية على v0.7.3) وموجه نظام فارغ.

أفكار أخيرة: هل تحقق Xiaomi التفكير الفعال؟

يُظهر MiMo-7B-RL من Xiaomi أن أداء التفكير الاستثنائي في المجالات المتخصصة مثل الرياضيات والبرمجة قابل للتحقيق دون اللجوء إلى أحجام نماذج ضخمة. من خلال التدريب المسبق الدقيق الذي يركز على أنماط التفكير وتقنيات التعلم المعزز المبتكرة، أنشأوا نموذجًا فعالًا ينافس بفعالية نظرائه الأكبر بكثير. يوفر الإصدار المفتوح لسلسلة MiMo أدوات ورؤى قيمة، مما يدفع إلى الأمام تطوير قدرات تفكير قوية ومتاحة للذكاء الاصطناعي.

💡
هل تريد أداة رائعة لاختبار واجهات برمجة التطبيقات (API Testing) تقوم بإنشاء وثائق API جميلة؟

هل تريد منصة متكاملة وشاملة لفريق المطورين لديك للعمل معًا بأقصى قدر من الإنتاجية؟

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر أقل بكثير!
button