Ruka hadi maudhui makuu
Mafunzo ya AI

Endesha Qwen3.8 Flash Next kwenye DGX Spark Moja kwa TensorFold

Jifunze jinsi ya kusakinisha, kuanzisha, kujaribu na kuboresha Qwen3.8 Flash Next kwenye NVIDIA DGX Spark moja. Mafunzo haya yanaeleza hati za TensorFold za kupeleka, maombi ya gumzo yanayoendana na OpenAI, uingizaji wa picha na video, vidhibiti vya kufikiri, usanidi wa kumbukumbu, ufuatiliaji na ukaguzi wa utendaji.

Endesha Qwen3.8 Flash Next kwenye DGX Spark Moja kwa TensorFold

Muhtasari

Mradi huu unaendesha Qwen3.8 Flash Next kutoka kwenye NVIDIA DGX Spark moja kupitia API inayooana na OpenAI. Unatumia TensorFold v0.3.6.3, checkpoint ya MLX ya biti 4 yenye kichwa cha rasimu cha MTP, pamoja na mkusanyiko wa viraka vilivyoundwa kuharakisha uchakataji wa vidokezo bila kubadilisha maandishi yanayotengenezwa.

Usanidi chaguomsingi unaunga mkono maombi matano yanayoendeshwa kwa wakati mmoja, kila moja likiwa na dirisha kamili la muktadha la tokeni 262,144 la modeli. Pia hupakia mnara wa maono wa modeli kwenye CUDA, hivyo kuruhusu ujumbe wa mazungumzo kuwa na picha na video.

  • Kitambulisho cha modeli ya API: Qwen3.8-Flash-Next
  • Endpoint chaguomsingi: http://<spark-address>:8888/v1
  • Mikondo sambamba: 5
  • Muktadha kwa kila mkondo: tokeni 262,144
  • Jumla ya hifadhi ya KV: tokeni 1,310,720
  • Akiba ya KV: int8 kwa chaguo-msingi
  • Aina za ingizo: maandishi, picha na video

Vipengele Muhimu

Utabiri wa wakati mmoja wenye muktadha mrefu

TensorFold huipa kila mkondo akiba yake kamili ya muktadha. Kwa mipangilio chaguomsingi, mikondo mitano kila mmoja hupokea dirisha la tokeni 262,144 kwa vidokezo na majibu. Hifadhi ya KV ya int8 inayotokana hutumia takriban GiB 23.4.

Huduma inayoendana na OpenAI

Seva hufichua endpoint kama /v1/models na /v1/chat/completions. Wateja wanaooana na OpenAI wanaweza kuunganishwa kwa kubadilisha URL yao ya msingi na kuchagua kitambulisho cha modeli Qwen3.8-Flash-Next.

Vidokezo vya aina nyingi

Ujumbe wa mtumiaji unaweza kuwa na sehemu za maudhui za image_url na video_url za mtindo wa OpenAI. Miundo ya picha inayotumika ni pamoja na JPEG, PNG na WebP. Video zinaweza kutumia MP4, WebM, MOV, MKV au muundo mwingine ambao FFmpeg inaweza kusimbua.

Uchakataji wa vidokezo ulioboreshwa kwa viraka

Viraka vya TensorFold vilivyojumuishwa huongeza usomaji wa mapema kutoka SSD, usomaji asilia wenye nyuzi nyingi, uteuzi ulioboreshwa wa vizuizi vya umakini adimu, vipande vya vidokezo vinavyoweza kusanidiwa, rasimu za kunakili, vihesabu vya tokeni vya moja kwa moja na usaidizi wa maono wa Flash Next. Kulingana na vipimo vya hazina, uchakataji wa vidokezo ni takriban mara 1.7 haraka kuliko toleo lisilowekewa viraka lililolinganishwa, huku majibu ya maandishi yaliyojaribiwa yakibaki sawa kabisa kwa baiti.

Mahitaji ya Mfumo

Andaa mwenyeji kabla ya kunakili hazina:

  • NVIDIA DGX Spark au mfumo mwingine wa GB10 wenye GB 128 za kumbukumbu iliyounganishwa.
  • Takriban GiB 115 za kumbukumbu huru unapoanzisha usanidi chaguomsingi.
  • Docker yenye runtime ya NVIDIA ya kontena.
  • Akaunti ya mtumiaji iliyo katika kundi la docker.
  • Takriban GB 160 za nafasi huru ya diski kwenye mfumo mpya.
  • Hiari: CLI ya Hugging Face hf kwa upakuaji wa haraka unaoweza kuendelea baada ya kukatizwa.
  • Hiari: tokeni ya Hugging Face katika ~/.cache/huggingface/token au katika kigezo cha mazingira HF_TOKEN.

Usambazaji chaguomsingi unalenga DGX Spark ambayo haitumiki kwa kazi nyingine. Kwenye mifumo yenye kumbukumbu iliyounganishwa, kuishiwa na kumbukumbu kunaweza kugandisha mashine badala ya kutoa hitilafu ya kawaida ya ugawaji.

Usakinishaji na Uzinduzi wa Kwanza

1. Nakili hazina

git clone https://github.com/MiaAI-Lab/Qwen3.8-Flash-Next-Single-DGX-Spark-TensorFold.git
cd Qwen3.8-Flash-Next-Single-DGX-Spark-TensorFold

2. Anzisha seva

./start.sh

Uzinduzi wa kwanza hufanya usanidi kamili. Huvuta picha ya kontena iliyojengwa awali inapopatikana, hupakua checkpoint ya takriban GiB 106, huithibitisha na hukusanya kernel za CUDA za GB10. Picha iliyojengwa awali ina takriban GB 11, huku checkpoint ikichukua takriban GB 114 katika akiba ya Hugging Face.

Wakati wa kuanza, hati huonyesha maendeleo ya usanidi, kumbukumbu za seva, maendeleo ya upakiaji wa uzani na makadirio ya kumbukumbu. Kisha huendesha jaribio fupi. Uzinduzi uliofanikiwa huishia kwa ujumbe unaosema kuwa Qwen3.8-Flash-Next inapatikana kwenye porti 8888.

Uzinduzi unaofuata huruka kazi za usanidi zilizokamilika na huchukua takriban dakika 2.5 kupakia uzani, kulingana na README.

3. Andaa bila kuzindua

Ikiwa ungependa kupakua na kujenga kila kitu mapema, endesha:

scripts/prepare.sh

Ili kujenga upya picha ya kontena kutoka mwanzo:

scripts/prepare.sh --rebuild

Hati ya maandalizi hukagua Docker, runtime ya NVIDIA na nafasi ya diski. Kisha hupata au kujenga picha ya TensorFold, hupakua checkpoint katika akiba ya Hugging Face na kuithibitisha modeli kwa tensorfold info.

Matumizi ya Msingi ya API

Angalia modeli inayopatikana

curl -s http://<spark-address>:8888/v1/models

Badilisha <spark-address> kwa jina la mwenyeji au anwani ya IP ya DGX Spark. Unapopiga simu kutoka kwenye Spark yenyewe, unaweza kutumia 127.0.0.1.

Tuma ombi la kukamilisha mazungumzo

curl -s http://<spark-address>:8888/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "Qwen3.8-Flash-Next",
    "messages": [
      {
        "role": "user",
        "content": "Andika fomula ya Fibonacci katika Python."
      }
    ],
    "max_tokens": 1000
  }'

Kwa chaguo-msingi modeli hufikiri kabla ya kujibu, na hoja zake hutumia mgao wa tokeni wa majibu. Weka max_tokens kuwa juu vya kutosha kuchukua hoja pamoja na jibu la mwisho. Hoja hurudishwa katika reasoning_content, huku jibu la mwisho likionekana katika content.

Unganisha mteja anayeendana na OpenAI

Sanidi mteja kwa thamani zifuatazo:

  • URL ya msingi: http://<spark-address>:8888/v1
  • Modeli: Qwen3.8-Flash-Next

API inasaidia utiririshaji, miito ya zana yenye aina, maudhui ya hoja, ingizo la picha, na ingizo la video. Vigezo vya zana kama vile safu hurudishwa kwa kutumia aina zake zinazolingana za JSON.

Kutuma Picha

Kwa chaguo-msingi, midia lazima itolewe kama URL za data. Mfano ufuatao wa shell husimba JPEG na kuuuliza modeli kuielezea:

IMG=$(base64 -w0 photo.jpg)
curl -s http://<spark-address>:8888/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "Qwen3.8-Flash-Next",
    "messages": [{
      "role": "user",
      "content": [
        {
          "type": "image_url",
          "image_url": {
            "url": "data:image/jpeg;base64,'"$IMG"'"
          }
        },
        {
          "type": "text",
          "text": "What is in this picture?"
        }
      ]
    }],
    "max_tokens": 2000
  }'

Ombi linaweza kuwa na hadi picha nne. Kila picha inaweza kuwa na ukubwa wa hadi MB 10, huku kikomo cha jumla kikiwa MB 20. Picha zote kwa pamoja zinaweza kutumia hadi tokeni 4,096. Kuweka "detail": "low" hupunguza picha hadi tokeni 256.

Kutuma Video

Video hutumia sehemu ya maudhui ya video_url:

{
  "type": "video_url",
  "video_url": {
    "url": "data:video/mp4;base64,..."
  }
}

Kila ombi linaweza kuwa na hadi video mbili. Video inaweza kuwa na ukubwa wa hadi MB 64, huku kikomo cha jumla cha ombi kikiwa MB 96 na muda wa video ukiwa hadi saa moja. Kwa chaguo-msingi, seva huchukua fremu mbili kwa sekunde, hadi fremu 256 zilizosambazwa kwenye video, na inaruhusu hadi tokeni 16,384 za video kwa ombi.

Maombi ya picha na video hayahifadhiwi kwa matumizi tena ya kiambishi awali. Maombi ya kawaida ya maandishi hayaathiriwi na kuwezesha uwezo wa kuona.

Ruhusu URL za midia za HTTPS za umma

URL za data ndizo chaguo-msingi. Ili kuruhusu seva kuchukua URL za umma za HTTPS za picha na video, iwashe upya kwa:

VISION_URLS=1 ./start.sh restart

Washa uchukuaji wa mbali pekee inapofaa kwa usalama na sera ya mtandao ya usambazaji wako.

Endesha katika hali ya maandishi pekee

Zima mnara wa kuona ili kutoa maandishi pekee:

VISION=0 ./start.sh restart

Hali ya maandishi pekee haipakii mnara wa kuona wa GiB 0.84 na hutumia vipande vya vidokezo vya safu 4,096 badala ya chaguo-msingi la safu 2,048 linalowezeshwa na kuona.

Dhibiti Seva

Tumia hati za wrapper za hazina kwa shughuli za kawaida:

./start.sh restart
./stop.sh
docker logs -f qwen38-flash-next-tf
curl -s http://<spark-address>:8888/health
  • ./start.sh restart hukagua usanidi na hoja kabla ya kuchukua nafasi ya seva inayoendesha.
  • ./stop.sh husimamisha kontena na kuachilia kumbukumbu ya GPU. Maombi yanayoendelea hukatizwa.
  • docker logs -f hufuata kumbukumbu ya seva ya TensorFold.
  • /health huripoti hali ya shughuli na jumla ya tokeni za moja kwa moja.

Ikiwa seva tayari inaendesha, ./start.sh ya kawaida huiacha bila kuigusa. Kwa kidhibiti cha michakato kama systemd, tumia hali ya mbele:

FOREGROUND=1 ./start.sh

Sanidi Muktadha, Ulinganifu, na Usahihi wa KV

Chaguo-msingi huhifadhiwa katika scripts/config.sh. Zibadilishe kwa vigezo vya mazingira au pitisha alama za TensorFold baada ya start.sh.

Punguza ulinganifu kwa nafasi zaidi

PARALLEL=4 ./start.sh restart

Mikondo minne ya int8 hutoa hifadhi ya KV ya tokeni 1,048,576 na ina makadirio ya kuanzisha yaliyoripotiwa ya takriban GiB 97.7.

Tumia dirisha fupi la muktadha

./start.sh restart --context 131072

Hoja za ziada za mstari wa amri hupitishwa kwa tensorfold serve baada ya chaguo-msingi, hivyo huwa na kipaumbele. Endesha ./start.sh --help ili kukagua chaguo zinazopatikana.

Chagua aina nyingine ya akiba ya KV

KV_DTYPE inakubali bf16, int8, au int4:

PARALLEL=6 KV_DTYPE=int4 ./start.sh restart

README inaeleza kuwa int4 hubadilisha matokeo kidogo na haitoi kipimo cha ubora. Tumia int8 unapotaka uwiano chaguo-msingi wa mradi. Tumia bf16 wakati uhifadhi wa KV wa usahihi kamili ni muhimu zaidi kuliko idadi ya mikondo.

Elewa ulinzi wa kuanzisha

TensorFold hukokotoa bajeti yake kutokana na kumbukumbu inayopatikana, ukitoa hifadhi ya mwenyeji iliyo sawa na sehemu moja ya kumi ya RAM. Ikiwa usanidi ulioombwa hautoshei, uanzishaji hukataliwa kabla ya uzani kupakiwa, na hitilafu hutaja dirisha la muktadha linalopaswa kutoshea.

Dhibiti Kufikiri na Sampuli

Thamani chaguo-msingi za sampuli za hali ya kufikiri ni halijoto 1.0, top-p 0.95, na top-k 20. Maombi yanaweza kubatilisha temperature, top_p, top_k, na seed. Halijoto ya 0 huwezesha usimbuaji wa greedy.

Zima kufikiri kwa ombi moja

{
  "model": "Qwen3.8-Flash-Next",
  "messages": [
    {"role": "user", "content": "Answer in one sentence."}
  ],
  "chat_template_kwargs": {
    "enable_thinking": false
  },
  "max_tokens": 200
}

Weka kiwango cha hoja

{
  "chat_template_kwargs": {
    "reasoning_effort": "low"
  }
}

Templeti pia inakubali "xhigh". Ikiwa kiwango cha hoja hakijatolewa, templeti hutumia chaguo-msingi chake cha kati. Sehemu ya kiwango cha juu ya mtindo wa OpenAI ya reasoning_effort hupuuzwa, kwa hiyo iweke ndani ya chat_template_kwargs.

Vidokezo vya Juu vya Utendaji

Weka majedwali ya n-gram kwenye SSD

PLE_ON_SSD=1 ya chaguo-msingi huacha GiB 29.8 za majedwali ya n-gram kwenye SSD badala ya kuyaweka kwenye kumbukumbu iliyounganishwa. Hii huhifadhi kumbukumbu kwa akiba ya KV. Kwa hiyo, hifadhi ya ndani yenye kasi ni muhimu kwa usanidi wa chaguo-msingi.

Rekebisha kwa uangalifu ukubwa wa kipande cha kidokezo

Kwa kuwezeshwa kwa maono, TENSORFOLD_PREFILL_ROWS huwa na thamani chaguo-msingi ya 2048 ili kuacha nafasi kwa mnara wa maono. Hali ya maandishi pekee huwa na thamani chaguo-msingi ya 4096. README inaripoti kuwa safu 4,096 zinaweza kuboresha uchakataji wa prompt kwa takriban 2–5% kwa prompt za takriban tokeni 3,000, lakini zinahitaji kumbukumbu ya ziada ya takriban GiB 0.94.

TENSORFOLD_PREFILL_ROWS=4096 ./start.sh restart

Ongeza thamani hii tu ikiwa kuna nafasi ya kutosha ya kumbukumbu.

Dhibiti MTP na rasimu za kunakili

Usanidi chaguo-msingi wa MTP hutoa rasimu zisizozidi sita kwa kila mzunguko na husitisha mnyororo kabla rasimu haijashuka chini ya uaminifu wa 60%. Uboreshaji wa rasimu ya kunakili huwezeshwa na TENSORFOLD_MTP_COPY=1 na huhitaji angalau mitiririko miwili sambamba. Unalenga kuboresha majibu yanayonukuu au kuhariri maandishi ya awali ya prompt.

Omba usimbuaji wa marejeo kwa mfululizo

Ili kuruka uundaji wa rasimu kwa ombi moja na kutumia njia ya marejeo ya TensorFold ya tokeni moja kwa wakati, ongeza:

{
  "draft": false
}

Hii ni muhimu unapolinganisha usimbuaji wa kubashiri na marejeo ya mfululizo.

Lazimisha au ruka maandalizi

PREPARE=1 ./start.sh restart
PREPARE=0 ./start.sh restart
PULL=0 scripts/prepare.sh
  • PREPARE=1 hulazimisha ukaguzi wa maandalizi kabla ya kuanzisha upya.
  • PREPARE=0 huruka maandalizi.
  • PULL=0 huunda image ndani ya mfumo badala ya kujaribu image iliyotengenezwa awali kutoka kwenye sajili.

Baada ya kubadilisha faili katika patches/, jenga upya image ili viraka hivyo viingizwe kwenye TensorFold.

Uthibitishaji na Ulinganishaji wa Utendaji

Hazina hii inajumuisha zana zinazowasiliana na seva inayoendesha. URL yake chaguo-msingi ya API ni http://127.0.0.1:8888.

tools/bench.py local-test
tools/needle.py
tools/toolcheck.py
tools/visioncheck.py
  • tools/bench.py hupima ukubwa kadhaa wa prompt na hufanya ukaguzi mfupi wa usimbuaji.
  • tools/needle.py huficha kaulisiri katika prompt yenye takriban tokeni 195,000 na kuthibitisha urejeshaji wake.
  • tools/toolcheck.py hukagua kuwa kigezo cha zana chenye thamani ya safu kinarudishwa kama safu ya JSON.
  • tools/visioncheck.py hutuma image iliyozalishwa yenye duara jekundu na mraba wa buluu, kisha hukagua ikiwa vyote viwili vinatambuliwa.

Ili kupima kutoka kwenye mashine nyingine, weka API_URL:

API_URL=http://<spark-address>:8888 tools/bench.py remote-test

Utendaji Unaotarajiwa

Hazina hii inaripoti matokeo yafuatayo ya usimbuaji kwenye DGX Spark moja yenye uhifadhi wa KV wa int8, majedwali ya n-gram yanayotumia SSD, na uundaji wa rasimu wa MTP:

  • Ombi moja: tokeni 62.4 kwa sekunde, zikiwa na muda wa ms 152 hadi tokeni ya kwanza.
  • Maombi mawili: jumla ya tokeni 90.5 kwa sekunde.
  • Maombi manne: jumla ya tokeni 106.7 kwa sekunde.
  • Maombi matano: jumla ya tokeni 119.3 kwa sekunde, au tokeni 27.0 kwa sekunde kwa kila ombi.

Kasi iliyoripotiwa ya prefill inaanzia takriban tokeni 2,503 kwa sekunde kwa prompt yenye tokeni 8,229 hadi tokeni 2,200 kwa sekunde kwa prompt yenye tokeni 131,110. Takwimu hizi ni vipimo vya mradi, si hakikisho, na zinaweza kutofautiana kulingana na usanidi, muundo wa prompt, ingizo la media, hifadhi na kumbukumbu inayopatikana.

Hitimisho

Hazina hii hufunga pamoja modeli, runtime ya TensorFold, usanidi mahususi wa CUDA, viraka vya utendaji na hati za uendeshaji zinazohitajika ili kutoa Qwen3.8 Flash Next kwenye DGX Spark moja. Anza na usanidi chaguo-msingi wa int8 wenye mitiririko mitano, thibitisha huduma kupitia API inayooana na OpenAI, kisha rekebisha upatanifu wa wakati mmoja, ukubwa wa muktadha, maono na usahihi wa KV kulingana na mzigo wako wa kazi na nafasi ya kumbukumbu.