Ruka hadi maudhui makuu
Mafunzo ya AI

Endesha Miundo ya Code-as-World kwa Uelewa wa Kifizikia wa Kiasi

Jifunze jinsi ya kusakinisha Code-as-World, kupakua checkpoint zake za lugha-ono za 4B na 9B, kuendesha tathmini za video za QuantiPhy, kuweka modeli wazi kupitia vLLM, na kutekeleza mfano wa mpira wa miguu wa balistiki wa MuJoCo uliojumuishwa.

Endesha Miundo ya Code-as-World kwa Uelewa wa Kifizikia wa Kiasi

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.

Muhtasari wa mradi wa Code-as-WorldCode-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-World

2. Unda na uwashe mazingira pepe

python -m venv .venv
source .venv/bin/activate

Amri ya uanzishaji hapo juu inalenga magamba yanayofanana na Unix. Baada ya kuiwasha, sakinisha vitegemezi vya makisio vilivyotolewa na mradi:

pip install -r requirements/inference.txt

3. 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/9b

Amri 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-validation

Badilisha /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_videos

Kila 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.csv

Amri 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 vllm

Seva 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.txt

Kisha anzisha uigaji:

python -m code_as_world.simulation

Uigaji 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-render

Hali 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 4b au 9b kwa 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.jinja na kuzima kufikiri. Hifadhi mipangilio hii unapozalisha upya usanidi ulioandikwa.
  • Rekebisha uteuzi wa GPU kwa uangalifu: Mfano wa uendeshaji unatumia CUDA_VISIBLE_DEVICES=0 na thamani ya matumizi ya kumbukumbu ya GPU ya 0.90. Chagua kifaa kinachoonekana kulingana na mwenyeji wako wa CUDA, huku ukichukulia mabadiliko mengine kuwa tofauti na kichocheo kilichotolewa.
  • Ruka urekodishaji inapofaa: Ongeza --no-render kwenye 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.