18 คะแนน โดย GN⁺ 2023-08-16 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • LLaMA.cpp ซึ่งเขียนโค้ดอนุมานของ LLaMa ขึ้นใหม่ด้วย C++ ล้วน ทำให้สามารถรันได้บนฮาร์ดแวร์หลากหลาย เช่น Pixel5, MacBook Pro M2, Raspberry Pi เป็นต้น
  • โดยทั่วไปโมเดลขนาดใหญ่ต้องใช้ GPU ราคาแพง แล้วสิ่งนี้เป็นไปได้อย่างไร?
  • GPU เหมาะกับดีปเลิร์นนิงเพราะมีแบนด์วิดท์หน่วยความจำและความสามารถในการคำนวณสูง แต่แบนด์วิดท์หน่วยความจำมักเป็นคอขวดของการอนุมาน
    • เพราะสำหรับการคำนวณจริง ข้อมูลต้องถูกย้ายจากหน่วยความจำ HBM (RAM) ไปยังหน่วยความจำบนชิป
  • Quantization (การควอนไทซ์) มีความสำคัญต่อการใช้ RAM สำหรับน้ำหนักของ LLaMa
    • หากลดความแม่นยำลง ก็สามารถลดปริมาณหน่วยความจำที่ต้องใช้ในการเก็บโมเดลได้อย่างมาก
    • การควอนไทซ์ช่วยลดปริมาณหน่วยความจำที่ต้องใช้ในการเก็บโมเดล ทำให้สามารถใส่โมเดลลงในหน่วยความจำของ GPU มาตรฐานในดาต้าเซ็นเตอร์และ GPU สำหรับผู้บริโภคระดับสูงได้
  • แบนด์วิดท์หน่วยความจำเป็นปัจจัยจำกัดสำหรับงานเกือบทั้งหมดที่เกี่ยวข้องกับการสุ่มตัวอย่างของทรานส์ฟอร์เมอร์
  • เมื่อใช้วิธีอย่างการควอนไทซ์เพื่อลดความต้องการหน่วยความจำ การให้บริการโมเดลก็ทำได้ง่ายขึ้นมาก
  • นี่จึงเป็นอีกเหตุผลหนึ่งของ distillation หรือการ "ฝึกโมเดลขนาดเล็กกว่าให้นานขึ้น"

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

 
breezymind 2023-08-17

ผมได้ลองทดสอบ embedding โดยเรียกใช้ llama2 ด้วย LlamaCpp บนเครื่องโลคัล

https://breezymind.com/llamacpp-embedding

 
xguru 2023-08-17

คอมเมนต์แรกใน HN มีประโยชน์ดีนะ

"เผื่อใครกำลังสงสัย การทำ quantization ให้โมเดลมีต้นทุนที่ต้องแลก https://oobabooga.github.io/blog/posts/perplexities/

โดยพื้นฐานแล้วความแม่นยำจะลดลงเล็กน้อย และอาจได้คำตอบแปลก ๆ รวมถึงมีโอกาสมากขึ้นที่จะตอบนอกเรื่องหรือเกิดอาการหลอน แต่ยิ่งมีพารามิเตอร์มาก การสูญเสียคุณภาพก็ยิ่งน้อยลง ดังนั้นถ้าขนาดโมเดลใหญ่มาก ความต่างนั้นก็แทบมองข้ามได้เลย นอกจากนี้ นี่ยังเป็นแค่ต้นทุนของการทำ inference เท่านั้น การฝึกเป็นอีกเรื่องโดยสิ้นเชิงและต้องใช้พลังประมวลผลมากกว่ามาก

ถึงอย่างนั้น ตอนนี้เราก็กำลังเห็นประสิทธิภาพระดับ GPT3 จากเซิร์ฟเวอร์แร็กเพียงหนึ่งชุดแล้ว ซึ่งถือว่าน่าทึ่งมากเมื่อคิดว่าเพียง 1 ปีก่อน AI แบบนี้ยังแทบเหมือนเวทมนตร์ และรันได้แค่ในดาต้าเซ็นเตอร์ขนาดใหญ่เท่านั้น ในความเห็นอันไม่รู้อะไรมากของผม แบนด์วิดท์และขนาดหน่วยความจำน่าจะเพิ่มได้ง่ายกว่าพลังคอมพิวต์ดิบ ดังนั้นในไม่ช้าเราอาจมีอุปกรณ์ที่ "ฉลาด" จริง ๆ ก็ได้"

 
GN⁺ 2023-08-16
ความคิดเห็นจาก Hacker News
  • บทความเกี่ยวกับต้นทุนของการควอนไทซ์โมเดล การสูญเสียความแม่นยำที่ตามมา และความเป็นไปได้ที่จะเกิดการตอบสนองที่ผิดปกติ อย่างไรก็ตาม ยิ่งโมเดลมีพารามิเตอร์มาก ความสูญเสียนี้ก็ยิ่งมีนัยสำคัญน้อยลง
  • บทความที่เน้นประสิทธิภาพอันโดดเด่นของ GPT3 ซึ่งตอนนี้สามารถทำงานได้บนเซิร์ฟเวอร์แร็กเพียงตัวเดียว นับเป็นการปรับปรุงครั้งใหญ่เมื่อเทียบกับ AI ที่เมื่อปีที่แล้วยังต้องใช้ดาต้าเซ็นเตอร์ขนาดใหญ่
  • ข้อความที่ชี้ให้เห็นว่าการสร้างโทเค็นเป็นแบบลำดับและถูกจำกัดด้วยแบนด์วิดท์ แต่การใส่พรอมป์ต์ไม่เป็นเช่นนั้น และสามารถรันได้ด้วยแบตช์ขนาด 512+
  • ตอนนี้ Llama.cpp มีการควอนไทซ์ประมาณ ~4 บิตที่แทบไม่ส่งผลต่อความซับซ้อนมากนัก ส่วน Q6_K มีความซับซ้อนใกล้เคียงกับ FP16 แต่มีขนาดเล็กกว่ามาก
  • เวทมนตร์ที่แท้จริงของ Llama.cpp คือการแบ่งโมเดล ซึ่งทำให้ discrete GPU ขนาดเล็กสามารถออฟโหลดการใส่พรอมป์ต์และบางส่วนของการอนุมานโมเดลได้ทั้งหมด สิ่งนี้มีความโดดเด่นในวงการ generative AI
  • GPU backend (OpenCL, Metal, CUDA, และในไม่ช้า ROCm กับ Vulkan) คือวิธีที่ควรเลือกใช้ในการรัน Llama.cpp หากไม่มีสิ่งเหล่านี้ ก็แทบเป็นไปไม่ได้ที่จะรัน 70B บนเดสก์ท็อป หรือ 33B บนโน้ตบุ๊กที่มี RAM 16GB
  • โปรเจกต์นี้ได้รับคำชมจากการขยายไปใช้กับ Go, Python และรันไทม์อื่น ๆ ได้ง่าย จึงมีการสร้างเครื่องมือที่ใช้ดึงและรันหลายโมเดลด้วย Go และให้บริการผ่าน REST API
  • การรันการอนุมานบน CPU สมัยใหม่ที่มี AVX2 นั้นช้ากว่า GPU แต่มีข้อดีคือสามารถมีพื้นที่ RAM แบบต่อเนื่องก้อนใหญ่เพียงก้อนเดียวได้ อย่างไรก็ตาม การไม่มีตัวเลือกให้ควอนไทซ์เป็น 4 บิตและรันการอนุมานด้วยอย่างอื่นที่ไม่ใช่ fp32 บน CPU x86_64 ถือเป็นข้อเสียใหญ่
  • บทความกล่าวถึงการจำลองได้สำเร็จของชุดข้อมูล 13B บน Pi4 8gig เพียงเครื่องเดียว และชุดข้อมูล 65B บนโหนด pi4 สามตัว แสดงให้เห็นถึงการเข้าถึงเทคนิคนี้ได้ง่าย
  • บทความถูกวิจารณ์ว่าใช้หน่วยแบบคร่าว ๆ เกินไปเมื่อพูดถึงตัวเลขด้าน latency
  • บทความตั้งคำถามว่าทำไมผู้ผลิตชิปจึงใส่หน่วยฟังก์ชันจำนวนมากลงในชิป ทั้งที่ภาระงานส่วนใหญ่ถูกจำกัดด้วยหน่วยความจำ
  • บทความได้รับคำชมว่ามีเนื้อหาที่เป็นเอกลักษณ์ ซึ่งมักหาไม่ได้ทั่วไปนอก Hacker News
  • ข้อความนี้อภิปรายถึงข้อจำกัดของการสร้างโทเค็นที่ติดเพดานหน่วยความจำใน transformer decoder และคาดหวังโมเดลในอนาคตที่เป็นมิตรกับฮาร์ดแวร์มากขึ้น
  • บทความตั้งข้อสงสัยว่าทำไมฮาร์ดแวร์เฉพาะทางจึงถูกออกแบบมาในลักษณะนั้น เมื่อคำนึงถึงคอขวดสำคัญด้านแบนด์วิดท์หน่วยความจำ และการเปลี่ยนแปลงเชิงกระบวนทัศน์ของซอฟต์แวร์จะเปลี่ยนสมดุลนี้ได้หรือไม่