Վերադառնալ
SiTech
«Ծրագիրը դանդաղ է, բայց դրա պատճառն այլևս չկա»․ Դեն Լուի փաստարկը
SiTech AI Team3 წთ. საკითხავი

«Ծրագիրը դանդաղ է, բայց դրա պատճառն այլևս չկա»․ Դեն Լուի փաստարկը

Ինժեներ Դեն Լուն պնդում է, որ արտադրողականության վրա աշխատանքը, որը նախկինում հազվադեպ մասնագետների գործն էր, այժմ հասանելի է բոլորին, ով կարող է մի քանի նախադասություն գրել։

Տարիներ շարունակ դանդաղ ծրագրերի պատճառաբանությունը փորձաքննության տնտեսությունն էր՝ ծրագիրն արագ դարձնելու համար պետք էին հազվադեպ հմտություններով ինժեներներ, ուստի նախագծերի մեծ մասը դուրս էր գալիս առանց օպտիմիզացիայի։ Ինժեներ Դեն Լուն նոր գրառման մեջ պնդում է, որ այդ հավասարակշռությունը կոտրվել է․ կոդ գրող գործակալները օպտիմիզացիայի գինը նվազեցրին մեծությամբ մի քանի կարգով։

Փաստարկը

Գրառումը սկսվում է վիրուսային պնդմամբ, թե մոդելների արտադրած «ուռած» կոդի քննադատները կամաչեն, երբ ամեն ինչ վերաշարադրվի «գերօպտիմիզացված ասսեմբլերով»։ Լուն այդքան հեռու չի գնում․ ձեռքով ասսեմբլերի չենք անցնում, սակայն օպտիմիզացիաները, որոնք նախկինում պահանջում էին հազվադեպ հմտություններով մարդ կամ թիմ, այժմ հասանելի են յուրաքանչյուրին, ով կարող է մի քանի նախադասություն մուտքագրել։ Նրա գնահատմամբ՝ մարդկային ժամանակի ծախսը նվազել է «հաճախ 1000, 10000 կամ 1000000 անգամ», իսկ դոլարային ծախսը՝ մոտ 1000 անգամ՝ համեմատած այն Bing-ի ինժեների հետ, որը ժամանակին գրել է որոնման ինդեքսի կոմպիլյատորներն ու JIT-ները։

Կոնկրետ թվեր՝ regex և ripgrep

Հեղինակը պնդումը հիմնավորում է FRE շարժիչի փորձարկումներով․ այն ստեղծվել էր գործակալի մեկ ամիս rebar բենչմարկերի հավաքածուի վրա ցիկլով աշխատելու արդյունքում։ Գերհարմարեցումն այնքան ուժեղ էր, որ գործակալին պետք էր տեղեկացնել holdout հավաքածուի գոյության մասին, որպեսզի օպտիմիզացիաները ընդհանրացվեն։ Փորձերից մեկում ripgrep-ը ձևանմուշները հետին պլանի հոսքում կոմպիլյացնում էր բնիկ կոդի և անցնում դրան, երբ կոմպիլյացիան ավարտվում էր․ 2–4 անգամ արագացում մի քանի երկար ու պարզ հարցումներում և մոտ 7% շահույթ միջին holdout հարցումներում, որտեղ բնիկ ուղին կիրառելի է՝ կարճ հարցումների դանդաղման գնով։

Մեկ աշխատանքային բեռի համար գրված ծրագիր

Մարկ Բրուքերը այս միտումը համեմատեց FFTW-ի և դեմոսցենայի հնարքների հետ՝ կոդ, որը հարմարեցված է մեկ կոնկրետ խնդրի, ոչ թե խնդիրների դասի, և կանխատեսեց ավելի շատ «դինամիկ, պահանջին հարմարեցված» ծրագրային ապահովում։ pgrust-ի վրա աշխատող Մայքլ Մալիսը հավելում է․ այն մեմը, թե «կոդ գրելը երբեք չի եղել դժվար մասը», ճիշտ է միայն որոշ ոլորտներում․ JIT կոմպիլյատորները հազվադեպ են, որովհետև դրանց ստեղծումը շատ թանկ էր, իսկ տվյալների բազաները պատմականորեն ամենադժվար ստեղծվող ծրագրերն էին։ Լուն ինքը աշխատել է BitFunnel-ի՝ Bing-ի որոնման ինդեքսի վրա, որը SIGIR-ում ստացել է լավագույն հոդվածի մրցանակ․ Bing-ի տարբերակում մի քանի JIT կոմպիլյատոր կա՝ ծավալ, որի համար «հանգստյան օրերին կանեմ» արտահայտությունն այժմ իսկապես ճիշտ է։

Ինչը չի փոխվում

Լուն նշում է նաև սահմանները։ Օպտիմիզացիաները, որոնք փոխում են արդյունքը, պահանջում են չափման միջոց՝ հասկանալու, թե արդյոք փոփոխությունն արժե, իսկ ժամանակակից լավագույն մոդելները թույլ են փորձարարական դիզայնում, ուստի գնահատման շրջանակը դեռ պետք է կառուցի մարդը։ Մնում է նաև գերհարմարեցման վտանգը․ կոնկրետ բեռի համար կարգավորված օպտիմիզացիան կոտրվում է, երբ բեռը փոխվում է։ Իսկ գործակալը, որին ուղղակի ասվում է «օպտիմիզացրու», կանի բազմաթիվ սխալ բաներ, որոնք պետք է բռնել։ Այդուհանդերձ, Լուի եզրակացությունն այն է, որ պատշաճ արտադրողականությունն այլևս մասնագիտական հմտություն չէ, այլ հիմնավոր սպասելիք բոլորի համար, ովքեր լրջորեն օգտագործում են կոդ գրող գործակալներ։

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։