1 คะแนน โดย GN⁺ 2024-09-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

LLMs ที่เร่งด้วยฮาร์ดแวร์: การสำรวจและเปรียบเทียบแบบครอบคลุม

  • LLM ได้กลายเป็นเครื่องมือทรงพลังในงานประมวลผลภาษาธรรมชาติ และกำลังปฏิวัติวงการนี้ด้วยความสามารถในการเข้าใจและสร้างข้อความที่คล้ายมนุษย์
  • งานวิจัยนี้สำรวจอย่างครอบคลุมถึงความพยายามวิจัยหลายด้านในการเร่งเครือข่าย Transformer สำหรับโมเดลภาษาขนาดใหญ่โดยใช้อุปกรณ์เร่งฮาร์ดแวร์

เฟรมเวิร์กและการเปรียบเทียบ

  • นำเสนอเฟรมเวิร์กที่เสนอไว้ และทำการเปรียบเทียบทั้งเชิงคุณภาพและเชิงปริมาณในด้านเทคโนโลยี แพลตฟอร์มประมวลผล (FPGA, ASIC, In-Memory, GPU) การเพิ่มความเร็ว ประสิทธิภาพด้านพลังงาน สมรรถนะ (GOPs) และประสิทธิภาพด้านพลังงาน (GOPs/W)
  • ความท้าทายสำคัญคือแต่ละสคีมที่นำเสนอถูกนำไปใช้งานบนเทคโนโลยีกระบวนการที่แตกต่างกัน ทำให้การเปรียบเทียบอย่างเป็นธรรมทำได้ยาก
  • ผลงานหลักของงานวิจัยนี้คือการประเมินผลลัพธ์ด้านสมรรถนะและประสิทธิภาพพลังงานบนเทคโนโลยีเดียวกัน เพื่อให้สามารถเปรียบเทียบอย่างเป็นธรรมได้

การทดลองและผลลัพธ์

  • มีการนำบางส่วนของ LLMs ไปใช้งานบนชิป FPGA หลายตัว เพื่อประเมินผลลัพธ์บนเทคโนโลยีกระบวนการเดียวกันและเปรียบเทียบสมรรถนะอย่างเป็นธรรม

สรุปโดย GN⁺

  • งานวิจัยนี้นำเสนอการสำรวจแบบครอบคลุมเกี่ยวกับการเร่งฮาร์ดแวร์สำหรับโมเดลภาษาขนาดใหญ่ (LLMs)
  • เปรียบเทียบสมรรถนะและประสิทธิภาพด้านพลังงานบนแพลตฟอร์มประมวลผลที่หลากหลาย เพื่อให้สามารถเปรียบเทียบได้อย่างเป็นธรรม
  • ใช้การทดลองบนชิป FPGA เพื่อประเมินผลลัพธ์บนเทคโนโลยีเดียวกัน
  • อาจเป็นประโยชน์สำหรับผู้ที่สนใจการปรับปรุงสมรรถนะของ LLMs ในสาขาการประมวลผลภาษาธรรมชาติ
  • โครงการอื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ ตัวเร่ง GPU ของ NVIDIA และ TPU ของ Google

1 ความคิดเห็น

 
GN⁺ 2024-09-08
ความคิดเห็นใน 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...

    • ความพยายามแบบนี้ส่วนใหญ่ล้มเหลวในตลาด และมีสรุปรายการไว้ที่นี่: https://news.ycombinator.com/item?id=41069685
      ถึงอย่างนั้นก็ชอบผลิตภัณฑ์ที่มาใน รูปแบบโมดูล RAM และมีราคาถูก แบบนั้นนึกภาพได้เลยว่าจะเสียบเต็ม ๆ ลงบนบอร์ด 1U แล้วผูกเข้าด้วยกันด้วย interconnect ความเร็วสูง หรือไม่ก็ยัดเต็มบนการ์ด PCI ไปเลย
    • อาจจะจริงก่อนปี 2018 แต่หลังจากนั้น 400GbE Ethernet กลายเป็น interconnect ที่ถูกนำไปใช้เร็วที่สุด และตอนนี้ก็มี interconnect ระดับ 1.6Tbit แล้ว
      PCI-e V4 ผ่านไปเร็วมากจนเหมือนมีอายุแค่ราว 2 ปี และ NVMeOF ก็ขยายตัวได้ดีไปพร้อมกับสมรรถนะของ fabric ปัจจุบัน H100 DGX มี interconnect 400GB/s
    • สุดท้ายแล้ว memristor กับคำสัญญาว่าหน่วยความจำจะอยู่ข้าง ๆ CPU ไปถึงไหนแล้วก็ไม่รู้
    • ใช่เลย Samsung's Dr. Jung Bae Lee ก็พูดคล้าย ๆ กันเมื่อไม่นานมานี้
      “การเติบโตอย่างรวดเร็วของโมเดล 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

    • ฟังดูคล้าย GA144 chip ที่สร้างโดยผู้คิดค้น Forth
    • ทำให้นึกถึง TPU
  • เอกสารที่เกี่ยวข้อง: 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 ถ้าได้เห็นความต่างของสถาปัตยกรรมในเชิงภาพก็น่าจะสนุกดี

    • หรือมันจะคล้ายกับการดู static noise เฉย ๆ?
    • Google ไม่มีเครื่องมือไว้ดูสถานะ activation ของเมทริกซ์เหรอ? น่าจะชื่อ Gemma Scope
  • ทุกวันนี้คอขวดคือ การย้ายหน่วยความจำ และนั่นคือเหตุผลที่ HBM แพง ดีไซน์ของ Nvidia ก็ถูกปรับให้เหมาะกับหน่วยความจำซึ่งเป็นคอขวดจริง ทั้งในระดับชิปและระดับระบบ

    • สงสัยว่าทำไม GPU ทุกตัวถึงยังไม่ย้ายไปใช้ HBMx กันหมด
      ในความเป็นจริงกลับไม่ค่อยเห็น
  • สถาปัตยกรรมไฮบริด FPGA + ASIC + in-memory จะมีบทบาทในด้านความสามารถในการขยายและความยืดหยุ่นได้หรือไม่? FPGA มีจุดเด่นเรื่องความยืดหยุ่น, ASIC มีจุดเด่นเรื่องประสิทธิภาพ, และ in-memory มีจุดเด่นเรื่องประสิทธิภาพพลังงาน จึงน่าสงสัยว่าการผสานทั้งหมดนี้เข้าด้วยกันแบบไฮบริดอาจช่วยดันประสิทธิภาพของ LLM ให้สูงขึ้นได้อีก

    • โดยปกติจะเริ่มจาก FPGA + memory ก่อน แล้วเมื่อจับจังหวะที่เหมาะสมซึ่งตลาดเริ่มมีปริมาณมากพอ ก็จะเปลี่ยน FPGA เป็น ASIC เพื่อตอบโจทย์ด้านประสิทธิภาพและลดต้นทุน ส่วนบริษัทใหญ่ ๆ มักจะไป ASIC ตั้งแต่แรก
  • in-memory ดูเหมือนจะมาถูกทางไม่ใช่แค่ในแง่ประสิทธิภาพเท่านั้น การ สร้าง ASIC หรือโปรแกรม FPGA สำหรับโมเดลที่ต่อให้โชคดีก็อาจล้าสมัยในอีกไม่กี่เดือนข้างหน้า ฟังดูไม่ค่อยสมเหตุสมผลนัก

    • https://arxiv.org/pdf/2402.09709
    • ไม่ใช่ว่าโมเดลพื้นฐานเหล่านี้จะไม่มีการใช้ computation kernel ร่วมกันเลยเสียทีเดียว
  • มีงานวิจัยที่บอกว่าสามารถรัน LLM ด้วยพลังงานระดับหลอดไฟหนึ่งดวงได้
    https://arxiv.org/abs/2406.02528
    https://news.ucsc.edu/2024/06/matmul-free-llm.html

    • พร้อมโค้ดโอเพนซอร์สที่รันซ้ำได้บน GPU มาตรฐาน โดยอ้างว่า ลดการใช้หน่วยความจำลง 90%: https://github.com/ridgerchu/matmulfreellm
      แกนหลักคือใช้สองเทคนิคเพื่อหลีกเลี่ยงการคูณเมทริกซ์ อย่างแรกคือบังคับให้ตัวเลขทั้งหมดในเมทริกซ์มีได้เพียงสามค่า -1, 0, +1 เพื่อลดการคูณให้กลายเป็นการบวก อย่างที่สองคือซ้อนเมทริกซ์เข้าด้วยกันแล้วทำเฉพาะการคำนวณที่สำคัญ แทนที่จะคูณทุกองค์ประกอบทีละตัว
      ทีมวิจัยระบุว่าได้ใส่การคำนวณแบบอิงเวลาเข้าไปในการฝึกโมเดลเพื่อคงประสิทธิภาพของโครงข่ายประสาทไว้ และด้วยเหตุนี้เครือข่ายจึงมี “ความทรงจำ” ต่อข้อมูลสำคัญที่กำลังประมวลผล ซึ่งช่วยให้ประสิทธิภาพดีขึ้น
      บน GPU มาตรฐาน การใช้หน่วยความจำลดลงเหลือประมาณหนึ่งในสิบ และความเร็วเพิ่มขึ้นราว 25% อีกทั้งยังอาจเปิดทางให้รันอัลกอริทึมที่ความจุสูงสุดได้บนอุปกรณ์ที่มีหน่วยความจำจำกัดอย่างสมาร์ตโฟน ส่วนต้นแบบ FPGA ที่สร้างในเวลา 3 สัปดาห์ทำ throughput ได้เกินระดับที่มนุษย์อ่านได้โดยใช้พลังงานเพียง 13W ขณะที่ถ้าเป็น GPU จะต้องใช้ราว 700W จึงสรุปได้ว่าฮาร์ดแวร์เฉพาะทางมีประสิทธิภาพสูงกว่า GPU มากกว่า 50 เท่า
  • ไม่แน่ใจว่า in-memory ที่พูดถึงตรงนี้หมายถึงฮาร์ดแวร์พิเศษที่รวม CPU กับ RAM เข้าด้วยกันหรือไม่

    • คาดว่าน่าจะเป็นวิธีใส่ฮาร์ดแวร์ MAC ลงไปบน DRAM die ถ้าเป็น HBM แบบซ้อนชั้น ก็อาจจะอยู่บน base die ได้
      หากอ้างถึงงานวิจัยเร่งความเร็วรุ่นเก่าที่แสดงการปรับปรุง 19 เท่าเมื่อเทียบกับ DRAM + GPU: “เนื่องจากการทำ MAC ครองสัดส่วนหลักของเวลาในการรันงานแมชชีนเลิร์นนิงส่วนใหญ่ เราจึงเสนอการคูณภายใน subarray และการสะสมผลภายใน bank การคูณจะประมวลผลด้วยวิธีแบบอิงคอลัมน์ โดยทำ AND และการบวก และมี area overhead เพิ่มขึ้นไม่ถึง 1%”
      https://arxiv.org/pdf/2105.03736
    • โดยทั่วไป in-memory หมายถึงไม่ต้องดึงข้อมูลกลับขึ้นมาจากอุปกรณ์จัดเก็บอีกครั้ง
  • มีวิธีไหนที่จะอ่านคอนเทนต์บน Arxiv ให้ อ่านง่ายขึ้น ไหม?
    ทุกครั้งที่เข้าเว็บนั้นจะงงว่ามันมีอินเทอร์เฟซหรือเปล่า แล้วก็หลงทาง สุดท้ายมักออกมาก่อนจะไปถึงเนื้อหา

    • กด View PDF หรือ HTML (experimental) ที่มุมขวาบน ก็จะเข้าไปยังเนื้อหาหลักได้
    • มันเป็นเว็บพรีพับลิชงานวิจัย ดังนั้นโดยพื้นฐานทุกอย่างจะอยู่ในรูป PDF และช่วงหลังเพิ่งเพิ่ม HTML เข้ามา: https://arxiv.org/html/2409.03384v1
      สำหรับอ่านงานเป็นรายฉบับ นี่น่าจะเป็นวิธีที่ดีที่สุด และก็มีฟรอนต์เอนด์ของ Arxiv อยู่ไม่กี่ตัว เช่น https://arxiv-sanity-lite.com/
    • วันนี้ฉันก็เปิดลิงก์นี้แล้วคิดว่า “อ้อ มีแค่บทคัดย่อเอง งั้นออกดีกว่า” แม้จะเคยอ่านงานบน Arxiv มาก่อน แต่ดูจาก UI อย่างเดียวมันไม่ค่อยทำให้รู้สึกว่ามีเนื้อหาเต็มให้อ่าน