
Code-as-World کیا ہے؟
Code-as-World ایک تحقیقی منصوبہ ہے جو قابلِ عمل کوڈ کے ذریعے طبعی دنیا کی نمائندگی کرنے کے لیے بنایا گیا ہے۔ اس کا مرکزی خیال یہ ہے کہ پکسلز کسی منظر کے بارے میں شواہد فراہم کرتے ہیں، لیکن وہ ان اشیا، حالتوں، ساختوں، حرکیات یا طریقۂ کار کی براہِ راست تعریف نہیں کرتے جن کے نتیجے میں مشاہدہ شدہ منظر وجود میں آیا۔
یہ منصوبہ مشاہدات سے قابلِ عمل دنیا کی نمائندگی دریافت کرنے کے لیے تکراری سیمولیشن اور توثیق پر مبنی ایجنٹک عمل استعمال کرتا ہے۔ یہ نمائندگیاں بصری شواہد کو دوبارہ قابلِ استعمال طبعی ڈیٹا میں تبدیل کرتی ہیں اور مقداری طبعی استدلال کی معاونت کرتی ہیں۔

اس ریلیز میں دو وژن لینگویج چیک پوائنٹس کے لیے مقامی inference اور evaluation کی سہولت شامل ہے: Code-as-World-VL-4B اور Code-as-World-VL-9B۔ اس میں vLLM کے ذریعے OpenAI-compatible serving اور MuJoCo سے تیار کردہ ویڈیو پر مبنی طبعی abstraction کی مثال بھی شامل ہے۔
اہم صلاحیتیں
- قابلِ عمل دنیا کی نمائندگیاں: پکسلز کو کسی منظر کی مکمل ontology سمجھنے کے بجائے طبعی حالتوں، حرکیات اور طریقۂ کار کی ماڈلنگ کرتی ہیں۔
- جاری کردہ دو چیک پوائنٹس: 4B اور 9B Code-as-World-VL ماڈلز میں سے انتخاب کریں۔
- QuantiPhy evaluation: توثیقی ویڈیوز پر مقداری طبعی استدلال کی evaluation چلائیں اور evaluator-compatible prediction files تیار کریں۔
- OpenAI-compatible serving: معیاری vLLM API server استعمال کرتے ہوئے کسی بھی چیک پوائنٹ کو دستیاب کریں۔
- Simulation example: شامل کردہ ballistic soccer case چلائیں اور اس کی rendered video اور trajectory محفوظ کریں۔
ضروریات
CUDA-enabled host پر Python 3.10 یا 3.11 استعمال کریں۔ آپ کو Git اور Hugging Face CLI بھی درکار ہوگی، جسے hf download کمانڈز استعمال کرتی ہیں۔ ماڈل اسٹوریج اور GPU میموری کی ضروریات اس بات پر منحصر ہیں کہ آپ 4B چیک پوائنٹ، 9B چیک پوائنٹ یا دونوں استعمال کرتے ہیں۔
CUDA environment سے repository کی کمانڈز چلائیں۔ README میں CPU-only inference recipe فراہم نہیں کی گئی۔
Code-as-World انسٹال کریں
1. repository clone کریں
git clone https://github.com/MirroS-Lab/Code-as-World.git
cd Code-as-World2. virtual environment بنائیں اور فعال کریں
python -m venv .venv
source .venv/bin/activateاوپر دی گئی activation command Unix-like shells کے لیے ہے۔ فعال ہونے کے بعد، منصوبے کی فراہم کردہ inference dependencies انسٹال کریں:
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 evaluation چلائیں
QuantiPhy اس ریلیز میں استعمال ہونے والا مقداری evaluation suite ہے۔ Code-as-World evaluation چلانے سے پہلے QuantiPhy کو clone کریں اور اس کی validation videos ڈاؤن لوڈ کریں۔
1. evaluation data تیار کریں
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 ماڈل کی evaluation کریں
Code-as-World repository سے یہ کمانڈ چلائیں:
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 ماڈل کی evaluation کریں
python -m code_as_world.evaluation 9b \
--input-csv /path/to/QuantiPhy/quantiphy_validation.csv \
--video-dir /path/to/QuantiPhy-validation/validation_videosہر run تین قسم کے artifacts کو outputs/quantiphy/ میں لکھتا ہے: evaluator-compatible prediction CSV، انفرادی run کے لیے metric summary، اور ماڈل کی raw generations۔ انفرادی scores کے پیچھے موجود responses کا جائزہ لیتے وقت raw output محفوظ رکھنا مفید ہے۔
4. official evaluator چلائیں
prediction CSV files تیار کرنے کے بعد pandas انسٹال کریں اور official QuantiPhy evaluator چلائیں:
pip install pandas
python /path/to/QuantiPhy/evaluator.py \
outputs/quantiphy \
outputs/quantiphy_metrics \
--gt_file /path/to/QuantiPhy/quantiphy_validation.csvیہ کمانڈ outputs/quantiphy میں موجود prediction files کی quantiphy_validation.csv کے خلاف evaluation کرتی ہے اور حاصل شدہ metrics کو outputs/quantiphy_metrics میں لکھتی ہے۔
vLLM کے ساتھ ماڈل serve کریں
چیک پوائنٹس کو OpenAI-compatible vLLM endpoint کے ذریعے دستیاب کیا جا سکتا ہے۔ درج ذیل کمانڈ GPU 0 پر 4B چیک پوائنٹ serve کرتی ہے:
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 مقرر کرتا ہے، اور openpangu بیک اینڈ کے ذریعے ویڈیو ان پٹ کو 16 فریمز کے لیے ترتیب دیتا ہے۔
بڑے چیک پوائنٹ کو سرونگ کرنے کے لیے 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ایویلیوایشن آرگومنٹ مستقل طور پر استعمال کریں۔ - صرف مطلوبہ چیز ڈاؤن لوڈ کریں: اگر آپ کا ورک فلو صرف ایک ماڈل سائز استعمال کرتا ہے تو دونوں چیک پوائنٹس محفوظ کرنے سے گریز کریں۔
- خام جنریشنز محفوظ رکھیں: یہ جانچنے کے لیے کہ کسی پیش گوئی کو مخصوص اسکور کیوں ملا،
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 طبیعی مناظر کی قابلِ اجرا نمائندگیوں کا جائزہ لینے کے لیے ایک عملی ریلیز فراہم کرتا ہے۔ انفرنس ماحول انسٹال کرنے اور چیک پوائنٹ ڈاؤن لوڈ کرنے کے بعد آپ QuantiPhy ایویلیوایشنز دوبارہ چلا سکتے ہیں، vLLM کے ذریعے ماڈل سرونگ کر سکتے ہیں، یا شامل کردہ MuJoCo سمولیشن چلا سکتے ہیں۔ یہ تمام ورک فلو مل کر دکھاتے ہیں کہ بصری مشاہدات واضح اور قابلِ تصدیق طبیعی استدلال میں کس طرح معاون ثابت ہو سکتے ہیں۔
