Վերադառնալ

10-ամյա Xeon-ը բավական է
SiTech AI Team3 րոպե ընթերցում

10-ամյա Xeon-ը բավական է

Նոր գրառումը ցույց է տալիս, թե ինչպես 2016-ի Xeon-ը DDR3 հիշողությամբ և առանց GPU-ի 26 միլիարդանոց փորձագետների խառնուրդի մոդելը ընթերցման արագությամբ է աշխատեցնում՝ հատուկ պատառաքաղի և 25 դրոշակի միջոցով։

Սարքավորում, որը սա չպետք է աշխատեցնի

Քրիստինա Էմիլիե Սյորենսենի՝ Gemma 4-ի MTP դրաֆթերների մասին երրորդ գրառումը քննում է, թե ինչպես արդյունքը աշխատեցնել վերամշակված սերվերի վրա, որը դա չպետք է կարողանա։ Մեքենան ունի 128 GB հիշողություն, բայց դա DDR3 է՝ հինգ-վեց անգամ դանդաղ, քան այսօրվա լավագույն նոութբուքի հիշողությունը։ Պրոցեսորը 2016 թվականի մեկ Intel Xeon E5-2620 v4 է. 8 ֆիզիկական միջուկ, 16 հոսք, միայն AVX2՝ առանց AVX-512-ի և BF16-ի, 20 MiB L3 և 2 MiB L2 քեշ, և ընդհանրապես GPU չկա։ ollama-ն և անգամ ստանդարտ llama.cpp-ը բավարար «լծակներ» չեն տալիս, ուստի լուծումը ik_llama.cpp պատառաքաղն է և 25 դրոշակով հրամանի տողը։ CPU-ի վրա գեներացումը սահմանափակվում է հիշողության թողունակությամբ. պրոցեսորը մատրիցային հաշվարկներն ավարտում է, ապա սպասում, մինչ կշիռները RAM-ից քեշ են տեղափոխվում։

Սպեկուլյատիվ ապակոդավորում և MoE երթուղում CPU-ի վրա

Gemma 4 26B-A4B-ը փորձագետների խառնուրդի մոդել է. 128 փորձագետ, յուրաքանչյուր թոքենի համար 8 ակտիվ, այսինքն՝ մոտ 3,8 միլիարդ ակտիվ պարամետր մոտ 25,2 միլիարդ ընդհանուրից։ --spec-type mtp, --draft-max 3, --draft-p-min 0.0 և --spec-autotune դրոշակները 26 միլիարդանոց վերիֆիկատորին կապում են փոքր MTP դրաֆթերի հետ։ Սյորենսենի կարծիքով սպեկուլյատիվ ապակոդավորումը CPU-ի վրա ավելի շատ է տալիս, քան GPU-ի. CPU-ի ցիկլերը էժան են վերիֆիկատորի կշիռները քեշով անցկացնելու ֆոնին, իսկ դրաֆթերը տեղավորվում է L3-ում։ --cpu-moe-ն փորձագետների երթուղումը համապատասխանեցնում է CPU-ի քեշի հիերարխիային, որպեսզի 128 փորձագետների միջև թռիչքները քեշը չխեղդեն, իսկ --merge-up-gate-experts-ը երկու պրոյեկցիա միավորում է մեկ matmul-ի մեջ. լոգերում fused_up_gate = 1։ Հոսքերի քանակը՝ -t 8, համապատասխանում է ֆիզիկական միջուկներին, այլ ոչ 16 SMT հոսքերին, քանի որ հիշողությամբ սահմանափակ ծանրաբեռնվածության դեպքում ավելորդ հոսքերը միայն պլանավորման ծախս են ավելացնում։

Ամրացում, վերափաթեթավորում և դրոշակներ, որ լուռ ձախողվում են

--mlock-ը միջուկից խնդրում է ~27 GB կշիռը պահել ֆիզիկական հիշողության մեջ, և լռելյայն այդ հարցումը ձախողվում է. «failed to mlock 27628376064-byte buffer ... Try increasing RLIMIT_MEMLOCK»։ Դրոշակը ճիշտ է, memlock-ի սահմանաչափը՝ ոչ, և սև արկղի գործիքները այս օպտիմիզացիան չեն խնդրում՝ մոդելը թողնելով սկավառակ տեղափոխվելուն։ --run-time-repack-ը կշիռների մատրիցները ինֆերենսից առաջ վերադասավորում է CPU-ի քեշի դասավորությանը համապատասխան, իսկ --no-kv-offload-ը կարճ միացնում է GPU-ի որոնումը KV քեշի համար։ Գրաֆի բաժանման դրոշակը չի դիմանում MTP-ի հանդիպմանը. շարժիչը հայտնում է «Split mode 'graph' is not supported for Gemma4 external MTP => changing split mode to 'layer'» և անցնում հաջորդական շերտային բաժանման։

Flash Attention CPU-ի վրա և հիշողության հաշիվը

ik_llama.cpp-ի հեղինակ ikawrakow-ը Flash Attention-ի համար գրել է հատուկ CPU միջուկներ. այն ուշադրության softmax-ը միաձուլում է matmul-ների հետ, այնպես որ N×N մատրիցը երբեք չի գրվում RAM-ում. օպտիմիզացիա, որը սկզբում ստեղծվել էր GPU-ի համար։ --mla-use 3-ը միացնում է Multi-Head Latent Attention-ը, որը KV քեշը սեղմում է ավելի փոքր լատենտ ներկայացման։ Երկուսն էլ աշխատեցին. flash_attn = 1, fused_moe = 1, fused_up_gate = 1։ Վերջնական հաշիվը 82 355 MiB է՝ մոտ 25 GB կշիռ և 56 GB KV քեշ 262K ամբողջական կոնտեքստի վրա։ Սյորենսենի եզրակացությունը. տեղական բաց մոդելների արգելքը սիլիցիումը չէ. պետք է խորությամբ հասկանալ ինֆերենսի շարժիչը։

SiTech

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

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