140 skaitymai

Kaip pagreitinti dirbtinio intelekto modelius – neapkraunant atminties

pateikė Batching4m2025/02/24
Read on Terminal Reader

Per ilgai; Skaityti

Bifurkuotas dėmesys yra naujas metodas, leidžiantis optimizuoti didelės kalbos modelio išvadas sumažinant atminties IO išlaidas. Jis padalija dėmesio mechanizmą į dvi GEMM operacijas – išankstinio užpildymo KV talpyklos tvarkymą atskirai nuo dekodavimo. Šis metodas palaiko skaičiavimo efektyvumą ir sumažina delsą, leidžia naudoti didesnius paketų dydžius ir realaus laiko AI programas.
featured image - Kaip pagreitinti dirbtinio intelekto modelius – neapkraunant atminties
Batching HackerNoon profile picture
0-item

Autoriai:

(1) Benas Athiwaratkunas, „AWS AI Labs“;

(2) Sujanas Kumaras Gonugondla, „AWS AI Labs“;

(3) Sanjay Krishna Gouda, AWS AI Labs;

(4) Haifeng Qian, AWS AI Labs;

(5) Sanjay Krishna Gouda, AWS AI Labs;

(6) Hantian Ding, AWS AI Labs;

(7) Qing Sun, AWS AI Labs;

(8) Jun Wang, AWS AI Labs;

(9) Jiacheng Guo, AWS AI Labs;

(10 Liangfu Chen, AWS AI Labs;

(11) Parminder Bhatia, GE HealthCare (darbas atliktas AWS);

(12) Ramesh Nallapati, Amazon AGI (darbas atliktas AWS);

(13) Sudipta Sengupta, AWS AI Labs;

(14) Bing Xiang, Goldman Sachs (darbas atliktas AWS).

Nuorodų lentelė

Santrauka ir 1 Įvadas

2. Susiję darbai

3. Fonas

3.1. Žymėjimas ir 3.2. Kalbos modelio išvada

3.3. Kelių užklausų, kelių galvučių ir apibendrintų kelių užklausų dėmesys

4. Kontekstą suvokiantis dvipusis dėmesys ir 4.1. Motyvacija

4.2. Formulė ir 4.3. Atminties IO sudėtingumas

5. Eksperimentai

5.1. Kelių galvučių, kelių užklausų ir kelių grupių dėmesio galimybių palyginimas

5.2. Galimybių lygiaverčių modelių vėlavimai

5.3. Programos

6. Išvados ir literatūros sąrašas


A. DUK

B. Susiję darbai

C. Sąranka

D. Daugiagrupių dėmesio šeima

E. Kontekstą suvokiantis dvipusis dėmesys

F. Taikymas: papildomi rezultatai

G. Suderinamumas su spekuliacinio dekodavimo ir greito dekodavimo metodais

Abstraktus

Savo tyrime pristatome dvipusį dėmesį – metodą, sukurtą kalbos modelio išvadoms daryti vieno konteksto paketinės atrankos kontekstuose. Šiuo metodu siekiama sumažinti perteklinės atminties IO sąnaudas, kurios yra reikšmingas delsos veiksnys esant dideliems paketų dydžiams ir ilgiems kontekstams. Bifurkuotas dėmesys pasiekiamas padalijus dėmesio mechanizmą laipsniško dekodavimo metu į dvi skirtingas GEMM operacijas, sutelkiant dėmesį į KV talpyklą iš išankstinio užpildymo ir dekodavimo procesą. Šis metodas užtikrina tikslų skaičiavimą ir palaiko įprastą standartinių dėmesio mechanizmų skaičiavimo apkrovą (FLOP), bet su sumažinta atminties IO. Dvišakės dėmesys taip pat suderinamas su kelių užklausų dėmesio mechanizmu, žinomu dėl sumažintos atminties IO KV talpykloje, dar labiau įgalinantis didesnį paketo dydį ir konteksto ilgį. Dėl to gaunamas efektyvumas sumažina delsą, pagerina tinkamumą realaus laiko programoms, pvz., leidžia generuoti labai lygiagrečius atsakymus, iš esmės nepadidinant delsos, padidina našumą, kai jis yra integruotas su papildomo apdorojimo metodais, pvz., perskirstymu.

1. Įvadas

Didžiųjų kalbų modelių (LLM) atsiradimas pradėjo naują mašininio mokymosi erą, pasižyminčią puikiu našumu atliekant įvairias užduotis (Brown ir kt., 2020; OpenAI, 2023; Chowdhery ir kt., 2022; Touvron ir kt., 2023; Chen20 ir kt., 2023; Chen20 ir kt.2; Li ir kt., „Microsoft“, 2022 m.; Nijkamp ir kt., 2023 m. Nepaisant įspūdingų galimybių, šių didelio masto modelių diegimas praktikoje kelia didelių iššūkių, ypač dėl išvadų delsos ir efektyvumo. Labai svarbu sustiprinti šiuos aspektus, nes jie tiesiogiai veikia skaičiavimo išteklius, reikalingus prognozėms generuoti ir praktiškai įgyvendinti šiuos pažangius modelius įvairiose pramonės šakose.


Ypač sudėtingas išvadų scenarijus yra vieno konteksto paketinis atranka, kai tikslas yra generuoti kelis užbaigimus iš vieno konteksto. Su šia užduotimi dažniausiai susiduriama daugelyje programų, pvz., kodo redagavimo IDE įrankiai, kuriuose pateikiamos kelios rekomendacijos, arba tais atvejais, kai norint užtikrinti optimalų našumą reikia reitinguoti tarp daugelio kartų (naudojant reitingavimo metriką, pvz., vidutinę žurnalo tikimybę, daugumos balsavimą ir kt.). Laipsniškas tokio atrankos scenarijaus dekodavimas reikalauja daug atminties IO, o tai tampa delsos kliūtimi didelėms partijoms ir konteksto ilgiams.


Šiame tyrime mes ištiriame dvi suderinamas strategijas, kaip spręsti atminties IO iššūkius darant transformatorių išvadas: (1) kelių užklausų ir jos kompromisų tyrimą ir (2) naują metodą, vadinamą kontekstą suvokiamu dvipusiu dėmesiu.


Mūsų tyrimas prasideda apibendrinto kelių užklausų dėmesio analize (Ainslie ir kt., 2023), kuri apima kelių užklausų funkciją (Shazeer, 2019), taip pat nustatytą kelių galvų dėmesio mechanizmą (Vaswani ir kt., 2017), skirtą našumo ir delsos kompromisui. Mūsų išvados rodo sklandų našumo mastelio keitimą didėjant modelio dydžiui fiksuotai grupių skaičiaus g vertei apibendrintai kelioms užklausoms[1]. Sumažinus g, patvirtinimo praradimo ir modelio dydžio mastelio kreivės pasislenka į viršų. Nuoseklus ryšys tarp talpyklos glaudinimo, modelio dydžio ir patvirtinimo praradimo leidžia daryti išvadų efektyvumą su modelio dydžiu, ty leidžia pasirinkti didesnį glaudinimą naudojimo atvejams, kuriems reikalingas didelis efektyvumas, kartu suderinant kelių galvučių dėmesio našumą kompensuojant didesniu modelio dydžiu.


Antra, pristatome kontekstą suvokiantį dvipusį dėmesį – techniką, kuri visą dėmesį apibendrintoje kelių užklausų šeimoje suskaido į kontekstą ir dekoduojančius komponentus laipsniško dekodavimo metu. Toks bifurkavimas apima tą patį FLOP skaičių ir duoda identiškus rezultatus, palyginti su pradiniu dėmesiu, tačiau gali žymiai sumažinti atminties IO sąnaudas ir tokiu būdu delsą didelės partijos ir konteksto ilgio scenarijuose. Šis metodas leidžia generuoti kelis užbaigimus realiuoju laiku nepatiriant didelių papildomų delsos išlaidų arba leidžia naudoti daug didesnį paketų dydį, o tai pagerina reitingavimo našumą. Pavyzdžiui, CodeGen 16B kelių galvučių modelio (Nijkamp ir kt., 2022) su 2k konteksto ilgiu partijos dydį galime padidinti iki 128 su dvišakiu dėmesiu, palyginti su partijos dydžiu tik 5 be jų, todėl pass@k (Chen ir kt., 2021) padidėja nuo 59,0 % iki log 8,0 % per. nuo 55,2% iki 58,1%.


Šis dokumentas yra prieinamas arxiv pagal CC BY 4.0 DEED licenciją.


[1] Mažesnės dėmesio grupių g reikšmės lemia didesnį rakto reikšmių tenzorių suspaudimą, kaip kelių užklausų atveju, kai g = 1, todėl pagerėja išvadų efektyvumas ir delsa dėl sumažėjusios KV talpyklos, palyginti su kelių galvučių atveju, kai g = h, užklausos dėmesio galvučių skaičius.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks