हार्डवेयर-एक्सेलरेटेड LLMs: व्यापक सर्वेक्षण और तुलना
- LLM प्राकृतिक भाषा प्रसंस्करण कार्यों में एक शक्तिशाली उपकरण के रूप में उभरे हैं और मानव-जैसे टेक्स्ट को समझने और उत्पन्न करने की क्षमता के साथ इस क्षेत्र में क्रांतिकारी बदलाव ला रहे हैं
- यह शोधपत्र हार्डवेयर एक्सेलरेटर का उपयोग करके बड़े भाषा मॉडलों के लिए transformer network acceleration पर किए गए विभिन्न शोध प्रयासों का व्यापक सर्वेक्षण करता है
फ्रेमवर्क और तुलना
- प्रस्तावित फ्रेमवर्क का परिचय देता है और तकनीक, processing platform (FPGA, ASIC, In-Memory, GPU), speedup, energy efficiency, performance (GOPs), और energy efficiency (GOPs/W) पर गुणात्मक और मात्रात्मक तुलना करता है
- मुख्य चुनौती यह है कि प्रत्येक प्रस्तावित scheme अलग-अलग process technology में implement की गई है, जिससे निष्पक्ष तुलना करना कठिन हो जाता है
- इस शोधपत्र का मुख्य योगदान समान technology पर performance और energy efficiency के परिणामों का अनुमान लगाना है, जिससे निष्पक्ष तुलना संभव होती है
प्रयोग और परिणाम
- कई FPGA chips पर LLMs के कुछ हिस्सों को implement करके समान process technology पर परिणामों का अनुमान लगाया गया है और performance की निष्पक्ष तुलना की गई है
GN⁺ की संक्षिप्त प्रस्तुति
- यह शोधपत्र बड़े भाषा मॉडलों (LLMs) के हार्डवेयर एक्सेलरेशन पर एक व्यापक सर्वेक्षण प्रदान करता है
- विभिन्न processing platforms पर performance और energy efficiency की तुलना करके निष्पक्ष तुलना को संभव बनाता है
- FPGA chips का उपयोग करके प्रयोगों के माध्यम से समान technology पर परिणामों का अनुमान लगाता है
- यह प्राकृतिक भाषा प्रसंस्करण क्षेत्र में LLMs के performance सुधार में रुचि रखने वालों के लिए उपयोगी हो सकता है
- समान कार्यक्षमता वाले अन्य प्रोजेक्ट्स में NVIDIA के GPU accelerators और Google का TPU शामिल हैं
1 टिप्पणियां
Hacker News की राय
इस पेपर में पृष्ठभूमि की व्याख्या थोड़ी सतही है, इसलिए संदर्भ जोड़ें तो 1990 के शुरुआती दशक से यह observation रहा है कि CPU compute performance (FLOPs) memory bandwidth की तुलना में तेज़ी से सुधरती है, और 1995 में William Wulf और Sally Mckee ने अनुमान लगाया था कि यह अंतर एक memory wall तक ले जाएगा, जहां अधिकांश computation को arithmetic operations नहीं बल्कि data access रोकता है
पिछले 20 वर्षों में server hardware का peak FLOPS हर 2 साल में 3 गुना बढ़ा है, लेकिन DRAM और interconnect bandwidth क्रमशः केवल लगभग 1.6 गुना और 1.4 गुना ही बढ़े हैं
इसलिए LLM training और inference में performance bottleneck धीरे-धीरे memory bandwidth की ओर खिसक रहा है, और खासकर autoregressive Transformer decoder models में यह प्रमुख bottleneck बन सकता है
यही trend Compute-in-memory(CIM), processing-in-memory(PIM) जैसी तकनीकों की मांग पैदा कर रहा है। यह ऐसा hardware है जो data को पहले CPU registers में ले जाए बिना memory के अंदर मौजूद data पर सीधे operations करता है, इसलिए latency और power consumption घटाता है और memory wall को bypass करने की संभावना रखता है
पेपर ASIC और FPGA hardware को अलग-अलग semiconductor process sizes पर compare करने के लिए polynomial fitting से 16nm baseline तक extrapolate करता है: “Aaron Stillmaker और B.Baas के ‘Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm’ के आधार पर, fair comparison के लिए 16nm technology पर performance और energy efficiency को extrapolate किया गया”
लेकिन CIM/PIM के लिए यह कहते हुए extrapolate नहीं करता: “in-memory accelerators की performance केवल process technology पर आधारित नहीं होती, इसलिए extrapolation केवल FPGA और ASIC accelerators के लिए किया गया, जहां process technology system performance को काफी प्रभावित करती है।” ऊपर से यह फैसला अजीब लगता है, और शायद कोई इस decision को और समझा सके
आगे पढ़ने के लिए: https://arxiv.org/abs/2403.14123, https://en.m.wikipedia.org/wiki/In-memory_processing, http://vcl.ece.ucdavis.edu/pubs/2017.02.VLSIintegration.Tech...
फिर भी RAM module form factor में आने वाले और सस्ते products मुझे पसंद हैं। ऐसे बहुत सारे modules को 1U board में लगाकर high-speed interconnect से जोड़ने, या PCI card को पूरी तरह उनसे भर देने की तस्वीर भी कल्पना की जा सकती है
PCI-e V4 इतनी जल्दी निकल गया कि लगता है उसकी उम्र मुश्किल से 2 साल रही, और NVMeOF fabric performance के साथ अच्छी तरह scale होता आया है। मौजूदा H100 DGX में 400GB/s interconnect है
“AI models की तेज़ growth compute performance और memory bandwidth के बीच बढ़ते gap से सीमित हो रही है। GPT-5 जैसे next-generation models के अभूतपूर्व 3–5 trillion parameters के scale तक पहुंचने की उम्मीद है, लेकिन memory bandwidth नाम का technical bottleneck उनकी क्षमता को पूरी तरह साकार करने में मुख्य बाधा बन रहा है”
https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
मुझे पुराने समय से ही systolic arrays पसंद रहे हैं, और पिछले कई दशकों में कई विकल्पों को देखने के बाद मुझे cells की Cartesian grid ही optimal solution लगती है
हर cell के पास पड़ोसियों से एक-एक आने वाले 4 input bits और पड़ोसियों की ओर एक-एक जाने वाले 4 output bits होते हैं। बीच में एक लंबी scan chain का 64-bit shift register होता है, और उसका output 4 16:1 multiplexers और 4-bit latch में जाता है
graph coloring के magic का इस्तेमाल करके checkerboard pattern में सभी cells को clock देने पर data किसी खास दिशा की ओर biased हुए बिना और race conditions के बिना किसी भी दिशा में flow कर सकता है। किसी भी cell के inputs stable state में होते हैं
यह तरीका FPGA जैसी flexibility देता है, फिर भी timing issues, race conditions, glitches आदि की चिंता नहीं करनी पड़ती। wires भी सभी short हैं, इसलिए सब कुछ local, fast और low-power है
हालांकि gate efficiency अच्छी नहीं होती और यह logic का shortest path भी नहीं देता। हर single operation असल में parallel में होता है, और सभी computations pipelined होते हैं
यह idea मेरे पास करीब 1982 से है, और अच्छा होगा अगर कोई इसे आगे लेकर ठीक से बना दे। मैं इसे BitGrid कहता हूं
संबंधित सामग्री: https://arxiv.org/pdf/2406.08413
Memory Is All You Need: An Overview of Compute-in-Memory Architectures for Accelerating Large Language Model Inference
मैं देखना चाहता हूं कि WebGL में LLM कैसे चलता है, जहां सब कुछ texture होता है। architecture differences को visual रूप में देखना काफी मजेदार होगा
आजकल bottleneck memory movement है, इसलिए HBM महंगा है। Nvidia design भी chip level और system level दोनों पर असली bottleneck यानी memory के हिसाब से optimized है
असल में यह ज्यादा दिखता नहीं
क्या FPGA + ASIC + in-memory hybrid architecture scalability और flexibility में भूमिका निभा सकता है? FPGA की ताकत flexibility, ASIC की performance, और in-memory की energy efficiency है, इसलिए इन्हें जोड़ने वाला hybrid approach LLM performance को और आगे बढ़ा सकता है या नहीं, यह भी जानने की उत्सुकता है
In-memory सिर्फ performance के लिहाज से ही नहीं, direction के तौर पर भी सही लगता है। ऐसे model के लिए ASIC बनाना या FPGA को program करना ज़्यादा समझदारी नहीं लगती, जो अच्छी किस्मत हो तो भी कुछ महीनों बाद outdated हो सकता है
एक paper था जिसमें light bulb जितनी power से LLM चलाने की बात थी
https://arxiv.org/abs/2406.02528
https://news.ucsc.edu/2024/06/matmul-free-llm.html
मुख्य बात यह है कि matrix multiplication से बचने के लिए दो techniques इस्तेमाल की जाती हैं। पहली, matrix के सभी numbers को -1, 0, +1 जैसे सिर्फ तीन ternary values तक सीमित कर दिया जाता है, जिससे multiplication को addition में घटाया जा सके। दूसरी, हर element को अलग-अलग multiply करने के बजाय matrices को overlap करके केवल अहम operations किए जाते हैं
Researchers ने model training में time-based computation शामिल करके neural network performance को बनाए रखा, और उनका कहना है कि इससे network को process होने वाली महत्वपूर्ण जानकारी की “memory” मिलती है, जिससे performance बेहतर होती है
Standard GPU पर memory usage करीब दसवें हिस्से तक घट गया और speed लगभग 25% तेज हुई, और यह algorithm को smartphones जैसे कम memory वाले devices पर भी full capacity से चलाने का रास्ता दे सकता है। 3 हफ्तों में बने FPGA prototype ने सिर्फ 13W power में human-readable throughput से अधिक हासिल किया, और GPU को करीब 700W चाहिए होता, इसलिए custom hardware GPU से 50 गुना से भी ज्यादा efficient बताया गया
यहां in-memory से मतलब CPU और RAM को जोड़ने वाले किसी special hardware से है या नहीं, यह साफ नहीं है
DRAM + GPU की तुलना में 19 गुना improvement दिखाने वाले एक पुराने acceleration paper को cite करें तो, “क्योंकि MAC operations अधिकांश machine learning workloads के execution time में dominant हिस्सा लेते हैं, हम subarray के अंदर multiplication और bank के अंदर accumulation का प्रस्ताव रखते हैं। Multiplication को column-based तरीके से AND operations और additions करके process किया जाता है, और area overhead 1% से कम ही जुड़ता है”
https://arxiv.org/pdf/2105.03736
Arxiv content को थोड़ा readable तरीके से देखने का कोई तरीका है?
उस site पर जब भी जाता हूं, समझ नहीं आता कि कोई interface है भी या नहीं, और रास्ता भटक जाता हूं, इसलिए अक्सर content तक पहुंचे बिना ही बाहर निकल जाता हूं
किसी individual paper के लिए यही सबसे अच्छा तरीका है, और https://arxiv-sanity-lite.com/ जैसे कुछ Arxiv frontends भी हैं