„Meta“ pilno kamieno HHVM optimizavimas genai

Kai „Meta“ išleido naujus, novatoriškus produktus, panaudojančius generatyvinę AI (genai), turime įsitikinti, kad kartu su juo vystosi pagrindiniai infrastruktūros komponentai. Taikant žinias apie infrastruktūrą ir optimizavimus, mums leido prisitaikyti prie besikeičiančių produktų reikalavimų, pakeliui pateikti geresnį produktą. Galų gale mūsų infrastruktūros sistemos turi subalansuoti mūsų poreikį išsiųsti aukštos kokybės patirtį ir valdyti sistemų tvarumą.

Skirstant genų išvadų srautą į tam skirtą „WWW“ nuomininką, kuris leidžia specializuoti vykdymo laiko ir apšilimo konfigūraciją, leido mums pasiekti abu šiuos tikslus, tuo pačiu padidindami 30% vėlavimo.

https://www.youtube.com/watch?v=qbiqvby3lqg

Kas mes esame

Kaip žiniatinklio fondo komanda, mes valdome „Meta“ monolitinę žiniatinklio pakopą, veikiančią Įsilaužimas. Komandą sudaro Kryžminiai inžinieriai, kurie įsitikina, kad žiniatinklio pakopos infrastruktūra yra sveika ir gerai suprojektuota. Mes pereiname prie reagavimo į incidentus, dirbame su kai kuriomis sudėtingiausiomis infrastruktūros sritimis ir padedame sukurti viską, ko mums reikia, kad svetainė būtų laimingai veikianti.

Norėdami tai padaryti, mes sukūrėme geriausios praktikos, kaip būti „geru piliečiu“ bendros pakopos, seriją. Turime užtikrinti, kad visi prašymai atitiktų šias gaires, kad būtų išvengta klausimų, kurie neišleistų ir paveiktų kitų komandų produktus. Viena pagrindinė taisyklė yra užklausos vykdymo laikas – nurodant užklausą iki 30 sekundžių vykdymo. Tai yra HHVM („Hiphop“ virtualioji mašina) Runtime—Moke užklausa turi atitinkamą darbuotojo giją, iš kurios yra baigtinis numeris. Norėdami įsitikinti, kad visada yra gijų, skirtų teikti gaunamas užklausas, turime subalansuoti kiekvieno pagrindinio kompiuterio turimus išteklius su numatomu pralaidumu. Jei užklausos užtruks per ilgai, bus mažiau galimybių apdoroti naujas užklausas, dėl kurių vartotojo matomas neįmanoma.

Kintantis kraštovaizdis

Klasikiniu požiūriu „Meta“ internetiniai serveriai yra optimizuoti teikiant užklausas iš anksto-tinklalapiai ir „GraphQL“ užklausos. Šios užklausų vėlavimas paprastai matuojamas šimtais milisekundžių iki sekundžių (iš esmės mažesnė nei 30 sekundžių ribos), o tai leidžia šeimininkams apdoroti maždaug 500 užklausų per sekundę.

Be to, žiniatinklio serveris praleis maždaug du trečdalius savo laiko įvesties/išvesties (I/O), o likusius trečiąjį atliekantį CPU darbą. Šis faktas turėjo įtakos hack kalbos, kuri palaiko AsyncioBendradarbiavimo rūšis, o visos pagrindinės bibliotekos palaiko šiuos primityvus, kad padidintų našumą ir sumažintų laiką, kurį CPU sėdi tuščiąja eiga, laukdami I/O.

„Genai“ produktai, ypač LLM, turi skirtingus reikalavimus. Tai lemia pagrindinis išvadų srautas: modelis reaguoja į žetonų srautą, kuris gali užtrukti sekundes ar minutes. Vartotojas gali tai vertinti kaip „Chatbot“ atsakymą. Tai nėra poveikis, kad mūsų produktai atrodytų draugiškesni; Tai greitis, kuriuo galvoja mūsų modeliai! Po to, kai vartotojas pateiks modelio užklausą, turime kuo greičiau pradėti naudoti šiuos atsakymus vartotojui. Be to, bendras užklausos vėlavimas dabar yra žymiai ilgesnis (matuojamas sekundėmis). Šios savybės turi du poveikį infrastruktūrai – prieš skambinant į LLM esmines pridėtines išlaidas kritiniame kelyje, ir ilgą likusio prašymo trukmę, kurios dauguma praleidžiama laukiant I/O. (Žr. 1 ir 2 paveikslus žemiau).

1 pav.

2 paveikslas: Bendras užklausos latentinis CDF; Tipiški prašymai ir genai.

Optimizacijų serija

Šis reikalavimų pokytis leido žiniatinklio pagrindui iš naujo išnagrinėti monolitinės žiniatinklio pakopos valdymo taisykles. Tada mes paleidome specialų žiniatinklio nuomininką (autonominį www diegimą), kuris leido pritaikyti konfigūraciją, kurią galėtume geriau suderinti su darbo krūvio poreikiais.

Prašyti skirti pertrauką

Pirma, veikimas izoliuotoje žiniatinklio pakopoje leido mums padidinti „Genai“ užklausų vykdymo laiko limitą. Tai yra paprastas pokytis, tačiau tai leido mums atskirti ilgesnį srautą, kad būtų išvengta neigiamo poveikio likusiam gamybos pakopai. Tokiu būdu galime išvengti prašymų laiko, ar išvada trunka ilgiau nei 30 sekundžių.

Sriegių-baseino dydis

Vykdymo užklausos ilgiau reiškia, kad sumažėja darbuotojų gijų prieinamumas (kuris, atminkite, 1 žemėlapio 1: 1 su apdorotomis užklausomis). Kadangi žiniatinklio serveriai turi ribotą atminties kiekį, mes galime padalyti bendrą atmintį, kurią galima įsigyti pagal užklausos atminties limitą, kad gautume didžiausią aktyvių užklausų skaičių; Tai savo ruožtu nurodo, kiek užklausų galime vykdyti vienu metu. Baigėme važiuoti maždaug 1000 gijų „Genai“ pagrindiniuose kompiuteriuose, palyginti su pora šimtų įprastų žiniatinklio serverių.

„Jit Cache“ ir „JumpStart“

„HHVM“ yra teisingas (JIT) interpretacinė kalba, o tai reiškia, kad pirmą kartą vykdoma tam tikra funkcija, mašina turi sudaryti ją į žemesnio lygio mašinos kodą vykdymui. Be to, technika, vadinama Šuolio startas Leidžia internetiniam serveriui pasėti savo JIT talpyklą su išėjimais iš anksčiau pašildyto serverio. Leisdami „Genai“ pagrindiniams kompiuteriams naudoti „Jump“ pradžios profilius iš pagrindinės žiniatinklio pakopos, mes galime labai pagreitinti vykdymą, net jei kodo sutapimas nėra identiškas.

Prašyti apšilimo

„HHVM“ taip pat palaiko „Server Startup“, kurį mes galime vykdyti, vykdymą, kurį galime vykdyti, ir tada galime atsisakyti rezultatų. Čia siekiama sušilti kodo talpyklos, esančios žiniatinklio serveryje. Konfigūracijos vertės ir paslaugų atradimo informacija paprastai yra pateikiamos įterpimo pirmą kartą, kai jos reikia, o po to talpykloje talpykloje. Gaudami ir talpindami šią informaciją apšilimo užklausose, mes neleidžiame mūsų vartotojams stebėti šių pradinių gavimo latencijų.

Šešėlinis eismas

Galiausiai „Meta“ labai naudoja realaus laiko konfigūraciją, kad galėtų valdyti funkcijų kaupimą, o tai reiškia, kad paleidimo metu sunaudojami „JumpStart“ profiliai gali neuždengti viso ateitis Kodo keliai, kuriuos serveris vyks. Norėdami išlaikyti aprėptį pastovioje būsenoje, mes taip pat pridėjome užklausų šešėlį, todėl galime užtikrinti, kad JIT talpykloje vis dar būtų taikomi vartų pakeitimai.

Nuoroda į informacijos šaltinį

Draugai: - Marketingo agentūra - Teisinės konsultacijos - Skaidrių skenavimas - Klaipedos miesto naujienos - Miesto naujienos - Saulius Narbutas - Įvaizdžio kūrimas - Veidoskaita - Teniso treniruotės - Pranešimai spaudai - Kauno naujienos - Regionų naujienos - Palangos naujienos