
شنو هو Code-as-World؟
Code-as-World هو مشروع بحثي كيمثّل العالم الفيزيائي باستعمال كود قابل للتنفيذ. الفكرة الرئيسية هي أن البيكسلات كتعطي أدلة على المشهد، ولكن ما كتحدّدش مباشرة الأشياء والحالات والبنيات والديناميكيات والآليات اللي نتجات على داكشي اللي تلاحظ.
كيستعمل المشروع مسار وكيل مبني على المحاكاة والتحقق التكراري باش يكتاشف تمثيلات قابلة للتنفيذ للعالم انطلاقاً من الملاحظات. هاد التمثيلات كتحوّل الأدلة البصرية لمعطيات فيزيائية قابلة لإعادة الاستعمال، وكتدعم الاستدلال الفيزيائي الكمي.

الإصدار كيوفّر الاستدلال والتقييم محلياً لجوج ديال نماذج الرؤية واللغة: Code-as-World-VL-4B وCode-as-World-VL-9B. وكيشمل حتى الخدمة المتوافقة مع OpenAI عبر vLLM، ومثالاً على التجريد الفيزيائي المبني على الفيديو باستعمال MuJoCo.
القدرات الرئيسية
- تمثيلات قابلة للتنفيذ للعالم: كتمثّل الحالات والديناميكيات والآليات الفيزيائية، عوض ما تعتبر البيكسلات هي الأنطولوجيا الكاملة ديال المشهد.
- جوج نماذج متاحة: اختار بين نموذجي Code-as-World-VL بحجم 4B و9B.
- تقييم QuantiPhy: دير تقييم للاستدلال الفيزيائي الكمي على فيديوهات التحقق، وخرّج ملفات التنبؤ المتوافقة مع المقيّم.
- خدمة متوافقة مع OpenAI: عرّض أي نموذج باستعمال خادم API القياسي ديال vLLM.
- مثال على المحاكاة: شغّل حالة كرة قدم بالستية مرفقة، وحفظ الفيديو المرسوم والمسار ديالها.
المتطلبات المسبقة
استعمل Python 3.10 أو 3.11 على جهاز مفعّل فيه CUDA. غادي تحتاج حتى لـ Git وواجهة Hugging Face CLI اللي كتستعملها أوامر hf download. متطلبات التخزين وذاكرة GPU كتختلف حسب واش غادي تستعمل نموذج 4B أو 9B أو بجوج.
تبع أوامر المستودع من بيئة CUDA. ملف README ما كيوفّرش طريقة للاستدلال باستعمال CPU فقط.
ثبّت Code-as-World
1. نسخ المستودع
git clone https://github.com/MirroS-Lab/Code-as-World.git
cd Code-as-World2. إنشاء وتفعيل بيئة افتراضية
python -m venv .venv
source .venv/bin/activateأمر التفعيل اللي فوق مخصّص للصدفات الشبيهة بـ Unix. منين تتفعّل البيئة، ثبّت تبعيات الاستدلال اللي كيوفّرها المشروع:
pip install -r requirements/inference.txt3. تحميل النماذج
hf download MirroS-Lab/Code-as-World-VL-4B --local-dir weights/4b
hf download MirroS-Lab/Code-as-World-VL-9B --local-dir weights/9bهاد الأوامر كتحط النموذجين 4B و9B فـ weights/4b وweights/9b. إلا كنت ناوي تستعمل غير نموذج واحد، حمّل غير النموذج المقابل ليه.
دير تقييم QuantiPhy
QuantiPhy هي حزمة التقييم الكمي اللي كيستعملها الإصدار. قبل ما تبدا تقييم Code-as-World، نسخ QuantiPhy وحمّل فيديوهات التحقق ديالو.
1. تحضير معطيات التقييم
git clone https://github.com/Paulineli/QuantiPhy.git /path/to/QuantiPhy
hf download PaulineLi/QuantiPhy-validation \
--repo-type dataset \
--local-dir /path/to/QuantiPhy-validationبدّل /path/to/QuantiPhy و/path/to/QuantiPhy-validation بمسارات حقيقية فالنظام ديالك.
2. تقييم نموذج 4B
من مستودع Code-as-World، شغّل:
python -m code_as_world.evaluation 4b \
--input-csv /path/to/QuantiPhy/quantiphy_validation.csv \
--video-dir /path/to/QuantiPhy-validation/validation_videos
3. تقييم نموذج 9B
python -m code_as_world.evaluation 9b \
--input-csv /path/to/QuantiPhy/quantiphy_validation.csv \
--video-dir /path/to/QuantiPhy-validation/validation_videosكل تشغيل كيكتب ثلاثة ديال أنواع الملفات فـ outputs/quantiphy/: ملف CSV ديال التنبؤات متوافق مع المقيّم، وملخص للمقاييس ديال التشغيل، والتوليدات الخام ديال النموذج. الاحتفاظ بالمخرجات الخام مفيد ملي كتحتاج تراجع الأجوبة اللي ورا النتائج الفردية.
4. تشغيل المقيّم الرسمي
من بعد ما تخرّج ملفات CSV ديال التنبؤات، ثبّت pandas وشغّل مقيّم QuantiPhy الرسمي:
pip install pandas
python /path/to/QuantiPhy/evaluator.py \
outputs/quantiphy \
outputs/quantiphy_metrics \
--gt_file /path/to/QuantiPhy/quantiphy_validation.csvهاد الأمر كيقيّم ملفات التنبؤات الموجودة فـ outputs/quantiphy مقابل quantiphy_validation.csv، وكيكتب المقاييس الناتجة فـ outputs/quantiphy_metrics.
خدّم النموذج باستعمال vLLM
يمكن تعريض النماذج عبر نقطة نهاية vLLM متوافقة مع OpenAI. الأمر التالي كيخدّم نموذج 4B على GPU 0:
CUDA_VISIBLE_DEVICES=0 vllm serve weights/4b \
--served-model-name code-as-world-4b \
--chat-template code_as_world/templates/qwen3_5_no_think.jinja \
--chat-template-content-format openai \
--default-chat-template-kwargs '{"enable_thinking":false}' \
--max-model-len 4608 \
--gpu-memory-utilization 0.90 \
--media-io-kwargs '{"video":{"num_frames":16,"fps":-1,"video_backend":"openpangu"}}' \
--mm-processor-kwargs '{"do_sample_frames":false}' \
--mm-processor-cache-gb 0 \
--generation-config vllmالسيرفر كيسجّل الموديل بالاسم code-as-world-4b. كيستعمل قالب الدردشة ديال المشروع بلا تفكير، وكيحدّد الطول الأقصى للموديل فـ 4608، وكيهيّأ إدخال الفيديو لـ16 إطار باستعمال الواجهة الخلفية openpangu.
باش تشغّل checkpoint الأكبر، بدّل weights/4b بـ weights/9b، وبدّل code-as-world-4b بـ code-as-world-9b.
شغّل مثال التجريد المعتمد على الفيديو
المستودع فيه مثال ديال كرة القدم الباليستية مدعوم بـ MuJoCo. ثبّت متطلبات المحاكاة المنفصلة الأول:
pip install -r requirements/simulation.txtمن بعد شغّل المحاكاة:
python -m code_as_world.simulationالمحاكاة كتحفظ الفيديو المرصود والمسار فـ outputs/simulations/.
ولّد المسار فقط
إلى ما محتاجش فيديو مرصود، عطّل التصيير:
python -m code_as_world.simulation --no-renderهاد الوضع مفيد ملي كتحتاج غير بيانات المسار، أو ملي يكون التصيير غادي يزيد حمل ما عندو حتى داعي.
نصائح للاستعمال المتقدّم
- اختار الموديل بوعي: استعمل وسيطة التقييم
4bأو9bبما يتوافق باستمرار مع الـcheckpoint اللي حمّلتي. - حمّل غير اللي محتاج: تجنّب تخزين الـcheckpointين بجوج إلا كان سير العمل ديالك كيستعمل غير حجم واحد ديال الموديل.
- حافظ على التوليدات الخام: راجع الملفات فـ
outputs/quantiphy/ملي كتقلب على سبب حصول توقّع معيّن على نقطة معيّنة. - شغّل جوج طبقات التقييم: أمر Code-as-World كينشئ ملخّص ديال تشغيل واحد، بينما مقيّم QuantiPhy الرسمي يقدر يقيّم ملفات CSV ديال التوقّعات المولّدة مجموعين.
- خلي قالب الدردشة المرفق: وصفة التشغيل كتستعمل صراحة
code_as_world/templates/qwen3_5_no_think.jinjaوكتعطّل التفكير. خليك محافظ على هاد الإعدادات ملي كتعاود إنتاج التهيئة الموثّقة. - بدّل اختيار الـGPU بحذر: مثال التشغيل كيستعمل
CUDA_VISIBLE_DEVICES=0وقيمة استعمال ذاكرة الـGPU هي0.90. اختار الجهاز الظاهر حسب مضيف CUDA ديالك، واعتبر أي تغييرات أخرى اختلافات عن الوصفة المنشورة. - تجاوز التصيير فالحالات المناسبة: زِد
--no-renderلأمر المحاكاة ملي يكون المسار هو المخرج الوحيد المطلوب.
قراءة إضافية
للمعلومات البحثية والخلفية والمنهجية، راجع التقرير التقني، وصفحة المشروع، ومقالة MirroS فالمجال.
الخلاصة
Code-as-World كيوفّر إصدار عملي لاستكشاف تمثيلات قابلة للتنفيذ ديال المشاهد الفيزيائية. من بعد ما تثبّت بيئة الاستدلال وتحمل checkpoint، تقدر تعاود إنتاج تقييمات QuantiPhy، وتشغّل موديل عبر vLLM، أو تشغّل محاكاة MuJoCo المضمّنة. مجموع هاد المسارات كيبين كيفاش الملاحظات البصرية تقدر تعاون فاستدلال فيزيائي صريح وقابل للتحقّق.
