
Flare ni Nini?
Flare ni seva ya ndani ya kufanya uelekezaji iliyoundwa mahususi kwa GPU za NVIDIA SM120 na SM121. Inalenga mazungumzo marefu, mawakala wa kuandika msimbo, na mzigo wa kazi unaoita zana mara kwa mara. Lengo lake kuu ni kutumia rasilimali za vituo vya kazi na mifumo midogo kwa ufanisi huku ikiweka uzalishaji wa maandishi ukiwa na mwitikio wa haraka.

Tofauti na majukwaa ya utoaji huduma yanayoweka kipaumbele kwenye uoanifu mpana, Flare hutumia mkataba maalumu unaojengwa kuzunguka miundo, maunzi, kernel na mifumo ya uwekaji iliyochaguliwa. Wigo huu finyu huruhusu utayarishaji wa modeli, usimamizi wa kumbukumbu, upangaji na utekelezaji kubuniwa kwa pamoja.
Flare inafaa zaidi pale ambapo mapishi yake ya modeli yanayoungwa mkono, uwezo uliotayarishwa na mahitaji ya maunzi ya NVIDIA yanaendana na mzigo wako wa ndani wa kazi.
Jinsi Usanifu Unavyofanya Kazi
Flare hugawanya utayarishaji wa modeli na utoaji wa huduma wakati wa utekelezaji katika vipengele viwili vikuu: Ignition na Helios.
Ignition: Utayarishaji wa Modeli Wakati wa Ujenzi
Ignition hufanya kazi katika mfumo wa kawaida wa Python wa kujifunza kwa mashine. Hutumia PyTorch, Transformers na FlashInfer/b12x kupakia modeli, kurekebisha kernel, kukusanya njia za mbele na kunasa grafu za CUDA.
Matokeo yake ni kifurushi cha utekelezaji kilichotayarishwa. Ukusanyaji na unakaji wa grafu za CUDA hukamilishwa kabla ya utoaji wa huduma kuanza, hivyo utekelezaji wa uzalishaji hauhitaji kutekeleza hatua hizo za utayarishaji.
Helios: Utoaji wa Huduma Unaotegemea Rust
Helios ni utekelezaji wa Rust unaotoa huduma ya kifurushi kilichozalishwa na Ignition. Hufanya kazi bila Python na inawajibika kwa upangaji, uhifadhi wa akiba, ushughulikiaji wa maombi na umiliki wa wazi wa rasilimali za utekelezaji.
Mapishi ya modeli
-> Utayarishaji wa Ignition
-> Urekebishaji wa kernel na ukusanyaji wa njia ya mbele
-> Unakaji wa grafu za CUDA
-> Kifurushi cha utekelezaji
-> Utoaji wa huduma wa HeliosMstari huu wa mgawanyo huunganisha uundaji wa modeli na zana zinazofahamika za Python huku ukiweka utekelezaji wa utoaji wa huduma ukiwa mdogo na maalumu.
Vipengele Muhimu
- Usaidizi maalumu wa NVIDIA: Flare imeundwa kwa GPU za NVIDIA SM120 na SM121 badala ya anuwai pana ya vichapuzi.
- Python wakati wa ujenzi: Utayarishaji wa modeli hutumia PyTorch, Transformers na FlashInfer/b12x.
- Rust wakati wa utekelezaji: Helios hutoa huduma ya vifurushi vilivyotayarishwa bila Python.
- Uboreshaji kabla ya utoaji wa huduma: Urekebishaji wa kernel, ukusanyaji wa njia ya mbele na unakaji wa grafu za CUDA hukamilika kabla ya maombi kuhudumiwa.
- Upangaji wazi wa kumbukumbu: Bafa na uwezo wa utekelezaji hupangwa mapema.
- Hali kamili ya mazungumzo: Flare huchukulia hali inayorudiwa na akiba za KV kama hali moja ya mazungumzo kwa ajili ya utumiaji upya, matawi na kuendelea kwa usahihi.
- Usaidizi wa modeli unaoongozwa na mapishi: Mapishi ya modeli hufafanua ukokotoaji wa modeli na kubinafsisha mpangilio au utekelezaji inapohitajika.
- Uelekezaji kwa mzigo wa ndani: Mfumo umekusudiwa kwa vipindi virefu, mawakala wa kuandika msimbo na matumizi ya mara kwa mara ya zana kwenye mashine za ndani.
Mahitaji ya Awali na Usanidi
Kabla ya kujaribu kutumia Flare, thibitisha kuwa mazingira yako yanaendana na wigo wake finyu uliokusudiwa.
- Thibitisha usanifu wa GPU. Flare inalenga GPU za NVIDIA SM120 na SM121. README haidai usaidizi wa usanifu mwingine wa GPU.
- Chagua mapishi ya modeli inayoungwa mkono. Flare haihakikishi uoanifu wa kila modeli. Modeli lazima ilingane na mapishi yanayopatikana na mtiririko wake wa data unaotarajiwa.
- Panga uwezo wa utekelezaji. Bainisha bafa na uwezo wa utekelezaji unaohitajika kwa mazungumzo na maombi unayotarajia.
- Andaa mazingira ya ujenzi ya Python. Ignition hutegemea PyTorch, Transformers na FlashInfer/b12x wakati wa utayarishaji wa modeli.
- Andaa kifurushi cha modeli. Tumia Ignition kupakia modeli, kurekebisha kernel, kukusanya utekelezaji wa njia ya mbele na kunasa grafu za CUDA.
- Toa huduma kwa Helios. Baada ya utayarishaji kukamilika, ipatie utekelezaji wa Rust wa utoaji wa huduma kifurushi cha utekelezaji kilichotokana.
README haitoi amri kamili za usakinishaji, matoleo ya vitegemezi au bendera za kuanzisha. Fuata mwongozo wa utayarishaji wa modeli na utoaji wa huduma wa hazina kwa utaratibu rasmi. Tumia mwongozo wa CLI kwa maelezo ya usanidi.
Mtiririko wa Msingi wa Matumizi
Mtiririko wa msingi wa Flare ni utayarishaji kwanza na utoaji wa huduma baadaye. Mfano ufuatao ni wa kimawazo, si sintaksia inayoweza kutekelezwa ya CLI, kwa sababu README haifafanui amri mahususi.
Hatua ya 1: Chagua Modeli Inayooana
Anza na modeli inayoshughulikiwa na mapishi ya Flare. Mapishi humiliki ukokotoaji wa modeli na yanaweza kutumia tena utekelezaji wa kawaida wa modeli pale mtiririko wao wa data unapoendana. Pale ambapo mipangilio au tabia tofauti ya utekelezaji inahitajika, mapishi hubinafsisha sehemu hizo.
Hatua ya 2: Amua Uwezo Unaohitajika
Kadiria mzigo wa kazi ambao kifurushi kilichotayarishwa lazima kiunge mkono. Zingatia urefu wa mazungumzo, mahitaji ya utekelezaji wa wakati mmoja, matumizi ya akiba, hali inayorudiwa na mwingiliano wa mara kwa mara na zana. Flare inatarajia bafa na uwezo muhimu kupangwa kabla ya utoaji wa huduma.
Hatua ya 3: Unda Kifurushi cha Utekelezaji
Endesha mchakato wa utayarishaji kupitia Ignition. Katika hatua hii, Flare hutumia mfumo wa Python kutekeleza kazi nzito ya usanidi.
Ingizo:
mapishi ya modeli yanayoungwa mkono
vigezo vya modeli
uwezo wa utekelezaji uliopangwa
Ignition hufanya:
upakiaji wa modeli
urekebishaji wa kernel
ukusanyaji wa njia ya mbele
unakaji wa grafu za CUDA
Toleo:
kifurushi cha utekelezaji kilichotayarishwaHatua ya 4: Anzisha Helios
Sanidi Helios ili itumie kifurushi kilichoandaliwa. Helios hushughulikia uchakataji wa maombi, upangaji, na uhifadhi wa akiba bila kuhitaji Python katika mazingira ya uwasilishaji. Rejelea nyaraka za CLI kwa chaguo halisi za usanidi na kiolesura cha kuanzisha.
Hatua ya 5: Jaribu Mzigo wa Kazi Uliokusudiwa
Jaribu Flare kwa mazungumzo marefu yenye uhalisia, vipindi vya mawakala wa uandishi wa msimbo, na mifumo ya matumizi ya zana. Amri fupi ya majaribio huenda isionyeshe tabia zilezile za usimamizi wa hali, trafiki ya kumbukumbu, au upangaji kama mzigo wa kazi ambao Flare iliundwa kushughulikia.
Kuelewa Hali ya Mazungumzo
Flare huchukulia hali ya mazungumzo kuwa zaidi ya akiba ya KV. Wakati modeli pia inatumia hali rejeaji, hali hiyo lazima ibaki imesawazishwa na akiba. Flare hudhibiti vipengele hivi kwa pamoja ili shughuli kama vile kutumia tena, kugawanya matawi, na kuendelea zihifadhi mazungumzo kamili kwa usahihi.
Muundo huu ni muhimu hasa kwa mawakala. Wakala anaweza kusitisha shughuli akisubiri matokeo ya zana, kugawa matawi anapotathmini njia mbadala, au kuendelea na kipindi cha awali. Kuhifadhi sehemu moja tu ya hali ya modeli kunaweza kusababisha tabia isiyo sahihi wakati wa kuendelea.
Vidokezo vya Kina
Jitayarishe kwa Uwezo Halisi Unaohitaji
Kwa kuwa uwezo wa utekelezaji na bafa hupangwa mapema, chaguo za maandalizi huathiri moja kwa moja kile kinachoweza kuwasilishwa. Usidhani kuwa kifurushi kimoja kinafaa kwa kila urefu wa muktadha, kiwango cha wakati mmoja, au usanidi wa modeli. Fuata kanuni za uwezo zilizo katika nyaraka za mradi.
Ondoa Ukusanyaji wa Msimbo kwenye Njia ya Uwasilishaji
Ruhusu Ignition ikamilishe urekebishaji wa kernel, ukusanyaji wa mbele, na kunasa grafu ya CUDA kabla ya kuanza uwasilishaji wa uzalishaji. Utenganishaji huu ni sehemu ya msingi ya muundo wa Flare, si uboreshaji wa hiari.
Chukulia Hali kama Kitengo Kimoja
Unapotekeleza utumiaji tena wa mazungumzo, ugawaji wa matawi, au kuendelea, hifadhi hali yote inayodhibitiwa na Flare. Epuka kubuni miunganisho inayodhani kuwa akiba ya KV daima ndiyo hali pekee endelevu ya modeli.
Tumia Mapishi kama Mpaka wa Modeli
Weka ukokotoaji mahususi wa modeli katika mapishi ya modeli, na uache upangaji, ushughulikiaji wa maombi, na uhifadhi wa akiba kwa runtime. Hii inafuata mgawanyo wa majukumu wa Flare na husaidia kuweka runtime inayoshirikiwa ikiwa imejikita katika kazi yake kuu.
Pima Kulingana na Mzigo Wako Halisi wa Kazi
Rust hutoa umiliki dhahiri wa rasilimali, lakini lugha ya utekelezaji pekee haihakikishi utendaji wa juu zaidi wa uelekezaji. Ukokotoaji wa GPU, trafiki ya kumbukumbu, upangaji, muundo wa modeli, na umbo la mzigo wa kazi bado ni muhimu.
Kwa ulinganisho mpana zaidi wa modeli, maunzi, au uenezaji, linganisha Flare na vLLM. Mifumo yote miwili inaweza kutumia grafu za CUDA, lakini hufanya maamuzi tofauti kuhusu upeo na muundo. Pima modeli, muundo wa mazungumzo, uwezo, na mashine halisi unayokusudia kutumia.
Soma Nyaraka za Muundo
Kwa maelezo ya kina zaidi kuhusu kwa nini mipaka ya runtime, mapishi ya modeli, usimamizi wa hali, na upangaji imeundwa kwa njia hii, rejelea nyaraka za msingi za muundo za hazina.
Hitimisho
Flare hutoa njia maalum ya uelekezaji wa ndani kwa modeli zilizochaguliwa kwenye GPU za NVIDIA SM120 na SM121. Ignition huandaa vifurushi vilivyoboreshwa vya runtime kwa kutumia zana zinazojulikana za Python, huku Helios ikiviwasilisha kupitia runtime fupi ya Rust. Inafaa zaidi kwa mzigo wa kazi wa ndani uliopangwa unaohusisha mazungumzo marefu, mawakala wa uandishi wa msimbo, matumizi ya zana yanayorudiwa, na usimamizi dhahiri wa kumbukumbu na hali ya mazungumzo.
