
Code-as-World ni nini?
Code-as-World ni mradi wa utafiti wa kuwakilisha ulimwengu halisi kupitia msimbo unaoweza kutekelezwa. Wazo lake kuu ni kwamba pikseli hutoa ushahidi kuhusu tukio, lakini hazifafanui moja kwa moja vitu, hali, miundo, mienendo au mifumo iliyosababisha kile kilichotazamwa.
Mradi huu hutumia mchakato wa kiwakala unaotegemea uigaji na uthibitishaji wa mfululizo ili kugundua uwakilishi wa ulimwengu unaoweza kutekelezwa kutokana na uchunguzi. Uwakilishi huu hubadilisha ushahidi wa kuona kuwa data ya kimwili inayoweza kutumika tena na kusaidia hoja za kiasi kuhusu fizikia.
Code-as-World-VL-4B na Code-as-World-VL-9B. Pia inajumuisha huduma inayooana na OpenAI kupitia vLLM pamoja na mfano wa uondoaji wa kimwili unaoendeshwa na video na kujengwa kwa MuJoCo.Uwezo mkuu
- Uwakilishi wa ulimwengu unaoweza kutekelezwa: Huunda mifano ya hali za kimwili, mienendo na mifumo badala ya kuchukulia pikseli kuwa ontolojia kamili ya tukio.
- Vituo viwili vya ukaguzi vilivyotolewa: Chagua kati ya miundo ya Code-as-World-VL ya 4B na 9B.
- Tathmini ya QuantiPhy: Endesha tathmini ya hoja za kiasi kuhusu fizikia kwenye video za uthibitishaji na utoe faili za utabiri zinazoendana na mtathmini.
- Huduma inayooana na OpenAI: Fanya kituo chochote cha ukaguzi kipatikane kwa kutumia seva ya kawaida ya API ya vLLM.
- Mfano wa uigaji: Endesha kisa cha mpira wa miguu wa balistiki kilichojumuishwa na uhifadhi video yake iliyorenderwa pamoja na mwelekeo wake.
Mahitaji ya awali
Tumia Python 3.10 au 3.11 kwenye mwenyeji unaowezeshwa na CUDA. Utahitaji pia Git na CLI ya Hugging Face inayotumiwa na amri za hf download. Mahitaji ya nafasi ya kuhifadhi modeli na kumbukumbu ya GPU hutegemea kama unatumia kituo cha ukaguzi cha 4B, cha 9B, au vyote viwili.
Fuata amri za hazina ukiwa katika mazingira ya CUDA. README haitoi mapishi ya uendeshaji wa makisio kwenye CPU pekee.
Sakinisha Code-as-World
1. Nakili hazina
git clone https://github.com/MirroS-Lab/Code-as-World.git
cd Code-as-World2. Unda na uwashe mazingira pepe
python -m venv .venv
source .venv/bin/activateAmri ya uanzishaji hapo juu inalenga magamba yanayofanana na Unix. Baada ya kuiwasha, sakinisha vitegemezi vya makisio vilivyotolewa na mradi:
pip install -r requirements/inference.txt3. Pakua vituo vya ukaguzi
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/9bAmri hizi huweka modeli za 4B na 9B katika weights/4b na weights/9b. Ikiwa unapanga kutumia modeli moja pekee, pakua kituo chake cha ukaguzi kinacholingana tu.
Endesha tathmini ya QuantiPhy
QuantiPhy ni mkusanyiko wa tathmini ya kiasi unaotumiwa na toleo hili. Kabla ya kuendesha tathmini ya Code-as-World, nakili QuantiPhy na upakue video zake za uthibitishaji.
1. Tayarisha data ya tathmini
git clone https://github.com/Paulineli/QuantiPhy.git /path/to/QuantiPhy
hf download PaulineLi/QuantiPhy-validation \
--repo-type dataset \
--local-dir /path/to/QuantiPhy-validationBadilisha /path/to/QuantiPhy na /path/to/QuantiPhy-validation ziwe maeneo halisi kwenye mfumo wako.
2. Tathmini modeli ya 4B
Kutoka kwenye hazina ya Code-as-World, endesha:
python -m code_as_world.evaluation 4b \
--input-csv /path/to/QuantiPhy/quantiphy_validation.csv \
--video-dir /path/to/QuantiPhy-validation/validation_videos
3. Tathmini modeli ya 9B
python -m code_as_world.evaluation 9b \
--input-csv /path/to/QuantiPhy/quantiphy_validation.csv \
--video-dir /path/to/QuantiPhy-validation/validation_videosKila uendeshaji huandika aina tatu za vitu katika outputs/quantiphy/: CSV ya utabiri inayoendana na mtathmini, muhtasari wa vipimo wa uendeshaji husika, na matokeo ghafi ya modeli. Kuhifadhi matokeo ghafi ni muhimu unapokagua majibu yaliyosababisha alama mahususi.
4. Endesha mtathmini rasmi
Baada ya kutoa faili za CSV za utabiri, sakinisha pandas na uite mtathmini rasmi wa QuantiPhy:
pip install pandas
python /path/to/QuantiPhy/evaluator.py \
outputs/quantiphy \
outputs/quantiphy_metrics \
--gt_file /path/to/QuantiPhy/quantiphy_validation.csvAmri hii hutathmini faili za utabiri zilizopatikana katika outputs/quantiphy dhidi ya quantiphy_validation.csv na kuandika vipimo vinavyotokana na tathmini katika outputs/quantiphy_metrics.
Toa huduma ya modeli kwa vLLM
Vituo vya ukaguzi vinaweza kufikiwa kupitia mwisho wa vLLM unaooana na OpenAI. Amri ifuatayo hutoa huduma ya kituo cha ukaguzi cha 4B kwenye 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 vllmSeva husajili modeli kwa jina code-as-world-4b. Inatumia kiolezo cha mazungumzo cha mradi kisicho na hatua ya kufikiri, inaweka urefu wa juu wa modeli kuwa 4608, na kusanidi ingizo la video kwa fremu 16 kupitia backend ya openpangu.
Ili kuhudumia checkpoint kubwa zaidi, badilisha weights/4b kuwa weights/9b na ubadilishe code-as-world-4b kuwa code-as-world-9b.
Endesha mfano wa uondoaji unaoendeshwa na video
Hifadhi hii inajumuisha mfano wa mpira wa miguu wa balestiki unaotumia MuJoCo. Sakinisha kwanza mahitaji tofauti ya uigaji:
pip install -r requirements/simulation.txtKisha anzisha uigaji:
python -m code_as_world.simulationUigaji huandika video yake iliyorekodiwa na mfuatano wa mwendo kwenye outputs/simulations/.
Tengeneza mfuatano wa mwendo pekee
Ikiwa huhitaji video iliyorekodiwa, zima urekodishaji:
python -m code_as_world.simulation --no-renderHali hii ni muhimu unapohitaji data ya mfuatano wa mwendo pekee au wakati urekodishaji ungeongeza mzigo usio wa lazima.
Vidokezo vya matumizi ya hali ya juu
- Chagua modeli kwa makusudi: Tumia hoja ya tathmini ya
4bau9bkwa ulinganifu na checkpoint uliyopakua. - Pakua unachohitaji pekee: Epuka kuhifadhi checkpoint zote mbili ikiwa mtiririko wako wa kazi hutumia ukubwa mmoja tu wa modeli.
- Hifadhi vizalisho ghafi: Kagua faili zilizo kwenye
outputs/quantiphy/unapochunguza kwa nini utabiri ulipokea alama fulani. - Endesha tabaka zote mbili za tathmini: Amri ya Code-as-World huunda muhtasari wa uendeshaji mmoja, huku kitathmini rasmi cha QuantiPhy kikiweza kutathmini pamoja faili za CSV za utabiri zilizozalishwa.
- Tumia kiolezo cha mazungumzo kilichotolewa: Kichocheo cha uendeshaji kinatumia kwa uwazi
code_as_world/templates/qwen3_5_no_think.jinjana kuzima kufikiri. Hifadhi mipangilio hii unapozalisha upya usanidi ulioandikwa. - Rekebisha uteuzi wa GPU kwa uangalifu: Mfano wa uendeshaji unatumia
CUDA_VISIBLE_DEVICES=0na thamani ya matumizi ya kumbukumbu ya GPU ya0.90. Chagua kifaa kinachoonekana kulingana na mwenyeji wako wa CUDA, huku ukichukulia mabadiliko mengine kuwa tofauti na kichocheo kilichotolewa. - Ruka urekodishaji inapofaa: Ongeza
--no-renderkwenye amri ya uigaji wakati mfuatano wa mwendo ndio matokeo pekee yanayohitajika.
Usomaji zaidi
Kwa usuli wa utafiti na mbinu, soma ripoti ya kiufundi, ukurasa wa mradi, na chapisho la blogu la MirroS.
Hitimisho
Code-as-World inatoa toleo la vitendo la kuchunguza uwasilishaji unaoweza kutekelezwa wa matukio halisi. Baada ya kusakinisha mazingira ya uelekezaji na kupakua checkpoint, unaweza kuzalisha upya tathmini za QuantiPhy, kuhudumia modeli kupitia vLLM, au kuendesha uigaji wa MuJoCo uliojumuishwa. Kwa pamoja, mtiririko huu wa kazi unaonyesha jinsi uchunguzi wa kuona unavyoweza kusaidia hoja ya kimwili iliyo wazi na inayoweza kuthibitishwa.
