Apidog

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

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

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

نظرة سريعة على NVIDIA OpenCodeReasoning-Nemotron-32B

Mark Ponomarev

Mark Ponomarev

Updated on مايو 8, 2025

أصدرت NVIDIA، عملاق الحوسبة المتسارعة، عائلة نماذج اللغات الكبيرة (LLMs) الخاصة بها OpenCodeReasoning-Nemotron، مما يفتح المصدر لمجموعة أدوات جديدة قوية للمطورين والباحثين. تتوفر هذه النماذج بأحجام معلمات 32B و 14B و 7B، وتتضمن إصدارًا متخصصًا IOI (التفاعل بين الإدخال والإخراج)، وهي مرخصة بموجب ترخيص أباتشي 2.0 المتساهل، مما يمهد الطريق للابتكار التجاري وغير التجاري واسع النطاق. تشير هذه الخطوة إلى التزام كبير من NVIDIA بإضفاء الطابع الديمقراطي على الوصول إلى الذكاء الاصطناعي المتطور لفهم الكود وتوليده والاستدلال فيه.

image-35

نماذج OpenCodeReasoning-Nemotron ليست مجرد إضافة أخرى إلى مجال نماذج اللغات الكبيرة المزدحم؛ فهي تأتي بمؤهلات مثيرة للإعجاب، لا سيما في مهام الاستدلال المعقدة التي تعتبر حاسمة لتوليد كود عالي الجودة. النموذج الرائد OpenCodeReasoning-Nemotron-32B، على سبيل المثال، يلفت الأنظار بالفعل بمعايير الأداء التي تضعه تقريبًا على قدم المساواة مع نماذج هائلة مثل DeepSeek-R1. والأكثر إثارة للإعجاب، أنه يتفوق بشكل واضح على O3 mini و O1 (low) في LiveCodeBench، وهو معيار تحدي يختبر قدرة النموذج على حل مسائل البرمجة التنافسية.

يُعزى هذا الأداء الاستثنائي إلى حد كبير إلى مجموعة البيانات OpenCodeReasoning (OCR) التي تم تنظيمها بدقة والتي تدعم تدريبها. هذه المجموعة من البيانات، الغنية بمسائل البرمجة التنافسية والاستجابات المولدة بواسطة الذكاء الاصطناعي، تمنح النماذج قدرات استدلال متطورة. ميزة بارزة هي كفاءتها الرمزية (التوكن) الملحوظة: يُقال إن نماذج OpenCodeReasoning أكثر كفاءة بنسبة 30% في استخدام الرموز من نماذج الاستدلال المكافئة الأخرى. من الناحية العملية، يترجم هذا إلى معالجة أسرع، وتقليل الحمل الحسابي، والقدرة على التعامل مع مشاكل أكثر تعقيدًا ضمن نافذة سياق معينة.

ومما يزيد من جاذبيتها توافقها الواسع. يمكن للمطورين دمج هذه النماذج في سير عملهم باستخدام أدوات ومكتبات شائعة مثل llama.cpp و vLLM و Hugging Face Transformers و Text Generation Inference (TGI)، مما يضمن منحنى تبني سلسًا.

ستتناول هذه المقالة تفاصيل نماذج OpenCodeReasoning-Nemotron، وتستكشف أداءها، وتناقش مجموعة البيانات المبتكرة OCR، وتقدم دليلًا عمليًا حول كيفية تشغيلها، مع تركيز خاص على الاستفادة من محرك الاستدلال عالي الأداء vLLM.

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

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

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

OpenCodeReasoning-Nemotron-32B: أفضل من DeepSeek R1؟

المقياس الحقيقي لنموذج لغة كبيرة يكمن في أدائه على المعايير الموحدة وقدرته على معالجة المهام الواقعية. عرضت نماذج OpenCodeReasoning-Nemotron من NVIDIA، وخاصة إصدار 32B، نتائج مقنعة.

وفقًا للمعلومات الصادرة عن NVIDIA، يحقق نموذج OpenCodeReasoning-Nemotron-32B، وهو مشتق من Qwen2.5-32B-Instruct، درجات مثيرة للإعجاب عبر مختلف المعايير. تسلط النتائج، بمتوسط على 64 تقييمًا، الضوء على نقاط قوتها:

النموذج متوسط LiveCodeBench CodeContest الكل
DeepSeek-R1 65.6 26.2
QwQ-32B 61.3 20.2
OCR-Qwen-32B 61.8 24.6
OCR-Qwen-32B-Instruct 61.7 24.4

هذه الأرقام مهمة. يسجل OCR-Qwen-32B-Instruct (الذي يعتمد عليه OpenCodeReasoning-Nemotron-32B) درجات قريبة بشكل ملحوظ من DeepSeek-R1 في متوسط LiveCodeBench و CodeContest All. التأكيد على أنه "يتفوق على O3 mini و O1 (low) في LiveCodeBench" يؤكد قدراته المتقدمة في حل تحديات البرمجة المعقدة التي تتطلب استدلالًا عميقًا وفهمًا للمشكلات الخوارزمية.

يقدم إصدار 14B، OpenCodeReasoning-Nemotron-14B (المشتق من Qwen2.5-14B-Instruct [2])، أيضًا أداءً قويًا ضمن فئته:

النموذج متوسط LiveCodeBench CodeContest الكل
OCR-Qwen-14B 57.7 22.6
OCR-Qwen-14B-Instruct 59.4 23.6

(المصدر: بطاقة نموذج Hugging Face لـ nvidia/OpenCodeReasoning-Nemotron-14B [2])

تظهر هذه النتائج مستوى عاليًا ثابتًا من الأداء عبر عائلة النماذج، مما يجعلها مناسبة لمجموعة واسعة من التطبيقات، بدءًا من مساعدة المطورين الأفراد في مهام البرمجة اليومية وصولًا إلى تشغيل أدوات تطوير البرمجيات المتطورة المدعومة بالذكاء الاصطناعي. يزيد طول السياق المدعوم البالغ 32 ألف رمز (توكن) من فائدتها، مما يسمح لها بمعالجة وفهم قواعد أكواد أكبر وأكثر تعقيدًا أو أوصاف المشكلات.

المحرك وراء التميز: مجموعة البيانات OpenCodeReasoning (OCR)

النموذج جيد بقدر جودة البيانات التي تم تدريبه عليها. تنبع قدرات الاستدلال الملحوظة لنماذج OpenCodeReasoning-Nemotron من مجموعة البيانات المتخصصة OpenCodeReasoning [1, 2]. هذه المجموعة من البيانات ليست مجرد مجموعة عشوائية من الكود؛ إنها مجموعة بيانات مُنشأة بعناية تتألف من:

  1. مسائل البرمجة التنافسية: هذه مسائل تتطلب استدلالًا منطقيًا معقدًا، وتفكيرًا خوارزميًا، وتصميم الحل الأمثل - أبعد بكثير من مهام إكمال الكود البسيطة.
  2. استجابات مولدة بواسطة DeepSeek-R1: الاستفادة من نموذج قوي موجود لتوليد حلول أولية أو مسارات استدلال يوفر أساسًا عالي الجودة لمزيد من التدريب والتحسين.

تتألف مجموعة بيانات التدريب من حوالي 736,000 عينة من هذه المجموعة. توصف طرق جمع البيانات وتسميتها بأنها منهجية "هجينة: آلية، بشرية، اصطناعية"، مما يشير إلى مسار عمل متطور مصمم لضمان جودة البيانات وتنوعها وملاءمتها لتدريب نماذج متقدمة لاستدلال الكود.

التأثير الرئيسي لهذه المجموعة من البيانات هو كفاءة الرموز (التوكنات) الأكبر بنسبة 30% مقارنة بنماذج الاستدلال الأخرى ذات الحجم المماثل. هذه الكفاءة حاسمة:

  • تكلفة حسابية مخفضة: عدد أقل من الرموز يعني الحاجة إلى قوة معالجة أقل لكل من الاستدلال والموالفة الدقيقة الإضافية.
  • أوقات استجابة أسرع: استخدام أكثر كفاءة للرموز يمكن أن يؤدي إلى توليد أسرع للكود والشروحات.
  • التعامل مع مشاكل أكبر: ضمن نفس حد الرموز (مثل نافذة السياق البالغة 32,768 رمزًا لهذه النماذج)، يمكن ترميز ومعالجة معلومات أكثر فائدة وخطوات استدلال أكثر تعقيدًا.

هذه الكفاءة المحسنة، مجتمعة مع قدرات الاستدلال القوية، تجعل نماذج OpenCodeReasoning-Nemotron مناسبة بشكل خاص لمهام مثل إصلاح الأخطاء تلقائيًا، وتوليد كود معقد من مواصفات اللغة الطبيعية، وتحسين الخوارزميات، وتوليد شروحات مفصلة للكود.

الهندسة المعمارية التقنية: لمحة تحت الغطاء

نماذج OpenCodeReasoning-Nemotron مبنية على هندسة معمارية قوية ومثبتة:

  • نوع الهندسة المعمارية: هي نماذج محولات كثيفة (Dense Transformer) من نوع فك التشفير فقط (decoder-only). هذه الهندسة المعمارية قياسية للعديد من نماذج اللغات الكبيرة الرائدة ومعروفة بفعاليتها في مهام التوليد.
  • النماذج الأساسية:
  • OpenCodeReasoning-Nemotron-32B هو مشتق من Qwen2.5-32B-Instruct.
  • OpenCodeReasoning-Nemotron-14B هو مشتق من Qwen2.5-14B-Instruct.
  • يفترض أن نموذج 7B يتبع نمطًا مشابهًا مع أساس Qwen2.5-7B-Instruct.
  • المعلمات: تحتوي النماذج على 32 مليار، 14 مليار، و 7 مليارات معلمة على التوالي، مما يوفر مجموعة من الخيارات لموازنة الأداء مع الموارد الحسابية.
  • طول السياق: تدعم جميع النماذج طول سياق سخي يصل إلى 32,768 رمزًا (توكن) لكل من الإدخال والإخراج. هذا يسمح لها بالعمل مع كميات كبيرة من الكود أو أوصاف المشكلات التفصيلية.
  • الإدخال/الإخراج:
  • أنواع الإدخال: نص
  • تنسيقات الإدخال: سلسلة نصية (String)
  • أنواع الإخراج: نص
  • تنسيق الإخراج: سلسلة نصية (String)
  • تكامل البرمجيات: تشير NVIDIA إلى محرك وقت التشغيل NeMo 2.3.0 وتوصي بمعماريات NVIDIA Ampere و Hopper الدقيقة للحصول على الأداء الأمثل.

هذا الأساس المعماري المتين، مجتمعًا مع بيانات التدريب المتخصصة، ينتج نماذج قوية ومحسّنة للمهام المتعلقة بالكود التي تتطلب استدلالًا مكثفًا.

تشغيل OpenCodeReasoning-Nemotron باستخدام vLLM: دليل عملي

أحد الجوانب الأكثر إثارة في إصدار OpenCodeReasoning-Nemotron هو توافقه مع vLLM. vLLM هو محرك خدمة نماذج لغات كبيرة عالي الإنتاجية وكفؤ في استخدام الذاكرة يمكنه تسريع الاستدلال بشكل كبير. آلية PagedAttention الخاصة به والتحسينات الأخرى تجعله خيارًا ممتازًا لنشر نماذج اللغات الكبيرة في بيئات الإنتاج أو لأعباء العمل البحثية المتطلبة.

بطاقة نموذج Hugging Face لـ OpenCodeReasoning-Nemotron-32B تذكر صراحة "المحرك: vLLM" تحت قسم الاستدلال، مما يشير إلى دعم قوي وتحسين محتمل لهذا المحرك.

إليك دليل مفاهيمي حول كيفية تشغيل نموذج OpenCodeReasoning-Nemotron (مثل إصدار 32B) باستخدام vLLM:

1. المتطلبات المسبقة:

بيئة Python: تأكد من أن لديك بيئة Python (مثل Python 3.8+).

برامج تشغيل NVIDIA و CUDA: ستحتاج إلى برامج تشغيل NVIDIA المناسبة وإصدار متوافق من CUDA toolkit مثبتة لتسريع GPU.

pip install vllm

تثبيت Transformers: مكتبة Hugging Face Transformers أساسية أيضًا.

pip install transformers torch

2. سكريبت Python للاستدلال باستخدام vLLM:

يتضمن تشغيل الاستدلال باستخدام vLLM إعداد بيئتك، وإعداد المطالبة (prompt) وفقًا للتنسيق المتوقع للنموذج، ثم استخدام محرك vLLM للتوليد. نماذج OpenCodeReasoning-Nemotron، كونها مشتقة من Qwen2.5-Instruct، تتطلب تنسيق مطالبة محددًا يتم التعامل معه بشكل أفضل باستخدام أداة الترميز (tokenizer) المرتبطة بها من Hugging Face.

أولاً، تأكد من تثبيت المكتبات الضرورية. ستحتاج إلى Python، برامج تشغيل NVIDIA المناسبة و CUDA إذا كنت تستخدم وحدات GPU، وحزم Python التالية:

pip install "vllm>=0.4.0" transformers torch accelerate bitsandbytes

  • vllm: محرك الاستدلال الأساسي.
  • transformers: لتحميل أداة الترميز وتكوين النموذج من Hugging Face.
  • torch: مكتبة PyTorch.
  • accelerate: غالبًا ما تكون أداة مساعدة مفيدة للتعامل مع نماذج Hugging Face.
  • bitsandbytes: قد تكون مطلوبة لخيارات معينة للكمّ أو نوع البيانات إذا استكشفتها لاحقًا، على الرغم من أنها ليست ضرورية تمامًا لمثال bfloat16 أدناه.

السكريبت التالي يوضح كيفية تحميل نموذج nvidia/OpenCodeReasoning-Nemotron-32B وتوليد نص باستخدام vLLM. يستخدم بشكل حاسم أداة ترميز النموذج لتطبيق قالب الدردشة الصحيح، مما يضمن تنسيق المطالبة كما يتوقع النموذج.



تنسيق المطالبة هو المفتاح: الخطوة الأكثر أهمية لنماذج تم موالفتها للتعليمات هي تنسيق المطالبة الصحيح. استخدام tokenizer.apply_chat_template(..., add_generation_prompt=True) كما هو موضح أعلاه هو الطريقة الأكثر موثوقية. هذا يضمن وضع جميع الرموز الخاصة ومؤشرات الأدوار (مثل <|im_start|>user، <|im_start|>assistant، <|im_end|>) بشكل صحيح، وهو ما يتوقعه النموذج للحصول على إخراج متناسق.

  • trust_remote_code=True: غالبًا ما تتطلب عائلة نماذج Qwen (التي يعتمد عليها Nemotron) تنفيذ كود مخصص عند تحميلها عبر Hugging Face Transformers (الذي يستخدمه vLLM داخليًا لتحميل النموذج). لذلك، عادةً ما يكون trust_remote_code=True ضروريًا لكل من AutoTokenizaer.from_pretrained() و LLM(). استخدم هذا العلم فقط إذا كنت تثق في مصدر النموذج (مستودع NVIDIA الرسمي على Hugging Face في هذه الحالة).
  • متطلبات ذاكرة GPU: نموذج 32 مليار معلمة كبير ويتطلب ذاكرة وصول عشوائي لـ GPU كبيرة (على سبيل المثال، وحدة معالجة رسوميات NVIDIA H100/A100 بسعة 80 جيجابايت مثالية).
  • استخدام dtype="bfloat16" (لمعماريات NVIDIA Ampere والأحدث) أو dtype="float16" يمكن أن يساعد في إدارة الذاكرة مقارنة بـ float32، مع تحسين الأداء غالبًا. تذكر بطاقة نموذج OpenCodeReasoning-Nemotron-32B torch_dtype: torch.bfloat16 في مثال مسار عمل Transformers الخاص بها.
  • إذا واجهت أخطاء نفاد الذاكرة، فكر في استخدام إصدار نموذج أصغر (14B أو 7B)، أو استكشف خيارات الكمّ المدعومة بواسطة vLLM إذا كانت متاحة لهذا النموذج.
  • تحديد dtype: عند تهيئة LLM()، تعيين dtype="auto" يسمح لـ vLLM باختيار نوع بيانات مناسب. ومع ذلك، التعيين الصريح لـ dtype="bfloat16" أو dtype="float16" يمكن أن يمنح مزيدًا من التحكم وغالبًا ما يوصى به. طابق هذا مع الدقة الأصلية للنموذج أو دقة الاستدلال الموصى بها للحصول على أفضل النتائج.
  • توازي الموترات (Tensor Parallelism): لنشر نماذج كبيرة جدًا عبر وحدات GPU متعددة، يدعم vLLM توازي الموترات. يمكنك تهيئة ذلك باستخدام المعامل tensor_parallel_size في LLM(). لوحدة GPU واحدة، الإعداد الافتراضي (tensor_parallel_size=1) مناسب.
  • تنزيل النموذج: في المرة الأولى التي تقوم فيها بتشغيل السكريبت، سيقوم vLLM (عبر مكتبات Hugging Face) بتنزيل أوزان النموذج وملفات أداة الترميز من مركز Hugging Face Hub. يمكن أن يكون هذا تنزيلًا كبيرًا (عدة جيجابايت لنموذج 32B) وقد يستغرق وقتًا طويلاً اعتمادًا على اتصال الإنترنت الخاص بك. التشغيلات اللاحقة ستستخدم الملفات المخزنة مؤقتًا.
  • add_generation_prompt=True: عند استخدام tokenizer.apply_chat_template للاستدلال، تعيين add_generation_prompt=True ضروري. يضمن أن القالب يلحق تسلسل الرموز الذي يشير إلى النموذج أن دوره الآن لتوليد استجابة (على سبيل المثال، لـ Qwen2، يضيف <|im_start|>assistant\\\\n). بدون هذا، قد لا يولد النموذج استجابة بشكل صحيح أو لا يولدها على الإطلاق.
  • معلمات أخذ العينات (Sampling Parameters): اضبط temperature، top_p، و max_tokens في SamplingParams للتحكم في إبداع وتنوع وطول الإخراج. لتوليد الكود، غالبًا ما يُفضل درجة حرارة أقل (مثل 0.0 إلى 0.4) للحصول على مخرجات أكثر تحديدًا وواقعية. يمكن استخدام معلمة stop لتحديد تسلسلات إذا تم توليدها ستتسبب في توقف التوليد (مثل رمز نهاية الدور <|im_end|>).

الخلاصة: NVIDIA تمكّن حقبة جديدة من الذكاء الاصطناعي في البرمجة

تمثل نماذج OpenCodeReasoning-Nemotron من NVIDIA قفزة كبيرة إلى الأمام، حيث تقدم ذكاءً اصطناعيًا قويًا لتوليد الكود والاستدلال فيه. أداؤها القوي، المدعوم بمجموعة البيانات المتخصصة OpenCodeReasoning وكفاءة الرموز (التوكنات) المثيرة للإعجاب، يجهز المطورين والباحثين بأدوات متطورة.

ترخيص أباتشي 2.0 مفتوح المصدر هو مغير لقواعد اللعبة، حيث يضفي الطابع الديمقراطي على الوصول إلى هذه النماذج المتقدمة لكل من المساعي التجارية والأكاديمية. التكامل السهل مع أدوات مثل vLLM يضمن تبنيًا سريعًا.

في نهاية المطاف، من المتوقع أن تسرع OpenCodeReasoning-Nemotron تطوير البرمجيات، وتعزز الإنتاجية، وتغذي الابتكار في البرمجة بمساعدة الذكاء الاصطناعي، مما يمثل فصلاً جديدًا وأكثر تعاونًا في هذا المجال.

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

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

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