
Utakachojenga
Mradi huu unatoa hati za kuendesha DeepSeek-V4.1-Flash kwenye nodi mbili za NVIDIA DGX Spark kwa kutumia vLLM. Usambamba wa tensor huendeshwa kati ya nodi hizo kupitia kiungo chao cha QSFP/RoCE, huku nodi kuu ikitoa API inayooana na OpenAI kwenye porti 8000.
Usambazaji huu hutumia checkpoint ya 0xSero/DeepSeek-V4.1-Flash-Spark. Wataalamu wa backbone wanaoelekezwa wamewekwa kama data ya trellis ya EXL3 yenye wastani ulioripotiwa wa biti 2.77 kwa uzito. Attention, wataalamu wanaoshirikiwa, routers, majedwali ya Engram, tabaka za draft, vipengele vya vision, embeddings, na kichwa cha matokeo vinasalia kutoka kwenye checkpoint ya upstream.
Baada ya usambazaji, unaweza kutumia modeli moja kwa moja kupitia API yake au kuiunganisha na wakala wa uandishi wa msimbo wa Pi kwa uandishi wa msimbo na michakato inayosaidiwa na zana.
Utendaji na uwezo
README inaripoti vipimo kutoka kwenye nodi mbili za DGX Spark GB10 kwa kutumia usambamba wa tensor kupitia RoCE, akiba ya KV ya FP8, usimbuaji wa kubashiri wa DSpark wa tokeni saba, majedwali ya Engram yanayohifadhiwa kwenye diski, na mfuatano miwili unaoendeshwa kwa wakati mmoja.
- Prefill ya prompt ya 8k: takriban tokeni 2,050 kwa sekunde.
- Prefill ya prompt ya 32k: takriban tokeni 2,061 kwa sekunde.
- Usimbuaji wa msimbo: takriban tokeni 39–41 kwa sekunde kwa mtiririko mmoja.
- Usimbuaji wa msimbo wa mitiririko miwili: tokeni 60 kwa sekunde kwa jumla.
- Usimbuaji wa matini ya kawaida: takriban tokeni 29 kwa sekunde kwa mtiririko mmoja.
- Upeo wa muktadha kwa kila ombi: tokeni 262,144.
- Pooli ya akiba ya KV: tokeni 2,023,717.
- Ingizo la vision, miito ya zana, na reasoning: zilijaribiwa kwa mafanikio.
- Kumbukumbu ya muktadha wa tokeni 175k: ilifaulu milango yote sita ya maabara iliyoripotiwa.
Uanzishaji wa kwanza huchukua takriban dakika 11–13 kwa sababu uzani na benki za EXL3 hupakiwa, kernels hukompiliwa, na grafu za CUDA hunaswa.
Mahitaji ya awali
Unahitaji nodi mbili za DGX Spark zinazoendesha DGX OS. Chagua moja kuwa kuu, ambayo itatoa API, na nyingine kuwa mjenzi.
- Kebo ya QSFP inayounganisha nodi hizo, ikiwa RoCE imewezeshwa.
- Angalau porti moja ya RDMA katika hali ya
ACTIVEkwenye kila nodi, iliyothibitishwa kwardma link. - Anwani ya IPv4 kwenye mtandao wa fabric unaolingana kwa kila nodi, kama vile
10.10.10.13na10.10.10.11. - SSH isiyohitaji nenosiri kutoka nodi kuu kwenda kwa mjenzi kwa kutumia anwani ya fabric ya mjenzi.
- Docker yenye runtime ya NVIDIA iliyosakinishwa kwenye nodi zote mbili.
- Mtumiaji wako lazima awe katika kundi la
docker. - Takriban GB 700 za nafasi tupu ya NVMe kwenye nodi kuu na GB 470 kwenye mjenzi.
python3,rsync, nacurlkwenye nodi zote mbili.- Node.js na npm kwenye mashine ambayo Pi itaendeshwa.
Clone hazina na fafanua mjenzi
Tekeleza amri zifuatazo kwenye nodi kuu. Badilisha lengo la SSH kwa anwani ya fabric ya mjenzi.
git clone https://github.com/0xSero/DeepSeek-V4.1-Flash-Two-Sparks
cd DeepSeek-V4.1-Flash-Two-Sparks
export WORKER=user@10.10.10.11Hati hutumia WORKER kuunganisha kwenye Spark ya pili. Hakikisha uthibitishaji kwa ufunguo wa SSH unafanya kazi kabla ya kuendelea.
Pakua na sambaza checkpoint
Pakua checkpoint ya takriban GB 462 kwenye saraka chaguo-msingi ya modeli kwenye nodi kuu:
scripts/download.shHati ya upakuaji pia huunganisha tena vipande vya Engram. Kwa sababu Hugging Face inaweka kikomo cha faili binafsi kuwa GB 50, vipande viwili asilia huhifadhiwa kama faili za .partNN. Hati huviunganisha tena, huthibitisha vipande sita asilia dhidi ya sha256-manifest.txt, na kuondoa faili za sehemu. Weka KEEP_PARTS=1 ikiwa ungependa kuhifadhi sehemu hizo.
Nakili modeli iliyokamilika kwenda kwa mjenzi kupitia fabric:
scripts/copy-to-peer.shBadala yake, unaweza pia kutekeleza scripts/download.sh moja kwa moja kwenye mjenzi. Njia chaguo-msingi ya modeli ni ~/models/DeepSeek-V4.1-Flash-Spark. Ikiwa mjenzi anatumia njia nyingine, sanidi WORKER_MODEL_DIR kabla ya kuanzisha.
Vuta image ya kuhudumia
Mradi huu hutumia image ya vLLM iliyo na njia ya mchanganyiko wa wataalamu ya EXL3 na kernels za B12X Spark. Vuta image iliyofungwa kwenye nodi zote mbili:
docker pull ghcr.io/0xsero/deepseek-v4.1-flash-spark@sha256:5668e35e5ee021da4b9ce88a1964caf0e082e8ca01d81d1d64b6213a55c6add5Hati ya uzinduzi huvuta image moja kwa moja ikiwa haijapatikana tayari, kwa hivyo hatua hii pia inaweza kukamilishwa wakati wa uanzishaji.
Washa ranks zote mbili za usambamba wa tensor
Anzisha seva ya nodi mbili kutoka kwenye nodi kuu:
scripts/launch.shKizindua hutambua violesura hai vya fabric, huunda ufunguo wa API kwenye ~/.dsv41-two-sparks/api_key, huanzisha walinzi wa kumbukumbu kwenye nodi zote mbili, huzindua rank 1 kwenye mjenzi, na kuanzisha rank 0 kwenye nodi kuu. Husubiri API ipatikane na huruhusu hadi dakika 45 kwa uanzishaji.
Tumia hati hiyo hiyo kukagua au kudhibiti usambazaji:
scripts/launch.sh status
scripts/launch.sh logs r0
scripts/launch.sh logs r1
scripts/launch.sh stopSeva husikiliza kwenye nodi kuu kupitia http://127.0.0.1:8000 ndani ya mashine. Wateja wanaweza kutumia anwani inayofikika ya nodi kuu, huku trafiki ya rank-kwa-rank ikilazimika kutumia fabric ya QSFP/RoCE.
Endesha majaribio ya awali
Thibitisha uzalishaji wa matini, miito ya zana, na ingizo la vision kwa:
python3 scripts/smoke.py http://127.0.0.1:8000Kila ukaguzi huripoti PASS au FAIL. Unaweza pia kuendesha kipimo cha hiari:
python3 scripts/bench.py --out bench.json --conc 1 2Alama ya utendaji inashughulikia kujaza awali, kusimbua, na kasi ya muktadha mrefu bila kuweka vikomo vya matokeo.
Tumia kituo kinachooana na OpenAI
Seva hutoa maelezo yafuatayo ya API:
- URL ya msingi:
http://<head-ip>:8000/v1 - Jina la modeli:
deepseek-v4.1-flash - Uthibitishaji: tokeni ya bearer kutoka
~/.dsv41-two-sparks/api_key
Kwa mfano, pata ufunguo kutoka kwenye head kwa kutumia:
ssh <head> cat ~/.dsv41-two-sparks/api_keyKisha unaweza kutumia kituo hicho na mteja yeyote anayeooana na OpenAI kwa kusanidi URL yake ya msingi, jina la modeli, na ufunguo wa bearer.
Unganisha Pi na modeli
Kwenye mashine yenye Node.js na npm, sakinisha na usajili mtoa huduma wa Pi. Amri hiyo inakubali URL ya msingi ya API bila njia ya mwisho ya modeli:
pi/install.sh http://<head-ip>:8000/v1Weka ufunguo wa API katika shell itakayoanzisha Pi:
export DSV41_API_KEY=$(ssh <head> cat ~/.dsv41-two-sparks/api_key)
pi --model dsv41-sparks/deepseek-v4.1-flashKisakinishi husakinisha Pi ikiwa bado haipo kwenye PATH yako, kisha huongeza au kubadilisha tu mtoa huduma wa dsv41-sparks katika usanidi wa modeli wa Pi. Kwanza huunda nakala ya chelezo yenye muhuri wa muda na huwaacha watoa huduma wengine bila kubadilishwa.
Ukitumia orodha ya enabledModels, kisakinishi huongeza modeli inayotolewa kwenye orodha hiyo. Weka SET_DEFAULT=1 ili kuifanya modeli hii iwe modeli ya kuanzisha Pi.
Kiendelezi kilichosakinishwa huondoa kikomo cha tokeni za matokeo cha Pi kwa mtoa huduma huyu, hivyo kuruhusu majibu kukoma kwa kawaida. Husoma DSV41_API_KEY wakati wa ombi na hakiandiki ufunguo huo kwenye usanidi wa Pi.
Elewa usanidi chaguomsingi
scripts/launch.sh hurudia usanidi wa utoaji uliopimwa. Mipangilio muhimu ni pamoja na:
- Akiba ya FP8 KV yenye
KV_BYTES=2700000000. - Urefu wa juu wa muktadha wa tokeni
262144. - Hadi mfuatano mbili unaofanya kazi kwa wakati mmoja.
- Idadi ya juu ya tokeni zilizopangwa kwa pamoja imewekwa kuwa
2048. - Usimbuaji wa kubashiri wa DSpark wenye tokeni saba za rasimu na uthibitishaji unaobadilika.
- Majedwali ya Engram yanayohifadhiwa kwenye diski.
- Kernel za umakini, linear, na MoE za B12X.
- Wataalamu walioelekezwa wa EXL3 wenye
ST_EXL3_PREFILL=st. - Grafu za CUDA za
FULL_DECODE_ONLY. - All-reduce ya B12X RoCE ya hatua moja na NCCL kupitia RoCE kwa shughuli nyingine zilizosambazwa.
- Picha moja kwa kila ombi la multimodal.
- Vichanganushi vya
deepseek_v41vya hoja na miito ya zana.
Mipangilio mingi inaweza kubadilishwa kupitia vigezo vya mazingira. Saraka ya modeli inadhibitiwa na MODEL_DIR, saraka ya modeli ya worker na WORKER_MODEL_DIR, na data ya kudumu ya wakati wa utekelezaji na STATE_DIR. Saraka chaguomsingi ya hali ni ~/.dsv41-two-sparks.
Kizindua huweka modeli kwenye /model kwa hali ya kusoma pekee. Hunakili mpango wa mgao wa EXL3 kwenye saraka ya hali na kubadilisha njia za benki zake zielekee kwenye saraka za EXL3 zilizowekwa.
Weka trafiki kwenye mtandao sahihi
Michakato ya vLLM, NCCL, na Gloo lazima ifungame kwenye anwani za QSFP/RoCE badala ya violesura vya Wi-Fi, Ethernet, au Tailscale. Kwa kawaida kizindua hutambua milango hai ya RoCE na kuweka vigezo kama vile:
VLLM_HOST_IPNCCL_SOCKET_IFNAMEGLOO_SOCKET_IFNAMENCCL_IB_HCA
Ugunduzi wa kiotomatiki ukichagua kiolesura kisicho sahihi, weka wazi HEAD_IP, WORKER_IP, HEAD_IFNAME, WORKER_IFNAME, HEAD_HCAS, au WORKER_HCAS. Tumia ip -br a na rdma link kutambua anwani na vifaa sahihi vya RDMA.
Dhibiti kumbukumbu kwa usalama
DGX Spark hushiriki hifadhi ya kumbukumbu ya GB 128 kati ya CPU na GPU. Kumbukumbu inayopatikana ikifika sifuri, mwenyeji anaweza kukosa kuitikia badala ya kusitisha kontena kwa usafi. Kizindua huanzisha scripts/memguard.sh kwenye nodi zote mbili ili kusimamisha kontena za dsv41-r* wakati kumbukumbu inayopatikana inashuka chini ya kiwango cha chini kilichosanidiwa.
Kagua kumbukumbu ya ulinzi wa kumbukumbu kwenye:
~/.dsv41-two-sparks/memguard.logKwa usanidi chaguomsingi, kumbukumbu inayopatikana katika hali thabiti huripotiwa kuwa takriban GiB 2–3. Ulinzi ukianzishwa, punguza KV_BYTES au GPU_UTIL kabla ya kuongeza MEMGUARD_GIB.
Tatua matatizo ya kawaida
Kuanzisha ni polepole
Uanzishaji wa kwanza unaweza kuchukua takriban dakika 12 wakati uzani unapopakiwa, benki za EXL3 zikiandaliwa, kernel za B12X zikikusanywa, na grafu za CUDA zikinaswa. Akiba za kernel huhifadhiwa chini ya STATE_DIR/cache, hivyo uzinduzi unaofuata unaweza kuwa wa haraka zaidi.
Faili za Engram hazipo
Uanzishaji ukiripoti faili inayokosekana kama model-00005-of-00006.safetensors, huenda vipande vya Engram havikuunganishwa tena. Endesha scripts/download.sh tena. Huendelea na kazi ambazo hazijakamilika na huruka hatua zilizokamilika.
Ugunduzi wa kitambaa cha mtandao unachagua kiolesura kisicho sahihi
Kagua anwani kwa ip -br a na hali ya RDMA kwa rdma link. Kisha toa vigezo vya wazi vya kiolesura, IP, na HCA vya head na worker vilivyoelezwa hapo juu.
Upakuaji ni wa polepole
Spark ikifikia intaneti kupitia Wi-Fi pekee, pakua checkpoint kwenye nodi yenye kiunganishi bora zaidi kisha utumie scripts/copy-to-peer.sh kupitia fabric.
Pi haiwezi kuona modeli
Hakikisha DSV41_API_KEY imewekwa kwa export katika shell ileile inayoanzisha Pi. Endesha /model ndani ya Pi ili kupakia upya orodha ya modeli.
Hali ya uchapishaji ya Pi inasubiri bila kikomo
Wakati ingizo la kawaida si terminali, pi -p pia husoma kutoka stdin. Katika hati za kiotomatiki, elekeza stdin kutoka /dev/null:
pi -p < /dev/nullHitimisho
Hazina hii inaweka pamoja modeli, picha ya huduma, hati za uzinduzi uliosambazwa, ulinzi wa kumbukumbu, zana za uthibitishaji, na ujumuishaji wa Pi unaohitajika ili kuendesha DeepSeek-V4.1-Flash kwenye DGX Spark mbili. Andaa kitambaa cha RoCE, pakua na uthibitishe checkpoint kwenye nodi zote mbili, zindua rank mbili, endesha majaribio ya awali, kisha elekeza wateja wanaooana au Pi kwenye endpoint inayooana na OpenAI ya nodi kuu.
