Սյունակ

Մենք մեր բենչմարքը վերաշարադրեցինք, որ մարդու պես հնչի

Մեր առաջին չաթ-կորպուսը մոդելին հարցնում էր build digest-ի ու goodput-ի մասին։ Ոչ մեկի օգտատերերն այդպիսի բան չեն հարցնում։ Նույն բջիջը՝ վերաչափված տասնվեց առօրյա պրոմպտով, նույն երկաթի վրա ձախողումների ուրիշ բաժին տվեց, և հին թիվը միևնույն է պահեցինք։

կարծիք 02 սեպտեմբերի, 2026 թ.

Սա կարծիք-սյունակ է, ոչ թե լաբորատորիայի արդյունք։ Թվերն այստեղ հեղինակի աշխատանքային օրագրից և մեջբերված արտաքին աղբյուրներից են (նշված են տեքստում), երբեք՝ claim-երի ռեեստրից։ Չափված, ապացույցներով արդյունքներն ապրում են /claims/.

Մեր չաթ-բենչմարքի առաջին տարբերակն ինժեներն էր գրել ինժեների համար, և դա զգացվում է ամեն տողից։ Գիտեմ, որովհետև գրողը ես էի։ Workload-ը interactive-assistant-v1-ն է՝ սառեցված օգոստոսի սկզբին, և նրա պրոմպտները հնչում են այնպես, ասես մեր լաբորատորիայում աշխատանքի ընդունվելու հարցազրույց լինի։ «Մեկ նախադասությամբ. ի՞նչ է նույնականացնում runtime-ի build digest-ը»։ «Ի՞նչ տարբերություն կա throughput-ի և goodput-ի միջև։ Պատասխանեք երկու նախադասությամբ»։ Երկար ֆորմատի տարրը պահանջում էր ներքին գրություն այն մասին, թե ինչու լաբորատորիան պիտի հրապարակի ձախողված ու անվավեր գործարկումները՝ պատասխան տալով նաև առարկությանը, թե դա ոչ պրոֆեսիոնալ տեսք ունի։ Մենք մոդելին խնդրել էինք գրել մեր սեփական խմբագրականները, հետո վայրկյանաչափով չափել էինք, թե որքան է տևում, մինչև այն սկսի։

Կորպուսի ձևը կարգին էր։ Երկու լեզու, երկարության երեք միջակայք, ամեն տարրի համար բառային սահման, որը ստուգում է ֆորմատի gate-ը, լեզվի gate, կրկնությունների gate, կլիենտային ժամանակաչափում առաջին թոքենից մինչև վերջինը։ Խնդիրը թեման էր։ Ամեն պրոմպտ ստուգում էր, թե մոդելը որքան ազատ է զգում մեր ժարգոնի մեջ, իսկ ժարգոնը երկար, փորձագիտական պատասխաններ է քաշում։ Հարցրեք մոդելին, թե ընթերցողին ինչ է դեռ պետք, նախքան throughput-ի թվին վստահելը, և այն էսսե կգրի։ Ոչ մեկի օգտատերերը լոկալ չաթբոտին չեն հարցնում, թե ինչ է նույնականացնում build digest-ը։ Նրանք խնդրում են, որ հարևանին ծաղիկների մասին հաղորդագրություն գրի։

Այնպես որ նույն երեկո գրեցինք interactive-assistant-v2-ը։ Նույն ձևը, նույն gate-երը, նույն բառային սահմանները, և ոչ մի պրոմպտ մեր արհեստի մասին։ Երկու նախադասությամբ հաղորդագրություն հարևանին՝ այս հանգստյան օրերին ծաղիկները ջրելու խնդրանքով։ Շաբաթ օրվա հերթափոխից քաղաքավարի հրաժարում։ Ինչու է երկինքը կապույտ՝ տասը տարեկանի համար։ Նամակ տանտիրոջը խոհանոցի կաթող ծորակի մասին։ Ռուսերենով՝ խնդրանք հարևանին առաքիչից ծանրոցն ընդունել, ինչու է ձմեռը ցուրտ, նամակ շենքի կառավարչությանը աստիճանավանդակի լույսի մասին, որն արդեն երկրորդ շաբաթն է, ինչ չի վառվում։ Ոչինչ, որ մարդն ամաչեր մուտքագրել։

Հետո նույն բջիջը նորից քշեցինք։ Երկու գործարկման մանիֆեստների diff-ը տալիս է գործարկման id-ն, workload-ի id-ն, կորպուսի հեշը և ժամանակային դրոշմները։ Ուրիշ ոչինչ չէր շարժվել։

Ձախողումը, որին այդ բջիջի վրա ամենից ուշադիր ենք հետևում, անպատասխան հարցումն է. reasoning-անցումն ուտում է ավարտման ամբողջ պատուհանը, պատասխանն այդպես էլ չի սկսվում, և սերվերը վերադարձնում է HTTP 200՝ ներսը դատարկ։ Ինժեների կորպուսի վրա, մեր երկու բյուջեից ավելի նեղի դեպքում, չորս հարցումից երեքը դատարկ վերադարձավ։ Մարդկային կորպուսի վրա՝ տասից գրեթե վեցը։ Ես սպասում էի, որ ավելի բարեկամական պրոմպտները թիվը կվատացնեն։ Ստացվեց հակառակը։ Հին կորպուսը ոչ մեկին չէր շոյում և ձախողումը գերագնահատում էր։ Հարցումների հում գրառումներում մոդելը կենցաղային հարցերի մասին փոքր-ինչ պակաս է մտորում, քան մեր արհեստի մասին, և երբ պատուհանը բավական լայն է, որ ավարտի, նրա պատասխանները ստացվում են կեսից էլ կարճ։ Հենց ավելի կարճ մտորումն է, որ ավելի շատ պատասխանների թույլ է տալիս սկսվել, նախքան նեղ պատուհանը փակվի; ավելի կարճ պատասխանը քաղաքավարություն է ընթերցողի հանդեպ, ոչ թե պատճառը, որ հարցումն ողջ է մնում։ Մարդկային կորպուսի claim-էջերն իրենց մեջ ներառում են նաև ավելի ուշ գործարկումներ մեր երկրորդ՝ առևտրային առումով նույնական յունիթի վրա, ինչի պատճառով դրանք հին էջերից տարբեր ապացույցի մակարդակ են կրում։ Սկզբնական տուփի վրա առանձին վերցրած՝ փոփոխությունն ունի նույն ուղղությունը և մոտավորապես նույն չափը։

Սպասարկող կողմի համար միևնույն էր, թե պրոմպտն ինչի մասին է։ Անջատած reasoning-ով պատասխանի առաջին թոքենը հասնում էր վայրկյանի մոտ մեկ հինգերորդում՝ թե՛ ինժեների կորպուսի վրա, թե՛ մարդկայինի, այնքան մոտ, որ տարբերության վրա ես գրազ չէի գա։ Միացրած reasoning-ով և ավելի ընդարձակ բյուջեով սպասումը երկու դեպքում էլ քսանից մի քիչ ավելի վայրկյան էր՝ առօրյա պրոմպտների վրա մի փոքր կարճ, քան մերինների վրա։ Երկաթն ու runtime-ը նույն թիվը տվեցին։ Ձախողման բաժինը՝ ոչ, և այդ երկու փաստերի միջև կանգնած միակ բանը տեքստային ֆայլ է։

Այդ տեքստային ֆայլը թվի ինքնության մասն է՝ ճիշտ այնպես, ինչպես firmware-ի տարբերակը կամ զուգահեռ սլոտների դեֆոլտը; ավելի վաղ էսսեն այդ փաստարկն արդեն բերել է մնացած բոլոր դաշտերի համար։ Մեջբերեք այս մոդելի answerless-հարցումների բաժինն առանց ասելու, թե նրան ինչ էին հարցրել, և դուք կես թիվ եք մեջբերել։

Ակնհայտ կարճ ճանապարհը հանրային բենչմարք-հավաքածուն է։ Մենք դրանով չգնացինք։ Workload-ը չափում է ժամանակներ ու gate-եր, ոչ թե գիտելիք, և մենք հենց նոր էինք տեսել, որ պրոմպտի ձևակերպումը շարժում է մոդելի մտորման տևողությունը։ Պրոմպտը, որին մոդելը հանդիպել է ուսուցման ժամանակ, նույնպես շարժում է դա՝ ուղղությամբ, որը ոչ ոք չի տեսնում; գործարկման նախորդ երեկոյան գրված հավաքածուն ուսուցման տվյալների մեջ լինել չէր կարող։ Սա դատողություն է, ոչ թե չափում, և հանրային հավաքածու՝ բառային սահմաններով, որոնք մեր gate-երը կարողանային ստուգել, արժեր քշել մերի կողքին։

Հին թիվը մենք չուղղեցինք։ Երկու կորպուսն էլ սառեցված պահվում են կատալոգում՝ իրենց հեշերով, և harness-ի հանրային ռեպոզիտորիայում։ Claim-երի երկու ընտանիքն ապրում են ռեեստրում կողք կողքի՝ յուրաքանչյուր workload-ին մեկական, նույն համակարգի, runtime-ի, մոդելի և բջիջների վրա։ Կատալոգի վալիդատորը թույլ չի տալիս, որ մեկ claim մեջբերի երկու workload-ի կամ երկու ռևիզիայի գործարկումներ, այնպես որ v1-ի ու v2-ի բաժինները երբեք չեն կարող միջինվել ավելի բարեհաճ թվի մեջ։ Հին claim-էջերը կանգնած են իրենց սեփական գործարկումներով ու սահմանափակումներով, իսկ answerless-ի հաշվետվությունը մեջբերում է երկուսն էլ՝ նախ մարդկային թիվը։

Բենչմարքի վերաշարադրումը տարբերակի բարձրացում է diff-ով, ոչ թե լուռ խմբագրում։ Գայթակղությունն այն է, որ վատ գրված կորպուսը վրայից գրես ու թողնես, որ ավելի լավ թիվն ավելի վատը թաղի ինչ-որ մեկի հին screenshot-ում։ Երկուսը պահելը նշանակում է, որ ցանկացած մարդ կարող է երկու claim-էջը դնել կողք կողքի, ստուգել, որ runtime-ի մատնահետքը համընկնում է, և ինքը որոշել, թե տասնվեց պրոմպտն ինչ արժե։ Դա նաև միակ պատճառն է նոր թվին հինից ավելի վստահելու. diff-ը, որն այն ծնեց, հանրային է՝ ինչպես harness-ինը։

Չափված այն պրոմպտների վրա, որոնք մարդն իսկապես կմուտքագրեր, ձախողումն ավելի փոքր է, քան մենք հաղորդում էինք։ Ավելի նեղ բյուջեի դեպքում հարևանը ծաղիկների մասին հաղորդագրությունն ամեն անգամ ստանում է, իսկ տասը տարեկանը, որ հարցնում է, թե ինչու է երկինքը կապույտ, դեռ ավելի հաճախ HTTP 200 ու դատարկ հաղորդագրություն է ստանում, քան պատասխան։

← Բոլոր սյունակները