LLMs ที่เร่งด้วยฮาร์ดแวร์: การสำรวจและเปรียบเทียบแบบครอบคลุม
- LLM ได้กลายเป็นเครื่องมือทรงพลังในงานประมวลผลภาษาธรรมชาติ และกำลังปฏิวัติวงการนี้ด้วยความสามารถในการเข้าใจและสร้างข้อความที่คล้ายมนุษย์
- งานวิจัยนี้สำรวจอย่างครอบคลุมถึงความพยายามวิจัยหลายด้านในการเร่งเครือข่าย Transformer สำหรับโมเดลภาษาขนาดใหญ่โดยใช้อุปกรณ์เร่งฮาร์ดแวร์
เฟรมเวิร์กและการเปรียบเทียบ
- นำเสนอเฟรมเวิร์กที่เสนอไว้ และทำการเปรียบเทียบทั้งเชิงคุณภาพและเชิงปริมาณในด้านเทคโนโลยี แพลตฟอร์มประมวลผล (FPGA, ASIC, In-Memory, GPU) การเพิ่มความเร็ว ประสิทธิภาพด้านพลังงาน สมรรถนะ (GOPs) และประสิทธิภาพด้านพลังงาน (GOPs/W)
- ความท้าทายสำคัญคือแต่ละสคีมที่นำเสนอถูกนำไปใช้งานบนเทคโนโลยีกระบวนการที่แตกต่างกัน ทำให้การเปรียบเทียบอย่างเป็นธรรมทำได้ยาก
- ผลงานหลักของงานวิจัยนี้คือการประเมินผลลัพธ์ด้านสมรรถนะและประสิทธิภาพพลังงานบนเทคโนโลยีเดียวกัน เพื่อให้สามารถเปรียบเทียบอย่างเป็นธรรมได้
การทดลองและผลลัพธ์
- มีการนำบางส่วนของ LLMs ไปใช้งานบนชิป FPGA หลายตัว เพื่อประเมินผลลัพธ์บนเทคโนโลยีกระบวนการเดียวกันและเปรียบเทียบสมรรถนะอย่างเป็นธรรม
สรุปโดย GN⁺
- งานวิจัยนี้นำเสนอการสำรวจแบบครอบคลุมเกี่ยวกับการเร่งฮาร์ดแวร์สำหรับโมเดลภาษาขนาดใหญ่ (LLMs)
- เปรียบเทียบสมรรถนะและประสิทธิภาพด้านพลังงานบนแพลตฟอร์มประมวลผลที่หลากหลาย เพื่อให้สามารถเปรียบเทียบได้อย่างเป็นธรรม
- ใช้การทดลองบนชิป FPGA เพื่อประเมินผลลัพธ์บนเทคโนโลยีเดียวกัน
- อาจเป็นประโยชน์สำหรับผู้ที่สนใจการปรับปรุงสมรรถนะของ LLMs ในสาขาการประมวลผลภาษาธรรมชาติ
- โครงการอื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ ตัวเร่ง GPU ของ NVIDIA และ TPU ของ Google
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
บทความนี้อธิบายพื้นหลังค่อนข้างตื้น ถ้าเสริมบริบทเข้าไปก็คือ ตั้งแต่ต้นทศวรรษ 1990 มีการสังเกตว่า สมรรถนะการคำนวณของ CPU (FLOPs) พัฒนาขึ้นเร็วกว่าความกว้างแบนด์วิดท์หน่วยความจำ และในปี 1995 William Wulf กับ Sally Mckee ได้คาดการณ์ว่าช่องว่างนี้จะนำไปสู่ กำแพงหน่วยความจำ ซึ่งการคำนวณส่วนใหญ่จะถูกจำกัดไม่ใช่โดยการคำนวณเชิงคณิตศาสตร์ แต่โดยการเข้าถึงข้อมูล
ตลอด 20 ปีที่ผ่านมา FLOPS สูงสุดของฮาร์ดแวร์เซิร์ฟเวอร์เพิ่มขึ้น 3 เท่าทุก 2 ปี แต่แบนด์วิดท์ของ DRAM และ interconnect เพิ่มขึ้นเพียงราว 1.6 เท่าและ 1.4 เท่าตามลำดับ
ดังนั้นในการเทรนและ inference ของ LLM คอขวดด้านประสิทธิภาพจึงค่อย ๆ ย้ายไปอยู่ที่แบนด์วิดท์หน่วยความจำ และโดยเฉพาะในโมเดล autoregressive Transformer decoder มันอาจกลายเป็นคอขวดหลักได้
แนวโน้มนี้กำลังสร้างความต้องการเทคโนโลยีอย่าง Compute-in-memory (CIM) และ processing-in-memory (PIM) ซึ่งเป็นฮาร์ดแวร์ที่คำนวณบนข้อมูลในหน่วยความจำได้โดยตรง โดยไม่ต้องย้ายข้อมูลไปยังรีจิสเตอร์ของ CPU ก่อน จึงอาจลด latency และการใช้พลังงาน พร้อมทั้งหลบเลี่ยงกำแพงหน่วยความจำได้
บทความใช้ polynomial fitting เพื่อ extrapolate ฮาร์ดแวร์ ASIC และ FPGA จากขนาดกระบวนการผลิตเซมิคอนดักเตอร์ที่ต่างกันให้มาเทียบกันบนฐาน 16nm: “อ้างอิงจาก Aaron Stillmaker และ B.Baas, ‘Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm’ เราได้ extrapolate สมรรถนะและประสิทธิภาพพลังงานที่เทคโนโลยี 16nm เพื่อให้เปรียบเทียบกันอย่างยุติธรรม”
แต่สำหรับ CIM/PIM กลับไม่ได้ extrapolate โดยให้เหตุผลว่า “สมรรถนะของ accelerator แบบ in-memory ไม่ได้ขึ้นอยู่กับเทคโนโลยีกระบวนการผลิตเพียงอย่างเดียว ดังนั้นเราจึงทำ extrapolation เฉพาะกับ accelerator แบบ FPGA และ ASIC ที่เทคโนโลยีกระบวนการผลิตส่งผลต่อสมรรถนะของระบบอย่างมาก” ฟังดูเป็นการตัดสินใจที่แปลกอยู่เหมือนกัน และน่าจะมีคนที่อธิบายเหตุผลของการตัดสินใจนี้ได้ดีกว่านี้
อ่านเพิ่มเติม: 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 และมีราคาถูก แบบนั้นนึกภาพได้เลยว่าจะเสียบเต็ม ๆ ลงบนบอร์ด 1U แล้วผูกเข้าด้วยกันด้วย interconnect ความเร็วสูง หรือไม่ก็ยัดเต็มบนการ์ด PCI ไปเลย
PCI-e V4 ผ่านไปเร็วมากจนเหมือนมีอายุแค่ราว 2 ปี และ NVMeOF ก็ขยายตัวได้ดีไปพร้อมกับสมรรถนะของ fabric ปัจจุบัน H100 DGX มี interconnect 400GB/s
“การเติบโตอย่างรวดเร็วของโมเดล AI กำลังถูกจำกัดโดยช่องว่างที่ขยายใหญ่ขึ้นระหว่างสมรรถนะการคำนวณกับแบนด์วิดท์หน่วยความจำ โมเดลรุ่นถัดไปอย่าง GPT-5 ถูกคาดว่าจะมีขนาดถึง 3~5 ล้านล้านพารามิเตอร์อย่างที่ไม่เคยมีมาก่อน แต่คอขวดทางเทคนิคด้านแบนด์วิดท์หน่วยความจำกำลังกลายเป็นอุปสรรคสำคัญต่อการปลดปล่อยศักยภาพได้อย่างเต็มที่”
https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
ผมชอบ systolic array มาตั้งนานแล้ว และหลังจากไล่ดูตัวเลือกต่าง ๆ มาหลายสิบปี ก็คิดว่ากริดคาร์ทีเซียนของเซลล์คือคำตอบที่ดีที่สุด
แต่ละเซลล์มีบิตอินพุต 4 บิตที่เข้ามาจากเพื่อนบ้านทีละหนึ่ง และบิตเอาต์พุต 4 บิตที่ส่งออกไปยังเพื่อนบ้านทีละหนึ่ง ตรงกลางมี shift register 64 บิตของ scan chain ยาว ๆ และเอาต์พุตของมันจะเข้าไปยัง multiplexer 16:1 จำนวน 4 ตัวกับ latch 4 บิต
ถ้าใช้เวทมนตร์ของ graph coloring เพื่อป้อน clock ให้ทุกเซลล์ในแพตเทิร์นกระดานหมากรุก ข้อมูลก็จะไหลไปได้ทุกทิศทางโดยไม่เอนเอียงไปทางใดทางหนึ่งและไม่มี race condition อินพุตของทุกเซลล์จะอยู่ในสถานะที่เสถียร
วิธีนี้ให้ความยืดหยุ่นแบบ FPGA แต่ไม่ต้องกังวลเรื่อง timing problem, race condition หรือ glitch ต่าง ๆ เส้นทางสายก็สั้น ทำให้ทุกอย่างเป็นแบบ local เร็ว และกินไฟต่ำ
ข้อเสียคือมันไม่ได้มีประสิทธิภาพด้านเกตสูง หรือให้เส้นทางที่สั้นที่สุดของลอจิก การดำเนินการเดี่ยวทั้งหมดแทบจะเกิดขึ้นแบบขนาน และการคำนวณทั้งหมดถูกทำให้เป็น pipeline
เป็นไอเดียที่มีมาตั้งแต่ราวปี 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
อยากเห็น LLM รันบน WebGL ที่ทุกอย่างเป็น texture ถ้าได้เห็นความต่างของสถาปัตยกรรมในเชิงภาพก็น่าจะสนุกดี
ทุกวันนี้คอขวดคือ การย้ายหน่วยความจำ และนั่นคือเหตุผลที่ HBM แพง ดีไซน์ของ Nvidia ก็ถูกปรับให้เหมาะกับหน่วยความจำซึ่งเป็นคอขวดจริง ทั้งในระดับชิปและระดับระบบ
ในความเป็นจริงกลับไม่ค่อยเห็น
สถาปัตยกรรมไฮบริด FPGA + ASIC + in-memory จะมีบทบาทในด้านความสามารถในการขยายและความยืดหยุ่นได้หรือไม่? FPGA มีจุดเด่นเรื่องความยืดหยุ่น, ASIC มีจุดเด่นเรื่องประสิทธิภาพ, และ in-memory มีจุดเด่นเรื่องประสิทธิภาพพลังงาน จึงน่าสงสัยว่าการผสานทั้งหมดนี้เข้าด้วยกันแบบไฮบริดอาจช่วยดันประสิทธิภาพของ LLM ให้สูงขึ้นได้อีก
in-memory ดูเหมือนจะมาถูกทางไม่ใช่แค่ในแง่ประสิทธิภาพเท่านั้น การ สร้าง ASIC หรือโปรแกรม FPGA สำหรับโมเดลที่ต่อให้โชคดีก็อาจล้าสมัยในอีกไม่กี่เดือนข้างหน้า ฟังดูไม่ค่อยสมเหตุสมผลนัก
มีงานวิจัยที่บอกว่าสามารถรัน LLM ด้วยพลังงานระดับหลอดไฟหนึ่งดวงได้
https://arxiv.org/abs/2406.02528
https://news.ucsc.edu/2024/06/matmul-free-llm.html
แกนหลักคือใช้สองเทคนิคเพื่อหลีกเลี่ยงการคูณเมทริกซ์ อย่างแรกคือบังคับให้ตัวเลขทั้งหมดในเมทริกซ์มีได้เพียงสามค่า -1, 0, +1 เพื่อลดการคูณให้กลายเป็นการบวก อย่างที่สองคือซ้อนเมทริกซ์เข้าด้วยกันแล้วทำเฉพาะการคำนวณที่สำคัญ แทนที่จะคูณทุกองค์ประกอบทีละตัว
ทีมวิจัยระบุว่าได้ใส่การคำนวณแบบอิงเวลาเข้าไปในการฝึกโมเดลเพื่อคงประสิทธิภาพของโครงข่ายประสาทไว้ และด้วยเหตุนี้เครือข่ายจึงมี “ความทรงจำ” ต่อข้อมูลสำคัญที่กำลังประมวลผล ซึ่งช่วยให้ประสิทธิภาพดีขึ้น
บน GPU มาตรฐาน การใช้หน่วยความจำลดลงเหลือประมาณหนึ่งในสิบ และความเร็วเพิ่มขึ้นราว 25% อีกทั้งยังอาจเปิดทางให้รันอัลกอริทึมที่ความจุสูงสุดได้บนอุปกรณ์ที่มีหน่วยความจำจำกัดอย่างสมาร์ตโฟน ส่วนต้นแบบ FPGA ที่สร้างในเวลา 3 สัปดาห์ทำ throughput ได้เกินระดับที่มนุษย์อ่านได้โดยใช้พลังงานเพียง 13W ขณะที่ถ้าเป็น GPU จะต้องใช้ราว 700W จึงสรุปได้ว่าฮาร์ดแวร์เฉพาะทางมีประสิทธิภาพสูงกว่า GPU มากกว่า 50 เท่า
ไม่แน่ใจว่า in-memory ที่พูดถึงตรงนี้หมายถึงฮาร์ดแวร์พิเศษที่รวม CPU กับ RAM เข้าด้วยกันหรือไม่
หากอ้างถึงงานวิจัยเร่งความเร็วรุ่นเก่าที่แสดงการปรับปรุง 19 เท่าเมื่อเทียบกับ DRAM + GPU: “เนื่องจากการทำ MAC ครองสัดส่วนหลักของเวลาในการรันงานแมชชีนเลิร์นนิงส่วนใหญ่ เราจึงเสนอการคูณภายใน subarray และการสะสมผลภายใน bank การคูณจะประมวลผลด้วยวิธีแบบอิงคอลัมน์ โดยทำ AND และการบวก และมี area overhead เพิ่มขึ้นไม่ถึง 1%”
https://arxiv.org/pdf/2105.03736
มีวิธีไหนที่จะอ่านคอนเทนต์บน Arxiv ให้ อ่านง่ายขึ้น ไหม?
ทุกครั้งที่เข้าเว็บนั้นจะงงว่ามันมีอินเทอร์เฟซหรือเปล่า แล้วก็หลงทาง สุดท้ายมักออกมาก่อนจะไปถึงเนื้อหา
สำหรับอ่านงานเป็นรายฉบับ นี่น่าจะเป็นวิธีที่ดีที่สุด และก็มีฟรอนต์เอนด์ของ Arxiv อยู่ไม่กี่ตัว เช่น https://arxiv-sanity-lite.com/