
Code-as-World nima?
Code-as-World — jismoniy olamni bajariladigan kod orqali ifodalashga mo‘ljallangan tadqiqot loyihasi. Uning asosiy g‘oyasi shundan iboratki, piksellar sahna haqida dalil beradi, ammo kuzatilgan holatni yuzaga keltirgan obyektlar, holatlar, tuzilmalar, dinamikalar yoki mexanizmlarni bevosita belgilamaydi.
Loyiha kuzatuvlardan bajariladigan olam tasvirlarini aniqlash uchun iterativ simulyatsiya va tekshiruvga asoslangan agentli jarayondan foydalanadi. Ushbu tasvirlar vizual dalillarni qayta foydalanish mumkin bo‘lgan jismoniy ma’lumotlarga aylantiradi va miqdoriy fizik mulohazalarni qo‘llab-quvvatlaydi.

Reliz ikkita vision-language chekpointi uchun lokal inferensiya va baholashni qo‘llab-quvvatlaydi: Code-as-World-VL-4B va Code-as-World-VL-9B. Shuningdek, u vLLM orqali OpenAI bilan mos serverni hamda MuJoCo yordamida yaratilgan videoga asoslangan jismoniy abstraksiya namunasini o‘z ichiga oladi.
Asosiy imkoniyatlar
- Bajariladigan olam tasvirlari: Piksellarni sahnaning to‘liq ontologiyasi sifatida ko‘rish o‘rniga, jismoniy holatlar, dinamikalar va mexanizmlarni modellashtiradi.
- Ikkita chiqarilgan chekpoint: 4B va 9B Code-as-World-VL modellaridan birini tanlang.
- QuantiPhy baholashi: Validatsiya videolari bo‘yicha miqdoriy fizik mulohazalarni baholang va evaluator bilan mos bashorat fayllarini yarating.
- OpenAI bilan mos server: Istalgan chekpointni standart vLLM API serveri yordamida taqdim eting.
- Simulyatsiya namunasi: Biriktirilgan futbol to‘pining ballistik holatini ishga tushiring va uning render qilingan videosi hamda trayektoriyasini saqlang.
Talablar
CUDA yoqilgan xostda Python 3.10 yoki 3.11 dan foydalaning. Shuningdek, Git va hf download buyruqlari ishlatadigan Hugging Face CLI kerak bo‘ladi. Model xotirasi va GPU xotirasi talablari 4B chekpointi, 9B chekpointi yoki ikkalasidan foydalanishingizga bog‘liq.
CUDA muhitida repository buyruqlarini bajaring. README faqat CPU uchun inferensiya retseptini taqdim etmaydi.
Code-as-World dasturini o‘rnatish
1. Repositoryni klonlash
git clone https://github.com/MirroS-Lab/Code-as-World.git
cd Code-as-World2. Virtual muhit yaratish va uni faollashtirish
python -m venv .venv
source .venv/bin/activateYuqoridagi faollashtirish buyrug‘i Unix-simon shelllar uchun mo‘ljallangan. Faollashtirilgach, loyiha taqdim etgan inferensiya bog‘liqliklarini o‘rnating:
pip install -r requirements/inference.txt3. Chekpointlarni yuklab olish
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/9bBu buyruqlar 4B va 9B modellarini weights/4b va weights/9b kataloglariga joylaydi. Agar faqat bitta modeldan foydalanmoqchi bo‘lsangiz, faqat unga mos chekpointni yuklab oling.
QuantiPhy baholashini ishga tushirish
QuantiPhy — relizda ishlatiladigan miqdoriy baholash to‘plami. Code-as-World baholashini ishga tushirishdan oldin QuantiPhy’ni klonlang va uning validatsiya videolarini yuklab oling.
1. Baholash ma’lumotlarini tayyorlash
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 va /path/to/QuantiPhy-validation ni tizimingizdagi haqiqiy manzillar bilan almashtiring.
2. 4B modelini baholash
Code-as-World repositorysi ichidan quyidagini bajaring:
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 modelini baholash
python -m code_as_world.evaluation 9b \
--input-csv /path/to/QuantiPhy/quantiphy_validation.csv \
--video-dir /path/to/QuantiPhy-validation/validation_videosHar bir ishga tushirish outputs/quantiphy/ katalogiga uch xil artefakt yozadi: evaluator bilan mos bashorat CSV fayli, alohida ishga tushirish uchun metrikalar xulosasi va modelning xom generatsiyalari. Xom chiqishni saqlab qo‘yish alohida ballar ortidagi javoblarni tekshirishda foydalidir.
4. Rasmiy evaluatorni ishga tushirish
Bashorat CSV fayllarini yaratgach, pandas’ni o‘rnating va rasmiy QuantiPhy evaluatorini chaqiring:
pip install pandas
python /path/to/QuantiPhy/evaluator.py \
outputs/quantiphy \
outputs/quantiphy_metrics \
--gt_file /path/to/QuantiPhy/quantiphy_validation.csvBu buyruq outputs/quantiphy ichidan topilgan bashorat fayllarini quantiphy_validation.csv bilan taqqoslab baholaydi va natijaviy metrikalarni outputs/quantiphy_metrics katalogiga yozadi.
Modelni vLLM bilan server sifatida ishga tushirish
Chekpointlarni OpenAI bilan mos vLLM endpointi orqali taqdim etish mumkin. Quyidagi buyruq 4B chekpointini GPU 0’da server sifatida ishga tushiradi:
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 vllmServer modelni code-as-world-4b nomi ostida ro‘yxatdan o‘tkazadi. Unda loyihaning fikrlashni o‘chirish chat shablonidan foydalaniladi, modelning maksimal uzunligi 4608 qilib belgilanadi va video kiritish openpangu backendi orqali 16 ta kadr uchun sozlanadi.
Kattaroq checkpointni ishga tushirish uchun weights/4b o‘rniga weights/9b ni, code-as-world-4b o‘rniga esa code-as-world-9b ni kiriting.
Video asosidagi abstraksiya misolini ishga tushirish
Repository MuJoCo asosidagi ballistik futbol misolini o‘z ichiga oladi. Avval alohida simulyatsiya talablarini o‘rnating:
pip install -r requirements/simulation.txtSo‘ng simulyatsiyani ishga tushiring:
python -m code_as_world.simulationSimulyatsiya render qilingan video va trayektoriyani outputs/simulations/ katalogiga yozadi.
Faqat trayektoriyani yaratish
Render qilingan video kerak bo‘lmasa, render qilishni o‘chiring:
python -m code_as_world.simulation --no-renderBu rejim faqat trayektoriya ma’lumotlari kerak bo‘lganda yoki render qilish ortiqcha yuklama keltirganda foydalidir.
Ilg‘or foydalanish bo‘yicha maslahatlar
- Modelni ongli ravishda tanlang: Yuklab olgan checkpointingizga mos ravishda
4byoki9bbaholash argumentidan izchil foydalaning. - Faqat keraklisini yuklab oling: Ish jarayoningiz faqat bitta model hajmidan foydalansa, ikkala checkpointni ham saqlashdan saqlaning.
- Xom generatsiyalarni saqlang: Bashorat nima sababdan muayyan ball olganini aniqlashda
outputs/quantiphy/dagi fayllarni ko‘rib chiqing. - Baholashning ikkala qatlamini ishga tushiring: Code-as-World buyrug‘i bitta ishga tushirish xulosasini yaratadi, rasmiy QuantiPhy baholovchisi esa yaratilgan bashorat CSV fayllarini birgalikda baholay oladi.
- Berilgan chat shablonini saqlang: Ishga tushirish retseptida
code_as_world/templates/qwen3_5_no_think.jinjaishlatiladi va fikrlash o‘chiriladi. Hujjatlashtirilgan konfiguratsiyani takrorlashda ushbu sozlamalarni saqlang. - GPU tanlovini ehtiyotkorlik bilan o‘zgartiring: Ishga tushirish misolida
CUDA_VISIBLE_DEVICES=0va GPU xotirasidan foydalanish qiymati0.90qo‘llanadi. Ko‘rinadigan qurilmani CUDA xostingizga moslang, qolgan o‘zgarishlarni esa e’lon qilingan retseptdan chetlanish deb hisoblang. - Zarur bo‘lganda render qilishni o‘tkazib yuboring: Faqat trayektoriya kerak bo‘lsa, simulyatsiya buyrug‘iga
--no-renderni qo‘shing.
Qo‘shimcha o‘qish
Tadqiqot asosi va metodologiyasi uchun texnik hisobot, loyiha sahifasi va MirroS blogidagi maqola bilan tanishing.
Xulosa
Code-as-World fizikaviy sahnalarning bajariladigan tasvirlarini o‘rganish uchun amaliy relizni taqdim etadi. Inference muhitini o‘rnatib, checkpointni yuklab olganingizdan so‘ng QuantiPhy baholashlarini takrorlashingiz, vLLM orqali modelni ishga tushirishingiz yoki kiritilgan MuJoCo simulyatsiyasini bajarishingiz mumkin. Ushbu ish jarayonlari birgalikda vizual kuzatuvlar aniq va tekshiriladigan fizikaviy mulohazalarni qanday qo‘llab-quvvatlashini namoyish etadi.
