Եթե երբևէ տեսել եք, թե ինչպես է ցուցադրական մոդելը ջախջախում մի փոքրիկ փորձարկման բեռ, ապա սառեցնում իրական օգտատերերի հայտնվելու պահին, ապա հանդիպել եք չարագործին՝ մասշտաբավորմանը: Արհեստական բանականությունը ագահ է՝ տվյալների, հաշվարկների, հիշողության, թողունակության և, տարօրինակ կերպով, ուշադրության համար: Այսպիսով, ի՞նչ է իրականում արհեստական բանականության մասշտաբայնությունը, և ինչպե՞ս ստանալ այն՝ առանց ամեն շաբաթ ամեն ինչ վերաշարադրելու:
Հոդվածներ, որոնք կարող են ձեզ դուր գալ կարդալ սրանից հետո.
🔗 Ինչ է արհեստական բանականության կողմնակալությունը, բացատրված պարզ ձևով
Իմացեք, թե ինչպես են թաքնված կողմնակալությունները ձևավորում արհեստական բանականության որոշումները և մոդելավորման արդյունքները։
🔗 Սկսնակների ուղեցույց. Ի՞նչ է արհեստական բանականությունը
Արհեստական բանականության, հիմնական հասկացությունների, տեսակների և առօրյա կիրառությունների ակնարկ։
🔗 Ի՞նչ է բացատրելի արհեստական բանականությունը և ինչո՞ւ է այն կարևոր
Բացահայտեք, թե ինչպես է բացատրելի արհեստական բանականությունը մեծացնում թափանցիկությունը, վստահությունը և կարգավորող մարմինների համապատասխանությունը։
🔗 Ի՞նչ է կանխատեսող արհեստական բանականությունը և ինչպե՞ս է այն գործում
Հասկացեք կանխատեսող արհեստական բանականությունը, օգտագործման տարածված դեպքերը, առավելություններն ու սահմանափակումները։
Ի՞նչ է արհեստական բանականության մասշտաբայնությունը։ 📈
Արհեստական բանականության մասշտաբայնությունը արհեստական բանականության համակարգի կարողությունն է մշակել ավելի շատ տվյալներ, հարցումներ, օգտատերեր և օգտագործման դեպքեր՝ միաժամանակ պահպանելով արտադրողականությունը, հուսալիությունը և ծախսերը ընդունելի սահմաններում: Ոչ միայն ավելի մեծ սերվերներ՝ ավելի խելացի ճարտարապետություններ, որոնք պահպանում են ցածր լատենտություն, բարձր թողունակություն և կայուն որակ՝ կորի բարձրացմանը զուգընթաց: Մտածեք առաձգական ենթակառուցվածքների, օպտիմիզացված մոդելների և դիտարկելիության մասին, որն իրականում ձեզ կասի, թե ինչն է ակտիվ:
Ի՞նչն է լավը դարձնում արհեստական բանականության մասշտաբայնությունը ✅
Երբ արհեստական բանականության մասշտաբայնությունը լավ է իրականացվում, դուք ստանում եք՝
-
Կանխատեսելի լատենտություն սուր կամ կայուն ծանրաբեռնվածության դեպքում 🙂
-
Արտադրողականություն, որը մոտավորապես աճում է ավելացված սարքավորումների կամ կրկնօրինակների համամասնորեն
-
Ծախսարդյունավետություն , որը չի աճում ըստ պահանջի
-
Որակի կայունություն ՝ մուտքերի դիվերսիֆիկացման և ծավալների աճի հետ մեկտեղ
-
Գործառնական հանգստություն՝ ավտոմատ մասշտաբավորման, հետևման և խելամիտ SLO-ների շնորհիվ
Ներքևում սա սովորաբար համատեղում է հորիզոնական մասշտաբավորումը, խմբաքանակավորումը, քեշավորումը, քվանտացումը, հուսալի սպասարկումը և սխալների բյուջեների հետ կապված մտածված թողարկման քաղաքականությունը [5]:
Արհեստական բանականության մասշտաբայնությունն ընդդեմ կատարողականության ընդդեմ հզորության 🧠
-
Արդյունավետությունը ցույց է տալիս, թե որքան արագ է մեկ հարցումն ավարտվում մեկուսացված վիճակում։
-
Տարողունակությունը այն է, թե այդ հարցումներից քանիսը կարող եք միաժամանակ մշակել։
-
Արհեստական ինտելեկտի մասշտաբայնությունը նշանակում է, թե ռեսուրսների ավելացումը կամ ավելի խելացի տեխնիկայի կիրառումը մեծացնում է հզորությունը և պահպանում կայուն կատարողականություն՝ առանց ձեր հաշիվը կամ փեյջերը փչացնելու։
Փոքրիկ տարբերություն, հսկայական հետևանքներ։
Ինչու է մասշտաբավորումն ընդհանրապես աշխատում արհեստական բանականության մեջ. մասշտաբավորման օրենքների գաղափարը 📚
Ժամանակակից մեքենայական ուսուցման մեջ լայնորեն օգտագործվող տեսակետն այն է, որ կորուստը մեծանում է կանխատեսելի ձևերով՝ մոդելի չափի, տվյալների և հաշվարկների զուգընթաց՝ ողջամտության սահմաններում: Կա նաև հաշվարկային օպտիմալ հավասարակշռություն մոդելի չափի և մարզման տոկենների միջև. երկուսի միասին մասշտաբավորումը գերազանցում է միայն մեկի մասշտաբավորմանը: Գործնականում այս գաղափարները հիմք են հանդիսանում մարզման բյուջեների, տվյալների բազմության պլանավորման և սպասարկման փոխզիջումների համար [4]:
Արագ թարգմանություն՝ ավելի մեծը կարող է ավելի լավ լինել, բայց միայն այն դեպքում, երբ դուք մասշտաբավորում եք մուտքային տվյալները և հաշվարկում համամասնորեն, հակառակ դեպքում դա նման է տրակտորի անվադողեր հեծանիվի վրա դնելուն։ Այն ինտենսիվ տեսք ունի, ոչ մի տեղ չի տանում։
Հորիզոնական vs ուղղահայաց. երկու մասշտաբի լծակները 🔩
-
Ուղղահայաց մասշտաբավորում . ավելի մեծ բլոկներ, ավելի հզոր գրաֆիկական պրոցեսորներ, ավելի շատ հիշողություն: Պարզ է, երբեմն թանկ: Հարմար է մեկ հանգույցով մարզման, ցածր լատենտության դեպքում կամ երբ ձեր մոդելը հրաժարվում է լավ բաժանվել:
-
Հորիզոնական մասշտաբավորում . ավելի շատ կրկնօրինակներ: Առավել լավ է աշխատում ավտոմասշտաբավորիչների , որոնք ավելացնում կամ հեռացնում են պոդեր՝ հիմնվելով CPU/GPU-ի կամ հատուկ հավելվածի չափանիշների վրա: Kubernetes-ում HorizontalPodAutoscaler-ը մասշտաբավորում է պոդերը՝ ի պատասխան պահանջարկի՝ ձեր հիմնական ամբոխի կառավարման համար՝ երթևեկության կտրուկ աճի դեպքում [1]:
Անեկդոտ (համակցված). բարձրակարգ մեկնարկի ժամանակ պարզապես միացնել սերվերի կողմից փաթեթավորումը և թույլ տալ ավտոսկալյատորին արձագանքել հերթի խորության կայունացված p95-ին՝ առանց որևէ հաճախորդի փոփոխության: Անսպասելի հաղթանակները դեռ հաղթանակներ են:
Արհեստական բանականության մասշտաբայնության ամբողջական փաթեթը 🥞
-
Տվյալների շերտ . արագ օբյեկտների պահեստավորում, վեկտորային ինդեքսներ և հոսքային ընդունում, որը չի ծանրաբեռնի ձեր մարզիչներին։
-
Ուսուցման շերտ ՝ բաշխված շրջանակներ և ժամանակացույցեր, որոնք մշակում են տվյալների/մոդելի զուգահեռություն, ստուգման կետեր, վերստին փորձեր։
-
Սպասարկման շերտ ՝ օպտիմալացված աշխատանքային ժամանակներ, դինամիկ խմբաքանակավորում , էջավորված ուշադրություն , քեշավորում, տոկենների հոսքային հեռարձակում: Triton-ը և vLLM-ը հաճախակի հերոսներ են այստեղ [2][3]:
-
Օրկեստրացիա . Kubernetes՝ առաձգականության համար HPA-ի կամ հատուկ ավտոսանդղակների միջոցով [1]:
-
Դիտարկելիություն . հետքեր, չափանիշներ և գրանցամատյաններ, որոնք հետևում են օգտատիրոջ ճանապարհորդություններին և մոդելավորում են վարքագիծը արտադրանքի մեջ. նախագծեք դրանք ձեր SLO-ների հիման վրա [5]:
-
Կառավարում և ծախսեր . յուրաքանչյուր հարցման տնտեսագիտություն, բյուջեներ և անջատիչներ ավելորդ աշխատանքային բեռների համար։
Համեմատական աղյուսակ. գործիքներ և օրինաչափություններ արհեստական բանականության մասշտաբայնության համար 🧰
Միտումնավոր մի փոքր անհավասար, որովհետև իրական կյանքն էլ այդպիսին է։
| Գործիք / Նախշ | Լսարան | Գինու չափ | Ինչու է այն աշխատում | Նշումներ |
|---|---|---|---|---|
| Կուբեռնետես + HPA | Հարթակի թիմեր | Բաց կոդ + ենթակառուցվածք | Հորիզոնականորեն մասշտաբավորում է պոդերը՝ ցուցանիշների կտրուկ աճին զուգընթաց | Հատուկ չափանիշները ոսկե են [1] |
| NVIDIA Triton | Եզրակացություն SRE | Անվճար սերվեր; GPU $ | Դինամիկ խմբաքանակավորումը մեծացնում է թողունակությունը | config.pbtxt-ի միջոցով [2] |
| vLLM (PagedAttention) | Իրավագիտության բակալավրիատի թիմեր | Բաց կոդով | Բարձր թողունակություն՝ արդյունավետ KV-cache paging-ի միջոցով | Հիանալի է երկար հուշումների համար [3] |
| ONNX Runtime / TensorRT | Perf nerds | Անվճար / վաճառողի գործիքներ | Միջուկի մակարդակի օպտիմալացումները նվազեցնում են լատենտությունը | Արտահանման ուղիները կարող են բարդ լինել |
| RAG նախշ | Հավելվածների թիմեր | Ինֆրակարմիր + ինդեքս | Գիտելիքը տեղափոխում է վերականգնման փուլ, մասշտաբավորում է ինդեքսը | Հիանալի է թարմության համար |
Խորը ակնարկ 1. Մատուցման հնարքներ, որոնք շարժում են ասեղը 🚀
-
Դինամիկ խմբաքանակավորումը փոքր ինֆերենցիալ կանչերը խմբավորում է սերվերի վրա ավելի մեծ խմբաքանակների մեջ, զգալիորեն մեծացնելով գրաֆիկական պրոցեսորի օգտագործումը առանց հաճախորդի կողմից փոփոխությունների [2]:
-
Էջավորված ուշադրությունը հիշողության մեջ շատ ավելի շատ զրույցներ է պահում՝ էջավորելով KV քեշերը, ինչը բարելավում է թողունակությունը միաժամանակյա օգտագործման դեպքում [3]:
-
Նույնական հարցումների կամ ներդրված ֆայլերի համար խնդրում ենք համախմբել և քեշավորել՝
-
Սպեկուլյատիվ վերծանումը և տոկենների հոսքը նվազեցնում են ընկալվող լատենտությունը, նույնիսկ եթե պատի ժամացույցը հազիվ է շարժվում։
Խորը ուսումնասիրություն 2. Մոդելի մակարդակի արդյունավետություն - քվանտացում, թորում, կտրատում 🧪
-
Քվանտացումը նվազեցնում է պարամետրերի ճշգրտությունը (օրինակ՝ 8-բիթ/4-բիթ)՝ հիշողությունը կրճատելու և եզրակացությունն արագացնելու համար։ Փոփոխություններից հետո միշտ վերագնահատեք առաջադրանքի որակը։
-
Թորումը գիտելիքները փոխանցում է մեծ ուսուցչից փոքր ուսանողի, ում ձեր սարքավորումն իրականում դուր է գալիս։
-
Կառուցվածքային կտրումը կտրում է ամենաքիչ նպաստող կշիռները/գլուխները:
Անկեղծ ասած, դա մի փոքր նման է ճամպրուկի չափսը փոքրացնելուն, ապա պնդելուն, որ բոլոր կոշիկները դեռ տեղավորվում են։ Ինչ-որ կերպ, հիմնականում այդպես էլ լինում է։
Խորը ուսումնասիրություն 3. Տվյալների և մարզումների մասշտաբավորում առանց արցունքների 🧵
-
Օգտագործեք բաշխված ուսուցում, որը թաքցնում է զուգահեռականության աննշան մասերը, որպեսզի կարողանաք ավելի արագ իրականացնել փորձերը։
-
Հիշե՛ք մասշտաբավորման այդ օրենքները . բյուջեն մտածված կերպով բաշխեք մոդելի չափի և տոկենների միջև. երկուսի մասշտաբավորումը միասին հաշվողականորեն արդյունավետ է [4]:
-
Ուսումնական ծրագրի և տվյալների որակը հաճախ ավելի շատ են ազդում արդյունքների վրա, քան մարդիկ խոստովանում են։ Ավելի լավ տվյալները երբեմն գերազանցում են ավելի շատ տվյալներին, նույնիսկ եթե դուք արդեն պատվիրել եք ավելի մեծ կլաստեր։
Խորը ուսումնասիրություն 4. RAG-ը որպես գիտելիքների մասշտաբավորման ռազմավարություն 🧭
Մոդելը փոփոխվող փաստերին համընթաց վերափոխելու փոխարեն, RAG-ը եզրակացության ժամանակ ավելացնում է վերականգնման քայլ։ Դուք կարող եք մոդելը կայուն պահել և մասշտաբավորել ինդեքսը և վերականգնման տարրերը ձեր կորպուսի աճին զուգընթաց։ Այն էլեգանտ է և հաճախ ավելի էժան, քան գիտելիքներով հարուստ հավելվածների համար նախատեսված լիարժեք վերաորակավորումը։
Դիտարկելիություն, որն արդարացնում է իրեն 🕵️♀️
Դուք չեք կարող մասշտաբավորել այն, ինչը չեք կարող տեսնել։ Երկու կարևոր բան.
-
Տարողունակության պլանավորման և ավտոմատ մասշտաբավորման չափանիշներ
-
Հետքեր , որոնք հետևում են մեկ հարցմանը դարպասի → որոնման → մոդելի → հետմշակման միջոցով: Կապեք չափված տվյալները ձեր SLO-ների հետ, որպեսզի վահանակները պատասխանեն հարցերին մեկ րոպեից պակաս ժամանակում [5]:
Երբ վահանակները պատասխանում են հարցերին մեկ րոպեից էլ քիչ ժամանակում, մարդիկ օգտագործում են դրանք։ Երբ նրանք չեն պատասխանում, ապա ձևացնում են, թե պատասխանում են։
Հուսալիության պաշտպանիչ ցանկապատեր՝ SLO-ներ, սխալների բյուջեներ, ողջամիտ ներդրում 🧯
-
Սահմանեք SLO-ներ լատենտության, մատչելիության և արդյունքի որակի համար և օգտագործեք սխալի բյուջեներ ՝ հուսալիությունը թողարկման արագության հետ հավասարակշռելու համար [5]:
-
Տեղակայվեք երթևեկության բաժանարար գծերի հետևում, արեք դեղձանիկներ և անցկացրեք ստվերային թեստեր գլոբալ անցումներից առաջ: Ձեր ապագա «ես»-ը կուղարկի խորտիկներ:
Ծախսերի վերահսկողություն առանց դրամայի 💸
Մասշտաբավորումը միայն տեխնիկական չէ, այն նաև ֆինանսական է: GPU ժամերը և տոկենները համարեք առաջնակարգ ռեսուրսներ՝ միավորային տնտեսագիտությամբ (արժեքը 1000 տոկենի համար, յուրաքանչյուր ներդրման համար, յուրաքանչյուր վեկտորային հարցման համար): Ավելացրեք բյուջեներ և ծանուցումներ, տոնեք իրերի ջնջումը:
Պարզ ճանապարհային քարտեզ արհեստական բանականության մասշտաբայնության համար 🗺️
-
Սկսեք p95-ի լատենտության, մատչելիության և առաջադրանքի ճշգրտության SLO-ներից. փոխանցեք չափանիշները/հետքերը առաջին օրը [5]:
-
Ընտրեք այնպիսի մատուցման կույտ , որը աջակցում է խմբաքանակային և անընդհատ խմբաքանակային մշակմանը՝ Triton, vLLM կամ համարժեքներ [2][3]:
-
Օպտիմալացրեք մոդելը . քվանտացրեք այնտեղ, որտեղ դա անհրաժեշտ է, միացրեք ավելի արագ միջուկներ կամ թորեք որոշակի առաջադրանքների համար, ստուգեք որակը իրական գնահատականներով։
-
Ճկունության ճարտարապետ . Kubernetes HPA՝ ճիշտ ազդանշաններով, առանձին ընթերցման/գրելու ուղիներով և վիճակազուրկ եզրակացության կրկնօրինակներով [1]:
-
Օգտագործեք վերականգնումը, երբ թարմությունը կարևոր է, որպեսզի դուք մասշտաբավորեք ձեր ինդեքսը, այլ ոչ թե ամեն շաբաթ վերապատրաստեք այն։
-
Փակեք ծախսերի հետ կապված ցիկլը . սահմանեք միավորի տնտեսագիտություն և շաբաթական վերանայումներ։
Հաճախակի խափանումների եղանակներ և արագ լուծումներ 🧨
-
GPU-ն 30% օտագործված է, մինչդեռ լատենտությունը վատ է
-
Միացրեք դինամիկ խմբաքանակավորումը , զգուշորեն բարձրացրեք խմբաքանակների սահմանաչափերը և վերստուգեք սերվերի միաժամանակյա օգտագործումը [2]:
-
-
Թողունակությունը փլուզվում է երկար հուշումներով
-
էջավորված ուշադրությունը սատարող ծառայություն և կարգավորեք առավելագույն միաժամանակյա հաջորդականությունները [3]:
-
-
Ավտոմասկալերային փեղկեր
-
Հարթեցրեք չափանիշները պատուհանների միջոցով. մասշտաբավորեք հերթի խորությունը կամ անհատականացրեք տոկենները վայրկյանում մաքուր CPU-ի փոխարեն [1]:
-
-
Գործարկումից հետո ծախսերը կտրուկ աճում են
-
Ավելացրեք հարցման մակարդակի արժեքի չափանիշներ, միացրեք քվանտացումը անվտանգ վայրերում, քեշավորեք ամենատարածված հարցումները և սահմանափակեք ամենավատ խախտողներին։
-
Արհեստական բանականության մասշտաբայնության ուղեցույց. արագ ստուգաթերթիկ ✅
-
SLO-ները և սխալների բյուջեները գոյություն ունեն և տեսանելի են
-
Չափանիշներ՝ լատենտություն, tps, GPU հիշողություն, խմբաքանակի չափ, տոկեն/ներ, քեշի հարված
-
Հետքեր մուտքից մինչև մոդել և հետմշակում
-
Մատուցում՝ խմբաքանակի ավելացում, զուգահեռ կարգավորվածություն, տաք քեշեր
-
Մոդել՝ քվանտացված կամ թորած, որտեղ դա օգնում է
-
Ենթակառուցվածք՝ HPA, որը կարգավորված է ճիշտ ազդանշաններով
-
Գիտելիքների թարմացման վերականգնման ուղի
-
Միավորների տնտեսագիտությունը հաճախակի վերանայվում է
Շատ երկար ժամանակ չէի կարդացել և վերջնական դիտողություններ 🧩
Արհեստական բանականության մասշտաբայնությունը մեկ գործառույթ կամ գաղտնի անջատիչ չէ։ Այն ձևանմուշների լեզու է՝ հորիզոնական մասշտաբավորում ավտոմատ մասշտաբավորիչներով, սերվերի կողմից խմբաքանակավորում օգտագործման համար, մոդելի մակարդակի արդյունավետություն, գիտելիքների վերբեռնման համար վերականգնում և դիտարկելիություն, որը տեղադրումները դարձնում է ձանձրալի։ Ավելացրեք SLO-ներ և ծախսերի հիգիենա՝ բոլորին համակարգված պահելու համար։ Առաջին անգամից ամեն ինչ կատարյալ չեք դառնա. ոչ ոք չի կարողանում, բայց ճիշտ հետադարձ կապի օղակների միջոցով ձեր համակարգը կզարգանա առանց այդ սառը քրտինքի զգացողության ժամը 2-ին 😅
Հղումներ
[1] Kubernetes Docs - Հորիզոնական Pod-ի ավտոմատ մասշտաբավորում - կարդալ ավելին
[2] NVIDIA Triton - Դինամիկ փաթեթավորում - կարդալ ավելին
[3] vLLM փաստաթղթեր - Էջավորված ուշադրություն - կարդալ ավելին
[4] Հոֆման և այլք (2022) - Հաշվարկային օպտիմալ մեծ լեզվական մոդելների ուսուցում - կարդալ ավելին
[5] Google SRE աշխատանքային տետր - SLO-ների ներդրում - կարդալ ավելին