
Յոթ ESP32-S3 տախտակ մեկ կլաստերում աշխատեցնում է 1,58 բիթանոց լեզվական մոդել
GitHub-ում հրապարակված նախագիծը քվանտացված Qwen2-0.5B մոդելը բաժանել է 24 շերտի՝ վեց ESP32-S3 հաշվարկային հանգույցների և մեկ գլխավոր հանգույցի միջև, որոնք միացված են SPI-ով։ Եռակի կշիռները յուրաքանչյուր հանգույցի որոնվածը պահում են 16 ՄԲ ֆլեշի սահմանում։
GitHub-ում հրապարակված ESP32s3-LLM-Cluster նախագիծը ցույց է տալիս, թե ինչպես յոթ ESP32-S3 տախտակ միասին սպասարկում են մեկ փոքր լեզվական մոդել։ Վեց տախտակ հաշվարկային հանգույց են, յոթերորդը՝ գլխավոր, որի վրա աշխատում են BPE թոքենայզերը, ներկայացումների որոնումը, վերջնական նորմալիզացիան և LM Head-ը։ Հիմքում Qwen2-0.5B-ն է, որը կրճատվել և քվանտացվել է միկրոկարգավարների համար։
Յուրաքանչյուր հաշվարկային հանգույց ստանում է մոդելի 24 տրանսֆորմեր բլոկներից 4-ը։ Տախտակները միմյանց հետ ուղղակիորեն չեն խոսում. դրանք շղթայով են միացված, ուստի թաքնված վիճակը դուրս է գալիս գլխավոր հանգույցից, հերթով անցնում բոլոր հանգույցներով և վերադառնում վերջին շերտի համար։
1,58 բիթ մեկ կշռի համար
Բոլոր գծային շերտերն օգտագործում են BitNet-ի ոճի եռակի քվանտացում. կշիռը կարող է լինել միայն -1, 0 կամ 1։ Երեք արժեք տեղավորվում է երկու բիթում, ուստի մեկ բայթում չորս կշիռ է փաթեթավորվում, և հենց դա է թույլ տալիս մոդելը տեղավորել այդքան փոքր չիպերի վրա։ Ներկայացումների աղյուսակը պահվում է առանձին՝ INT4 ձևաչափով։
README-ի տվյալներով՝ մեկ շերտը զբաղեցնում է մոտ 3,82 ՄԲ, իսկ հանգույցի չորս շերտը՝ մոտ 15,3 ՄԲ, ինչը տեղավորվում է 16 ՄԲ ֆլեշի բաժնում։ Գլխավոր հանգույցին անհրաժեշտ է մոտ 14 ՄԲ՝ INT4 ներկայացումների, և 64 ԿԲ՝ վերջնական նորմայի համար։ Կոնտեքստի պատուհանը 512 թոքեն է, իսկ KV քեշը պահվում է հանգույցների PSRAM-ում։
SPI շղթան
Յուրաքանչյուր տախտակ ունի երկու SPI ալիք՝ մեկը ուղարկում է (CS 4, MOSI 5, CLK 7), մյուսը ստանում (CS 15, MOSI 16, CLK 18)։ Առաջին հանգույցի ուղարկող ալիքը միանում է երկրորդի ստացող ալիքին, իսկ վերջին հանգույցը արդյունքը վերադարձնում է գլխավորին։ Առանձին գծեր սպասարկում են վերագործարկումը և պատրաստության ազդանշանը. գլխավորի GPIO 1-ը զրոյացնում է հանգույցները, իսկ GPIO 3-ը շղթայի վերջից հետ է բերում ազդանշանը, որ բոլոր տախտակները միացել են։ GPIO 8-ին միացված LED-ը վառվում է աշխատանքի ընթացքում։
Էներգիան և սահմանափակումները
Հեղինակի չափումներով՝ պարապ վիճակում կլաստերը սպառում է 5 վոլտ և 0,23 ամպեր, այսինքն՝ մոտ 1,17 վատ, իսկ ինֆերենսի ընթացքում՝ մոտ 1,53 վատ։ Յուրաքանչյուր հանգույց իր մասը հաշվարկում է մոտ 1,3 վայրկյանում, ուստի տախտակների ավելացման հետ ուշացումը գծայնորեն աճում է. մեկ ESP32-S3-ին բաժին է ընկնում 4 շերտ։
Նախագիծը բացահայտ նշում է իր թույլ կողմերը։ Քվանտացման գիտակցմամբ ուսուցումը կատարվել է միայն մասամբ, loss-ը կանգ է առնում մոտ 8,0-ի վրա, և մոդելը հաճախ պատահական թոքեններ է արտածում կամ ագահ նմուշառման ժամանակ կրկնում է նույն բառը։ README-ը նաև զգուշացնում է. եթե Python-ի կողմում 2 բիթանոց փաթեթավորման կարգը չհամընկնի C-ի և ասեմբլերի արձակման տրամաբանության հետ, բոլոր կշիռները լուռ կվնասվեն։ Կոդը տարածվում է MIT լիցենզիայով, իսկ ոգեշնչման աղբյուրներում նշված են Microsoft BitNet-ը և ESP32-ի երկու վաղ նախագծեր։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։