Pag-explore ng AI accelerators at ang epekto nito sa pag-deploy ng Large Language Models (LLMs) nang malawakan.
Mga post sa seryeng ito :
Primer on Large Language Model (LLM) Inference Optimizations: 1. Background at Pagbubuo ng Problema
Primer on Large Language Model (LLM) Inference Optimizations: 2. Panimula sa Artificial Intelligence (AI) Accelerators (post na ito)
Sa nakaraang post , tinalakay namin ang mga hamon ng inference ng Large Language Model (LLM), gaya ng mataas na latency, masinsinang pagkonsumo ng mapagkukunan, at mga isyu sa scalability. Ang epektibong pagtugon sa mga isyung ito ay kadalasang nangangailangan ng tamang suporta sa hardware. Ang post na ito ay sumasalamin sa mga AI accelerators—espesyal na hardware na idinisenyo upang mapahusay ang pagganap ng mga workload ng AI, kabilang ang LLM inference—na nagha-highlight sa kanilang arkitektura, mga pangunahing uri, at epekto sa pag-deploy ng mga LLM sa sukat.
Kung nagtaka ka kung paano pinamamahalaan ng mga kumpanya tulad ng OpenAI at Google na patakbuhin ang napakalaking modelo ng wika na nagsisilbi sa milyun-milyong user nang sabay-sabay, ang sikreto ay nasa espesyal na hardware na tinatawag na AI accelerators. Bagama't mahusay na pinangangasiwaan ng mga tradisyunal na CPU ang mga pangkalahatang layunin na gawain, hindi sila na-optimize para sa mga hinihingi ng mga workload ng AI. Ang mga accelerator ng AI, sa kabaligtaran, ay ginawa para sa mga gawain ng AI, na nag-aalok ng mataas na bilis ng pag-access ng data, mga kakayahan sa parallel na pagproseso, at suporta para sa mababang-katumpakan na arithmetic. Sa pamamagitan ng paglilipat ng computation sa mga AI accelerators, makakamit ng mga organisasyon ang mga makabuluhang tagumpay sa pagganap at mabawasan ang mga gastos, lalo na kapag nagpapatakbo ng mga kumplikadong modelo tulad ng mga LLM. Tuklasin natin ang ilang karaniwang uri ng AI accelerators at ang kanilang mga natatanging pakinabang para sa mga workload na ito.
Ang mga AI accelerator ay may iba't ibang anyo, bawat isa ay iniangkop para sa mga partikular na gawain at kapaligiran ng AI. Ang tatlong pangunahing uri ay ang mga GPU, TPU, at FPGA/ASIC, bawat isa ay may mga natatanging tampok at pakinabang:
Orihinal na binuo para sa pag-render ng mga graphics, ang mga GPU ay naging isang mahusay na tool para sa mga gawain sa malalim na pag-aaral dahil sa kanilang mga parallel na kakayahan sa pagproseso. Ang kanilang arkitektura ay angkop para sa high-throughput na mga kalkulasyon ng matrix, na mahalaga para sa mga gawain tulad ng LLM inference. Ang mga GPU ay partikular na sikat sa mga data center para sa pagsasanay at inference sa sukat. Ang mga GPU tulad ng NVIDIA Tesla, AMD Radeon, at Intel Xe ay malawakang ginagamit sa parehong cloud at on-premise na kapaligiran.
Ang Google ay bumuo ng mga TPU na partikular para sa malalim na pag-aaral ng mga workload, na may mga pag-optimize para sa TensorFlow-based na pagsasanay at hinuha. Ang mga TPU ay idinisenyo upang mapabilis ang malakihang mga gawain ng AI nang mahusay, na pinapagana ang marami sa mga application ng Google, kabilang ang paghahanap at pagsasalin. Available sa pamamagitan ng Google Cloud, ang mga TPU ay nag-aalok ng mataas na pagganap para sa parehong pagsasanay at paghihinuha, na ginagawa silang isang ginustong pagpipilian para sa mga user ng TensorFlow.
Ang mga FPGA at ASIC ay dalawang natatanging uri ng nako-customize na mga accelerator na sumusuporta sa mga partikular na gawain ng AI. Reprogrammable ang mga FPGA, na nagbibigay-daan sa kanila na umangkop sa iba't ibang modelo at application ng AI, habang ang mga ASIC ay binuo para sa mga partikular na gawain, na nag-aalok ng maximum na kahusayan para sa mga workload na iyon. Ang parehong mga uri ay ginagamit sa mga data center at sa gilid, kung saan ang mababang latency at mataas na throughput ay mahalaga. Kasama sa mga halimbawa ang Intel Arria at Xilinx Alveo (FPGAs) at Google's Edge TPU (ASICs).
Ang mga natatanging arkitektura ng mga CPU at AI accelerator ay ginagawang angkop ang mga ito para sa iba't ibang uri ng mga workload. Narito ang isang paghahambing ng ilan sa mga pinaka-kritikal na tampok:
Sanggunian: Programming Massively Parallel Processors ni David B. Kirk at Wen-mei W. Hwu [1]
Tandaan na sa CPU ay may mas kaunting mga core (4-8) at ang disenyo ay na-optimize para sa mababang latency at mataas na single-threaded na pagganap. Sa kabaligtaran, ang mga GPU ay may libu-libong mga core at na-optimize para sa mataas na throughput at parallel na pagproseso. Ang parallel processing capability na ito ay nagbibigay-daan sa mga GPU na pangasiwaan ang malakihang AI workloads nang mahusay.
Ang mga AI accelerator ay binuo gamit ang ilang feature na ginagawang perpekto ang mga ito para sa paghawak ng malakihang AI workload tulad ng LLM inference. Kabilang sa mga pangunahing tampok ang:
Ang mga AI accelerator ay idinisenyo para sa malakihang parallel processing, salamat sa kanilang arkitektura na may libu-libong mga core. Ang parallelism na ito ay nagpapahintulot sa kanila na pangasiwaan ang masinsinang pagkalkula ng matrix na kinakailangan sa LLM inference nang mahusay. Kasama rin sa maraming accelerator ang mga dalubhasang tensor core, na na-optimize para sa mga tensor operation gaya ng matrix multiplications. Ang mga kakayahang ito ay ginagawang mas mabilis ang mga AI accelerator kaysa sa mga CPU kapag pinoproseso ang mga gawain sa LLM sa sukat.
Sanggunian: Inference Optimization ng Foundation Models sa AI Accelerators ni Youngsuk Park, et al.
Ang mga Accelerator ay may espesyal na memorya na nagbibigay-daan sa mataas na bandwidth, na nagbibigay-daan sa kanila na ma-access ang malalaking dataset at mga parameter ng modelo na may kaunting latency. Ang tampok na ito ay mahalaga para sa LLM inference, kung saan ang madalas na pag-access ng data ay kinakailangan upang mai-load ang input ng text at mga parameter ng modelo. Binabawasan ng high-bandwidth memory ang bottleneck sa pagkuha ng data, na nagreresulta sa mas mababang latency at pinahusay na performance.
Ang mga AI accelerator ay nilagyan ng mga high-speed interconnect upang mapadali ang mabilis na paglipat ng data sa loob ng mga multi-device na setup. Ito ay partikular na mahalaga para sa pag-scale ng LLM inference sa maraming device, kung saan ang mga accelerator ay kailangang makipag-usap at magbahagi ng data nang mahusay. Tinitiyak ng mataas na interconnect bandwidth na ang malalaking dataset ay maaaring hatiin sa mga device at iproseso nang magkasabay nang hindi nagdudulot ng mga bottleneck.
Ang isa pang bentahe ng AI accelerators ay ang kanilang suporta para sa mababang-katumpakan na arithmetic, tulad ng 8-bit integer at 16-bit na floating-point na mga kalkulasyon. Binabawasan nito ang paggamit ng memorya at pagkonsumo ng enerhiya, na ginagawang mas mahusay ang mga gawain ng AI. Para sa LLM inference, ang mga kalkulasyon na mababa ang katumpakan ay nagbibigay ng mas mabilis na pagproseso habang pinapanatili ang sapat na katumpakan para sa karamihan ng mga application. Ang mga AI accelerator ay may napakayamang pagpili ng uri ng data.
Sanggunian: Inference Optimization ng Foundation Models sa AI Accelerators ni Youngsuk Park, et al.
Karamihan sa mga AI accelerator ay may kasamang mga naka-optimize na library para sa mga sikat na AI framework, gaya ng cuDNN para sa NVIDIA GPU at XLA para sa Google TPUs. Nagbibigay ang mga library na ito ng mga high-level na API para sa pagsasagawa ng mga karaniwang operasyon ng AI at may kasamang mga pag-optimize na partikular para sa mga LLM. Ang paggamit sa mga library na ito ay nagbibigay-daan sa mas mabilis na pag-develop ng modelo, pag-deploy, at pag-optimize ng inference.
Ang mga AI accelerator ay lubos na nasusukat, na nagbibigay-daan para sa pag-deploy sa mga cluster o data center upang mahawakan nang mahusay ang malalaking workload. Dinisenyo din ang mga ito upang maging matipid sa enerhiya, kumokonsumo ng mas kaunting kapangyarihan kaysa sa mga CPU para sa maihahambing na mga gawain, na ginagawang perpekto ang mga ito para sa mga computationally intensive application tulad ng LLM inference sa sukat. Ang kahusayan na ito ay nakakatulong na mabawasan ang parehong gastos sa pagpapatakbo at epekto sa kapaligiran ng pagpapatakbo ng malalaking modelo ng AI.
Iba't ibang uri ng parallelism technique ang ginagamit para mapakinabangan ang kahusayan ng AI accelerators para sa LLM inference:
Ang parallelism ng data ay nagsasangkot ng paghahati ng input data sa maramihang mga batch at pagproseso ng bawat batch nang magkatulad. Kapaki-pakinabang ito para sa mga workload ng AI na nagsasangkot ng malalaking dataset, gaya ng malalim na pagsasanay sa pagkatuto at hinuha. Sa pamamagitan ng pamamahagi ng data sa maraming device, mas mabilis na maproseso ng mga AI accelerator ang workload at mapahusay ang pangkalahatang performance. Ang isang halimbawa ng data parallelism sa LLM inference ay ang paghahati ng input text sa mga batch at pagproseso ng bawat batch sa isang hiwalay na accelerator.
Kasama sa parallelism ng modelo ang paghahati ng mga bahagi ng modelo ng AI sa maraming device, na nagbibigay-daan sa parallel na pagproseso ng iba't ibang bahagi ng modelo. Ang diskarte na ito ay partikular na mahalaga para sa malalaking modelo ng AI na lumalampas sa kapasidad ng memorya ng single-device o nangangailangan ng distributed computation para sa mahusay na pagproseso. Ang parallelism ng modelo ay malawakang ginagamit sa mga malalaking modelo ng wika (LLM) at iba pang mga malalim na arkitektura ng pag-aaral kung saan ang laki ng modelo ay isang makabuluhang hadlang.
Ang paralelismo ng modelo ay maaaring ipatupad sa dalawang pangunahing pamamaraan:
Intra-layer Parallelism (Tensor Parallelism) : Ang mga indibidwal na layer o bahagi ay nahahati sa mga device, kung saan ang bawat device ay humahawak ng isang bahagi ng computation sa loob ng parehong layer. Halimbawa, sa mga modelo ng transformer, maaaring ipamahagi sa maraming device ang mga attention head o feed-forward na layer ng network. Pinaliit ng diskarteng ito ang komunikasyon sa itaas dahil kailangan lang mag-synchronize ng mga device sa mga hangganan ng layer.
Inter-layer Parallelism (Pipeline Parallelism) : Ang mga sequential na pangkat ng mga layer ay ipinamamahagi sa mga device, na lumilikha ng pipeline ng computation. Pinoproseso ng bawat device ang mga nakatalagang layer nito bago ipasa ang mga resulta sa susunod na device sa pipeline. Ang diskarte na ito ay partikular na epektibo para sa malalalim na network ngunit nagpapakilala ng pipeline latency.
Kasama sa task parallelism ang paghahati sa workload ng AI sa maraming gawain at pagpoproseso ng bawat gawain nang magkatulad. Kapaki-pakinabang ito para sa mga workload ng AI na nagsasangkot ng maraming independiyenteng gawain, gaya ng autonomous na pagmamaneho. Sa pamamagitan ng pagpoproseso ng mga gawain nang magkatulad, ang mga AI accelerator ay maaaring mabawasan ang oras na kinakailangan upang makumpleto ang mga kumplikadong gawain at mapabuti ang pangkalahatang pagganap. Ang parallelism ng gawain ay kadalasang ginagamit sa mga accelerator ng AI para sa mga gawain tulad ng pagtuklas ng bagay at pagsusuri ng video.
Isaalang-alang ang isang LLM na may 70 bilyong parameter na nagpoproseso ng isang batch ng mga text input:
Ang mga AI Accelerator ay madalas na gumagana kasabay ng pangunahing CPU upang i-offload ang mabibigat na gawain sa pag-compute. Ang pangunahing CPU ay may pananagutan para sa mga pangkalahatang layunin na gawain at ang AI Accelerators ay responsable para sa mabibigat na gawain sa pagkalkula. Ito ay karaniwang tinatawag na co-processing. Narito ang isang simpleng diagram upang ipakita kung paano gumagana ang AI Accelerators sa pangunahing CPU. Narito ang ilang maikling nomenclature para sa co-processing:
Habang ang mga workload ng AI ay patuloy na lumalaki sa pagiging kumplikado at sukat, ang mga accelerator ng AI ay nagbabago upang matugunan ang mga hinihingi ng mga modernong aplikasyon. Ang ilang pangunahing trend na humuhubog sa hinaharap ng mga AI accelerators [3] ay kinabibilangan ng:
Binuo ng Graphcore, ang mga IPU ay idinisenyo upang pangasiwaan ang mga kumplikadong gawain sa machine learning na may mataas na kahusayan. Nakatuon ang kanilang arkitektura sa parallel processing, na ginagawa itong angkop para sa malakihang AI workloads.
Binuo ng SambaNova Systems, ang mga RDU ay idinisenyo upang pabilisin ang mga workload ng AI sa pamamagitan ng dynamic na pag-optimize ng daloy ng data sa loob ng processor. Pinapabuti ng diskarteng ito ang pagganap at kahusayan para sa mga gawain tulad ng LLM inference.
Ang mga NPU ay dalubhasa para sa malalim na pag-aaral at mga gawain sa neural network, na nagbibigay ng mahusay na pagpoproseso ng data na iniayon sa mga workload ng AI. Ang mga ito ay lalong isinama sa mga device na nangangailangan ng on-device na mga kakayahan sa AI.
Sa post na ito, tinalakay namin ang papel ng mga accelerator ng AI sa pagpapahusay ng pagganap ng mga workload ng AI, kasama ang LLM inference. Sa pamamagitan ng paggamit ng magkakatulad na kakayahan sa pagpoproseso, mataas na bilis ng memorya, at mababang-katumpakan na aritmetika ng mga accelerator, makakamit ng mga organisasyon ang mga makabuluhang tagumpay sa pagganap at matitipid sa gastos kapag nagde-deploy ng mga LLM sa sukat. Ang pag-unawa sa mga pangunahing feature at uri ng AI accelerators ay mahalaga para sa pag-optimize ng LLM inference at pagtiyak ng mahusay na paggamit ng resource sa malakihang AI deployment. Sa susunod na post, tatalakayin natin ang mga diskarte sa pag-optimize ng system para sa pag-deploy ng mga LLM sa sukat gamit ang mga accelerator ng AI.