
Siz nimalarni yaratasiz
Ushbu loyiha DeepSeek-V4.1-Flash modelini vLLM yordamida ikkita NVIDIA DGX Spark tugunida ishga tushirish uchun skriptlarni taqdim etadi. Tensor parallelizmi tugunlar o‘rtasida QSFP/RoCE ulanishi orqali ishlaydi, bosh tugun esa 8000-portda OpenAI bilan mos API’ni taqdim etadi.
Joylashtirishda 0xSero/DeepSeek-V4.1-Flash-Spark checkpoint’idan foydalaniladi. Marshrutlanadigan backbone ekspertlari o‘rtacha 2.77 bit/og‘irlik ko‘rsatkichi bilan EXL3 trellis ma’lumotlari sifatida kodlangan. Attention, umumiy ekspertlar, routerlar, Engram jadvallari, draft qatlamlari, vision komponentlari, embedding’lar va chiqish qatlami yuqori oqimdagi checkpoint’dan o‘z holicha saqlanadi.
Joylashtirishdan so‘ng modeldan bevosita API orqali foydalanishingiz yoki uni kod yozish va vositalar yordamidagi ish jarayonlari uchun Pi kodlash agentiga ulashingiz mumkin.
Ishlash samaradorligi va imkoniyatlar
README’da tensor parallelizmi, RoCE, FP8 KV keshi, yetti tokenli DSpark spekulyativ dekodlash, diskka asoslangan Engram jadvallari va ikkita bir vaqtdagi ketma-ketlikdan foydalangan holda ikkita DGX Spark GB10 tugunida o‘lchangan natijalar keltirilgan.
- 8k promptni oldindan to‘ldirish: taxminan sekundiga 2,050 token.
- 32k promptni oldindan to‘ldirish: taxminan sekundiga 2,061 token.
- Kodni dekodlash: bitta oqim uchun taxminan sekundiga 39–41 token.
- Ikki oqimli kod dekodlashi: jami sekundiga 60 token.
- Nasrni dekodlash: bitta oqim uchun taxminan sekundiga 29 token.
- Har bir so‘rov uchun maksimal kontekst: 262,144 token.
- KV kesh havzasi: 2,023,717 token.
- Vision kiritishi, vosita chaqiruvlari va reasoning: smoke-test muvaffaqiyatli o‘tdi.
- 175k tokenli kontekstni qayta chaqirish: hisobotdagi oltita laboratoriya tekshiruvining barchasidan o‘tdi.
Birinchi ishga tushirish taxminan 11–13 daqiqa davom etadi, chunki og‘irliklar va EXL3 banklari yuklanadi, kernel’lar kompilyatsiya qilinadi va CUDA grafikalari yozib olinadi.
Talablar
DGX OS ishlayotgan ikkita DGX Spark tuguni kerak bo‘ladi. Ulardan birini API’ni taqdim etuvchi bosh tugun, ikkinchisini esa ishchi tugun sifatida tanlang.
- Tugunlarni ulovchi QSFP kabeli va yoqilgan RoCE.
- Har bir tugunda
rdma linkorqali tekshirilgan kamida bittaACTIVEholatidagi RDMA porti. - Har bir tugun uchun mos fabric tarmog‘ida IPv4 manzili, masalan
10.10.10.13va10.10.10.11. - Bosh tugundan ishchi tugunga uning fabric manzili orqali parolsiz SSH ulanishi.
- Ikkala tugunda NVIDIA runtime o‘rnatilgan Docker.
- Foydalanuvchingiz
dockerguruhiga a’zo bo‘lishi kerak. - Bosh tugunda taxminan 700 GB, ishchi tugunda esa 470 GB bo‘sh NVMe xotira.
- Ikkala tugunda
python3,rsyncvacurl. - Pi ishlaydigan kompyuterda Node.js va npm.
Repository’ni klonlash va ishchi tugunni belgilash
Quyidagi buyruqlarni bosh tugunda bajaring. SSH maqsadini ishchi tugunning fabric manziliga almashtiring.
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.11Skriptlar ikkinchi Spark’ga ulanish uchun WORKER o‘zgaruvchisidan foydalanadi. Davom etishdan oldin SSH kaliti orqali autentifikatsiya ishlashiga ishonch hosil qiling.
Checkpoint’ni yuklab olish va tarqatish
Taxminan 462 GB hajmdagi checkpoint’ni bosh tugundagi standart model katalogiga yuklab oling:
scripts/download.shYuklab olish skripti Engram bo‘laklarini ham qayta yig‘adi. Hugging Face alohida fayllarni 50 GB bilan cheklagani sababli, ikkita asl bo‘lak .partNN fayllari sifatida saqlanadi. Skript ularni qayta yig‘adi, oltita asl bo‘lakni sha256-manifest.txt bilan tekshiradi va bo‘lak fayllarini o‘chiradi. Agar bu bo‘laklarni saqlab qolmoqchi bo‘lsangiz, KEEP_PARTS=1 ni o‘rnating.
Tayyor modelni fabric orqali ishchi tugunga nusxalang:
scripts/copy-to-peer.shMuqobil ravishda, scripts/download.sh skriptini ishchi tugunda ham bevosita ishga tushirishingiz mumkin. Standart model yo‘li ~/models/DeepSeek-V4.1-Flash-Spark. Agar ishchi tugun boshqa yo‘ldan foydalansa, ishga tushirishdan oldin WORKER_MODEL_DIR ni sozlang.
Serving image’ni yuklab olish
Loyiha EXL3 mixture-of-experts yo‘li va B12X Spark kernel’larini o‘z ichiga olgan vLLM image’idan foydalanadi. Qotirilgan image’ni ikkala tugunga yuklab oling:
docker pull ghcr.io/0xsero/deepseek-v4.1-flash-spark@sha256:5668e35e5ee021da4b9ce88a1964caf0e082e8ca01d81d1d64b6213a55c6add5Agar image hali mavjud bo‘lmasa, ishga tushirish skripti uni avtomatik yuklab oladi, shuning uchun bu bosqichni ishga tushirish vaqtida ham bajarish mumkin.
Ikkala tensor-parallel rank’ni ishga tushirish
Ikki tugunli serverni bosh tugundan ishga tushiring:
scripts/launch.shLauncher faol fabric interfeyslarini aniqlaydi, ~/.dsv41-two-sparks/api_key manzilida API kalitini yaratadi, ikkala tugunda xotira himoyachilarini ishga tushiradi, ishchi tugunda 1-rank’ni va bosh tugunda 0-rank’ni ishga tushiradi. U API mavjud bo‘lguncha kutadi va ishga tushirish uchun 45 daqiqagacha vaqt beradi.
Joylashtirishni tekshirish yoki boshqarish uchun shu skriptdan foydalaning:
scripts/launch.sh status
scripts/launch.sh logs r0
scripts/launch.sh logs r1
scripts/launch.sh stopServer bosh tugunda lokal ravishda http://127.0.0.1:8000 manzilida tinglaydi. Mijozlar bosh tugunning ulanish mumkin bo‘lgan manzilidan foydalanishi mumkin, rank’lar o‘rtasidagi trafik esa QSFP/RoCE fabric’idan o‘tishi kerak.
Smoke-testlarni ishga tushirish
Matn generatsiyasi, vosita chaqiruvlari va vision kiritishini quyidagi buyruq bilan tekshiring:
python3 scripts/smoke.py http://127.0.0.1:8000Har bir tekshiruv PASS yoki FAIL natijasini ko‘rsatadi. Ixtiyoriy benchmark’ni ham ishga tushirishingiz mumkin:
python3 scripts/bench.py --out bench.json --conc 1 2Benchmark chiqish cheklovlarisiz prefill, decode va uzun kontekst tezligini qamrab oladi.
OpenAI bilan mos endpointdan foydalanish
Server quyidagi API ma'lumotlarini taqdim etadi:
- Asosiy URL:
http://<head-ip>:8000/v1 - Model nomi:
deepseek-v4.1-flash - Autentifikatsiya:
~/.dsv41-two-sparks/api_keyfaylidagi bearer token
Masalan, kalitni head tugunidan quyidagicha oling:
ssh <head> cat ~/.dsv41-two-sparks/api_keyShundan so'ng asosiy URL, model nomi va bearer kalitni sozlash orqali endpointdan OpenAI bilan mos istalgan mijozda foydalanishingiz mumkin.
Pi'ni modelga ulash
Node.js va npm o'rnatilgan mashinada Pi provayderini o'rnating va ro'yxatdan o'tkazing. Buyruq API asosiy URL'ini yakuniy model yo'lisiz qabul qiladi:
pi/install.sh http://<head-ip>:8000/v1Pi'ni ishga tushiradigan shell'da API kalitini o'rnating:
export DSV41_API_KEY=$(ssh <head> cat ~/.dsv41-two-sparks/api_key)
pi --model dsv41-sparks/deepseek-v4.1-flashO'rnatuvchi Pi hali PATH ichida bo'lmasa, uni o'rnatadi, so'ng Pi model konfiguratsiyasida faqat dsv41-sparks provayderini qo'shadi yoki almashtiradi. Avval vaqt belgisi qo'yilgan zaxira nusxa yaratiladi, boshqa provayderlar esa o'zgartirilmaydi.
Agar enabledModels ro'yxatidan foydalansangiz, o'rnatuvchi xizmat ko'rsatilayotgan modelni unga qo'shadi. Bu modelni Pi'ning ishga tushirish modeli qilish uchun SET_DEFAULT=1 ni o'rnating.
O'rnatilgan kengaytma ushbu provayder uchun Pi'ning chiqish tokenlari cheklovini olib tashlaydi va javoblarning tabiiy yakunlanishiga imkon beradi. U DSV41_API_KEY ni so'rov vaqtida o'qiydi va kalitni Pi konfiguratsiyasiga yozmaydi.
Standart konfiguratsiyani tushunish
scripts/launch.sh o'lchangan xizmat ko'rsatish konfiguratsiyasini takrorlaydi. Muhim sozlamalar:
KV_BYTES=2700000000bilan FP8 KV keshi.- Maksimal kontekst uzunligi:
262144token. - Bir vaqtning o'zida ikkitagacha ketma-ketlik.
- Maksimal paketlangan tokenlar soni
2048qilib belgilangan. - Yettita qoralama token va moslashuvchan tekshiruvga ega DSpark spekulyativ dekodlashi.
- Diskka asoslangan Engram jadvallari.
- B12X attention, linear va MoE yadrolari.
ST_EXL3_PREFILL=stbilan EXL3 yo'naltirilgan ekspertlari.FULL_DECODE_ONLYCUDA grafikalari.- B12X RoCE one-shot all-reduce va qolgan taqsimlangan amallar uchun RoCE orqali NCCL.
- Multimodal prompt uchun bitta rasm.
deepseek_v41reasoning va tool-call parserlari.
Ko'pgina sozlamalarni muhit o'zgaruvchilari orqali almashtirish mumkin. Model katalogi MODEL_DIR, worker model katalogi WORKER_MODEL_DIR, doimiy runtime ma'lumotlari esa STATE_DIR orqali boshqariladi. Standart state katalogi: ~/.dsv41-two-sparks.
Launcher modelni /model manziliga faqat o'qish rejimida ulaydi. U EXL3 taqsimlash rejasini state katalogiga ko'chiradi va uning bank yo'llarini ulangan EXL3 kataloglariga qayta yozadi.
Trafikni to'g'ri tarmoqda saqlash
vLLM, NCCL va Gloo jarayonlari Wi-Fi, Ethernet yoki Tailscale interfeyslariga emas, QSFP/RoCE manzillariga ulanishi kerak. Launcher odatda faol RoCE portlarini aniqlaydi va quyidagiga o'xshash o'zgaruvchilarni o'rnatadi:
VLLM_HOST_IPNCCL_SOCKET_IFNAMEGLOO_SOCKET_IFNAMENCCL_IB_HCA
Avtomatik aniqlash noto'g'ri interfeysni tanlasa, HEAD_IP, WORKER_IP, HEAD_IFNAME, WORKER_IFNAME, HEAD_HCAS yoki WORKER_HCAS ni aniq o'rnating. To'g'ri manzillar va RDMA qurilmalarini aniqlash uchun ip -br a va rdma link buyruqlaridan foydalaning.
Xotirani xavfsiz boshqarish
DGX Spark CPU va GPU o'rtasida 128 GB xotira havzasini bo'lishadi. Mavjud xotira nolga tushsa, host konteynerni to'g'ri yakunlash o'rniga javob bermay qolishi mumkin. Launcher ikkala tugunda ham scripts/memguard.sh ni ishga tushirib, mavjud xotira sozlangan chegaradan pastga tushganda dsv41-r* konteynerlarini to'xtatadi.
Xotira himoyasi jurnalini quyidagi manzilda tekshiring:
~/.dsv41-two-sparks/memguard.logStandart konfiguratsiyada barqaror holatdagi mavjud xotira taxminan 2–3 GiB sifatida ko'rsatiladi. Himoya ishga tushsa, MEMGUARD_GIB ni oshirishdan oldin KV_BYTES yoki GPU_UTIL ni kamaytiring.
Keng tarqalgan muammolarni bartaraf etish
Ishga tushish sekin
Birinchi ishga tushirish og'irliklar yuklanishi, EXL3 banklari tayyorlanishi, B12X yadrolari kompilyatsiya qilinishi va CUDA grafikalari yozib olinishi davomida taxminan 12 daqiqa olishi mumkin. Yadro keshlari STATE_DIR/cache ichida saqlanadi, shuning uchun keyingi ishga tushirishlar tezroq bo'lishi mumkin.
Engram fayllari yo'q
Agar ishga tushirishda model-00005-of-00006.safetensors kabi fayl yo'qligi haqida xabar berilsa, Engram shardlari qayta birlashtirilmagan bo'lishi mumkin. scripts/download.sh ni yana ishga tushiring. U tugallanmagan ishni davom ettiradi va bajarilgan bosqichlarni o'tkazib yuboradi.
Fabric aniqlash noto'g'ri interfeysni tanlaydi
Manzillarni ip -br a, RDMA holatini esa rdma link orqali tekshiring. Keyin yuqorida ko'rsatilgan head va worker interfeysi, IP hamda HCA o'zgaruvchilarini aniq kiriting.
Yuklab olish sekin
Agar Spark internetga faqat Wi-Fi orqali chiqsa, checkpoint'ni uplinki eng yaxshi bo'lgan tugunda yuklab oling va fabric orqali scripts/copy-to-peer.sh dan foydalaning.
Pi modelni ko'ra olmayapti
DSV41_API_KEY Pi'ni ishga tushiradigan ayni shell'da export qilinganiga ishonch hosil qiling. Modellar ro'yxatini qayta yuklash uchun Pi ichida /model buyrug'ini bajaring.
Pi print rejimida cheksiz kutmoqda
Standart kiritish terminal bo‘lmaganda, pi -p stdin’dan ham o‘qiydi. Skriptlarda stdin’ni /dev/null manzilidan yo‘naltiring:
pi -p < /dev/nullXulosa
Ushbu repozitoriy DeepSeek-V4.1-Flash’ni ikkita DGX Spark’da ishga tushirish uchun zarur bo‘lgan model, xizmat ko‘rsatish imiji, taqsimlangan ishga tushirish skriptlari, xotirani himoyalash, tekshirish vositalari va Pi integratsiyasini jamlaydi. RoCE tarmog‘ini tayyorlang, checkpoint’ni ikkala tugunga yuklab olib tekshiring, ikkita rank’ni ishga tushiring, smoke-testlarni bajaring, so‘ng mos mijozlar yoki Pi’ni bosh tugunning OpenAI bilan mos endpoint’iga yo‘naltiring.
