paint-brush
Primer on Large Language Model (LLM) Inference Optimizations: 2. Panimula sa Artificial Intelligence (AI) Acceleratorssa pamamagitan ng@mandliya
645 mga pagbabasa
645 mga pagbabasa

Primer on Large Language Model (LLM) Inference Optimizations: 2. Panimula sa Artificial Intelligence (AI) Accelerators

sa pamamagitan ng Ravi Mandliya8m2024/11/07
Read on Terminal Reader

Masyadong mahaba; Upang basahin

Ine-explore ng post na ito ang mga AI accelerators at ang epekto nito sa pag-deploy ng Large Language Models (LLMs) nang malawakan.
featured image - Primer on Large Language Model (LLM) Inference Optimizations: 2. Panimula sa Artificial Intelligence (AI) Accelerators
Ravi Mandliya HackerNoon profile picture

Pag-explore ng AI accelerators at ang epekto nito sa pag-deploy ng Large Language Models (LLMs) nang malawakan.


Mga post sa seryeng ito :

  1. Primer on Large Language Model (LLM) Inference Optimizations: 1. Background at Pagbubuo ng Problema

  2. 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.

Bakit AI Accelerators?

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.

Mga Uri ng AI Accelerators

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:

Mga Graphics Processing Unit (mga GPU)

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.

Mga Tensor Processing Unit (TPU)

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.

Field-Programmable Gate Arrays (FPGAs) / Application-Specific Integrated Circuits (ASICs)

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).

Mga pangunahing pagkakaiba sa pagitan ng mga CPU at AI Accelerators

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:

  • Arkitektura : Habang ang mga CPU ay mga pangkalahatang-purpose na processor, ang mga AI accelerator ay espesyal na hardware na na-optimize para sa mga workload ng AI. Ang mga CPU ay karaniwang may mas kaunting mga core ngunit mataas ang bilis ng orasan, na ginagawa itong perpekto para sa mga gawain na nangangailangan ng mabilis na single-threaded na pagganap. Ang mga AI accelerator, gayunpaman, ay may libu-libong mga core na na-optimize para sa parallel processing at mataas na throughput.
  • Katumpakan at Memorya : Ang mga CPU ay kadalasang gumagamit ng mataas na katumpakan na arithmetic at malaking cache memory, na sumusuporta sa mga pangkalahatang gawain sa pag-compute. Sa kabaligtaran, sinusuportahan ng mga AI accelerators ang mababang-katumpakan na arithmetic, tulad ng 8-bit o 16-bit, na binabawasan ang footprint ng memorya at pagkonsumo ng enerhiya nang hindi gaanong nakompromiso ang katumpakan—susi para sa LLM inference.
  • Energy Efficiency : Idinisenyo para sa mga high-intensity AI na gawain, ang mga accelerator ay kumokonsumo ng mas kaunting kapangyarihan sa bawat operasyon kaysa sa mga CPU, na nag-aambag sa parehong pagtitipid sa gastos at mas mababang epekto sa kapaligiran kapag na-deploy sa sukat.


Isang diagram na naghahambing ng mga arkitektura ng CPU at GPU, na nagha-highlight ng mga pagkakaiba sa bilang ng core at parallel na mga kakayahan sa pagproseso 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.

Mga Pangunahing Tampok ng AI Accelerators at Epekto sa LLM Inference

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:

Parallel Processing

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.

Siksik at Sparse Matrix Multiplication sa isang AI accelerator Sanggunian: Inference Optimization ng Foundation Models sa AI Accelerators ni Youngsuk Park, et al.

Mataas na Bandwidth Memory

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.

High Speed Interconnect Bandwidth

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.

Mababang Katumpakan Arithmetic

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.

Mga uri ng data na sinusuportahan sa mga accelerator ng AI. Sanggunian: Inference Optimization ng Foundation Models sa AI Accelerators ni Youngsuk Park, et al.

Mga Na-optimize na Aklatan at Framework

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.

Scalability at Energy Efficiency

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.

Parallelism sa AI Accelerators

Iba't ibang uri ng parallelism technique ang ginagamit para mapakinabangan ang kahusayan ng AI accelerators para sa LLM inference:

Paralelismo ng Data

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.

Parallelism ng Data sa mga accelerator ng AI

Model Parallelism

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.

Tensor Parallelism sa AI accelerator

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.

Pipeline Parallelism sa AI accelerator

Paralelismo ng Gawain

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.

task parallelism sa AI accelerator

Isaalang-alang ang isang LLM na may 70 bilyong parameter na nagpoproseso ng isang batch ng mga text input:

  • Parallelism ng Data : Ang batch ng input ay nahahati sa maraming GPU, bawat isa ay nagpoproseso ng isang bahagi ng mga input nang hiwalay.
  • Tensor Parallelism : Ang mga ulo ng pansin ng modelo ng transformer ay ipinamamahagi sa maraming device, na ang bawat device ay humahawak ng isang subset ng mga ulo.
  • Pipeline Parallelism : Ang mga layer ng transformer model ay nahahati sa mga sequential na grupo, na ang bawat grupo ay pinoproseso ng ibang device sa pipeline na paraan.
  • Task Parallelism : Maramihang independiyenteng mga kahilingan sa inference ay pinoproseso nang sabay-sabay sa iba't ibang mga accelerator unit.

Co-Processing Mode sa AI Accelerators

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:

  • Host : Ang pangunahing CPU. Ito ay responsable para sa pangunahing daloy ng programa. Inoorchestrate nito ang gawain sa pamamagitan ng paglo-load ng pangunahing data at paghawak ng mga pagpapatakbo ng input/output. Sa co-processing mode, sinisimulan ng host ang proseso, naglilipat ng data sa AI Accelerators, at natatanggap ang mga resulta. Pinangangasiwaan nito ang lahat ng di-computation na logic at iniiwan ang numero sa mga AI Accelerators.
  • Device : Ang AI Accelerators. Sila ang may pananagutan para sa mabibigat na gawain sa pag-compute. Pagkatapos makatanggap ng data mula sa host, nilo-load ito ng accelerator sa espesyal na memorya nito at nagsasagawa ng parallel processing na na-optimize para sa mga workload ng AI, gaya ng matrix multiplications. Kapag nakumpleto na nito ang pagproseso, iniimbak nito ang mga resulta at ililipat ang mga ito pabalik sa host.

Co-processing workflow

Mga Umuusbong na Trend sa AI Accelerators

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:

Mga Intelligent Processing Unit (IPU)

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.

Reconfigurable Dataflow Units (RDUs)

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.

Mga Neural Processing Unit (NPU)

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.

Konklusyon

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.

Mga sanggunian

  • [1] Programming Massively Parallel Processor nina David B. Kirk at Wen-mei W. Hwu
  • [2] Inference Optimization ng Foundation Models sa AI Accelerators ni Youngsuk Park, et al.
  • [3] Pagsusuri ng mga Umuusbong na AI/ML Accelerators: IPU, RDU, at NVIDIA/AMD GPU ni Hongwu Peng, et al.