พื้นฐาน AI

NPU คืออะไร? คำอธิบายหน่วยประมวลผลประสาทเทียม

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

หน่วยประมวลผลประสาทเทียม (NPU) คือเครื่องเร่งประมวลผลเฉพาะที่ออกแบบมาเพื่อดำเนินการปฏิบัติการเครือข่ายประสาทเทียมทั่วไปอย่างมีประสิทธิภาพ ในโทรศัพท์, คอมพิวเตอร์, ยานพาหนะ, กล้องถ่ายรูป, และระบบฝังตัว มันสามารถรันงาน AI ที่รองรับด้วยพลังงานต่ำกว่า หรือปลดปล่อย CPU และ GPU ให้ทำงานอื่นได้

NPU เป็นคำศัพท์กว้างในอุตสาหกรรม ไม่ได้หมายถึงสถาปัตยกรรมเดียวที่เป็นสากล ประสิทธิภาพขึ้นอยู่กับตัวดำเนินการที่รองรับ, รูปแบบตัวเลข, หน่วยความจำ, คอมไพเลอร์และรันไทม์, ขีดจำกัดความร้อน, และส่วนของแอปพลิเคชันที่สามารถทำงานบนเครื่องเร่งได้

ประเด็นสำคัญ

  • NPU เน้นการทำงานของเมทริกซ์, เวกเตอร์, และเทนเซอร์ที่ใช้ข้อมูลซ้ำสูงและใช้พลังงานต่ำ
  • ค่า TOPS สูงสุดไม่ใช่มาตรฐานการทดสอบแอปพลิเคชันแบบต้นถึงปลาย และอาจสมมติความแม่นยำหรือความพรุนเฉพาะ
  • โมเดลอาจต้องการการแปลง, การควอนไทซ์, การแบ่งกราฟ, และการสำรองสำหรับการดำเนินการที่ไม่รองรับ
  • เปรียบเทียบความหน่วง, ปริมาณการทำงาน, พลังงาน, หน่วยความจำ, คุณภาพ, ความเป็นส่วนตัว, และการพกพาบนงานจริง
What Is an NPU? Neural Processing Units Explained workflow diagram
คุณค่าของ NPU มาจากการดำเนินการแบบต้นถึงปลายที่มีประสิทธิภาพ ไม่ใช่ตัวเลข TOPS สูงสุดเพียงอย่างเดียว

บทบาทของ CPU, GPU, และ NPU

CPU มีความเชี่ยวชาญในกระบวนการควบคุมทั่วไปและความเข้ากันได้กว้างขวาง GPU ให้การประมวลผลแบบขนานที่โปรแกรมได้และระบบซอฟต์แวร์ขนาดใหญ่ NPU เชี่ยวชาญการดำเนินการเทนเซอร์ซ้ำ ๆ และอาจรวมหน่วยความจำภายใน, อาเรย์การคูณ-บวก, และการไหลของข้อมูลที่ปรับให้เหมาะกับการสรุปผล (inference)

ระบบแบบผสมผสานจะจัดตารางส่วนต่าง ๆ ตามที่เหมาะสมที่สุด สิ่งนี้สำคัญสำหรับ edge AI ที่พลังงานต่อเนื่องและการตอบสนองอาจสำคัญกว่าปริมาณการทำงานสูงสุดของศูนย์ข้อมูล

การคอมไพล์และการดำเนินการโมเดล

กราฟของเฟรมเวิร์กจะถูกแปลงเป็นตัวแทนระดับกลาง, ปรับประสิทธิภาพ, ควอนไทซ์ตามความเหมาะสม, และคอมไพล์สำหรับตัวดำเนินการที่รองรับ รันไทม์อาจแบ่งกราฟเพื่อให้ชั้นที่ไม่รองรับทำงานบน CPU หรือ GPU

การโอนย้ายระหว่างโปรเซสเซอร์อาจทำให้ประโยชน์จากเครื่องเร่งหายไป รูปร่างคงที่, การจัดวาง, ความแม่นยำ, การทำแบตช์, และการใช้หน่วยความจำซ้ำกันส่งผลต่อประสิทธิภาพ ทดสอบผลลัพธ์ที่คอมไพล์แล้วเนื่องจากคุณภาพของโมเดล deep-learning อาจเปลี่ยนแปลงหลังการแปลง

ทำความเข้าใจ TOPS และการอ้างอิงประสิทธิภาพ

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

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

การแลกเปลี่ยนของ AI บนอุปกรณ์

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

NPU สามารถรองรับแอปพลิเคชันด้านภาพ, เสียง, ภาษา, และเซนเซอร์ รวมถึงงานที่เกี่ยวข้องกับ TinyML นักพัฒนาควรออกแบบการสำรองที่ราบรื่นและสื่อสารเมื่อการประมวลผลออกจากอุปกรณ์

สถาปัตยกรรม NPU และการดำเนินการที่รองรับ

NPU เร่งการดำเนินการเทนเซอร์โดยใช้อาเรย์ของหน่วยคูณ-บวก, หน่วยความจำภายใน, การจัดตารางการไหลของข้อมูล, และรูปแบบตัวเลขเฉพาะ การเก็บน้ำหนักและการกระตุ้นใกล้กับการคำนวณช่วยลดการเคลื่อนย้ายข้อมูลที่มีค่าอุปกรณ์จริงจะแตกต่างกันในเรื่องการรองรับตัวดำเนินการ, โครงสร้างหน่วยความจำ, ความแม่นยำ, ความพรุน, ความสามารถในการโปรแกรม, และวิธีที่งานถูกแบ่งร่วมกับ CPU และ GPU

ประสิทธิภาพสูงสุดมักถูกโฆษณาเป็น TOPS แต่ TOPS ไม่ระบุความแม่นยำ, การใช้ทรัพยากร, ขีดจำกัดหน่วยความจำ, ความครอบคลุมของตัวดำเนินการ, หรือความหน่วงต้นถึงปลาย โปรเซสเซอร์สองตัวที่มีตัวเลขหัวข้อเดียวกันอาจทำงานแตกต่างกันบนโมเดลเดียวกัน ควรทำการ benchmark โมเดลที่คอมไพล์แล้ว, ขนาดแบตช์และลำดับที่เป็นจริง, การเตรียมข้อมูล, การโอนย้าย, และโหมดพลังงาน

NPU มีประสิทธิภาพสำหรับงานประสาทเทียมที่รองรับ เช่น การมองเห็น, การพูด, การลดสัญญาณรบกวน, เอฟเฟกต์พื้นหลัง, และโมเดลภาษาแบบกะทัดรัด ตัวดำเนินการที่ไม่รองรับอาจสำรองไปยัง CPU หรือ GPU ทำให้เกิดการโอนย้ายและความหน่วงที่ไม่คาดคิด ตรวจสอบรายงานของคอมไพเลอร์และรอยเท้ารันไทม์เพื่อยืนยันการจัดตำแหน่ง แทนการสันนิษฐานว่ากราฟทั้งหมดใช้เครื่องเร่ง

การแปลงโมเดล, การควอนไทซ์, และการปรับใช้

การปรับใช้มักเริ่มจากเฟรมเวิร์กการฝึกผ่านการส่งออก, การปรับประสิทธิภาพกราฟ, การควอนไทซ์, การคอมไพล์ของผู้ผลิต, และการรวมเข้ากับรันไทม์ รูปร่างคงที่และตัวดำเนินการทั่วไปเป็นสิ่งที่ง่ายที่สุดในการเร่งประมวลผล การไหลของการควบคุมแบบไดนามิก, เคอร์เนลที่กำหนดเอง, เทนเซอร์กลางขนาดใหญ่, และรูปแบบการทำ normalization หรือ attention ที่ไม่รองรับอาจต้องการการเปลี่ยนแปลงกราฟหรือการดำเนินการแบบผสม

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

การสรุปผลบนอุปกรณ์ช่วยปรับปรุงความหน่วง, การทำงานออฟไลน์, และความเป็นส่วนตัวโดยจำกัดการโอนย้ายข้อมูล แต่ยังต้องการโมเดลที่ปลอดภัย, การเข้าถึงข้อมูลที่คำนึงถึงสิทธิ์, และกลไกการอัปเดต ปกป้องไฟล์โมเดลตามความเหมาะสม, ลงนามอัปเดต, เปิดเผยการสำรองคลาวด์, และตรวจสอบให้แน่ใจว่า telemetry ไม่ทำให้เกิดการเปิดเผยความเป็นส่วนตัวที่สถาปัตยกรรมภายในตั้งใจลดลง

การประเมินประสิทธิภาพและการแลกเปลี่ยนระดับระบบ

วัดความหน่วงการเริ่มต้นแบบเย็นและสภาวะคงที่, ปริมาณการทำงาน, พลังงานต่อการสรุปผล, หน่วยความจำ, พฤติกรรมความร้อน, ความแม่นยำ, และผลกระทบต่อแบตเตอรี่ การทดสอบระยะยาวเปิดเผยการจำกัดที่การทดสอบสั้นอาจพลาด รวมการเตรียมข้อมูลและการประมวลผลหลังเนื่องจากการปรับขนาด, การทำ tokenization, การถอดรหัส, หรือการคัดลอกข้อมูลอาจครอบงำเครื่องเร่งที่โดยปกติเร็ว

การจัดตารางเป็นปัญหาระบบ CPU จัดการตรรกะของแอปพลิเคชัน, GPU อาจทำการเรนเดอร์หรือดำเนินชั้นที่ไม่รองรับ, และ NPU รันกราฟที่เข้ากันได้ งานกล้อง, เสียง, แสดงผล, และ AI ที่ทำงานพร้อมกันแข่งขันกันเพื่อแบนด์วิธหน่วยความจำและพลังงาน ทดสอบสถานการณ์ผู้ใช้แบบเต็มแทนการทดสอบโมเดลแยกในเครื่องมือของผู้ผลิต

การพกพายังคงจำกัดระหว่างคอมไพเลอร์และรันไทม์ ควรเลือกใช้รูปแบบโมเดลมาตรฐานเมื่อทำงานได้, แยกโค้ดเฉพาะผู้ผลิตไว้หลังอินเทอร์เฟซ, รักษาผลลัพธ์อ้างอิง, และรักษาการครอบคลุมการทดสอบอุปกรณ์ เลือกฮาร์ดแวร์โดยอิงจากงานที่ตรวจสอบแล้ว, การสนับสนุนซอฟต์แวร์, ระยะเวลาการอัปเดต, และต้นทุนระบบทั้งหมด—not เพียงสเปคของเครื่องเร่งเดียว

ตัวอย่างการทำงาน: การปรับใช้โมเดลภาพบนแล็ปท็อปที่มี NPU

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

การทำ benchmark วัดการเตรียมข้อมูลจากกล้อง, การดำเนินโมเดล, การผสาน, หน่วยความจำ, การเริ่มต้นแบบเย็น, ความหน่วงในสภาวะคงที่, ความเสถียรของเฟรม, พลังงาน, และการจำกัดความร้อนระหว่างการสนทนาวิดีโอจริง ผลลัพธ์ถูกเปรียบเทียบกับเส้นทางของ CPU และ GPU ที่คุณภาพเอาต์พุตเท่ากัน แอปพลิเคชันใช้การตรวจจับความสามารถและการสำรองที่ทดสอบแล้ว แทนการสันนิษฐานว่าเครื่องเร่งมีอยู่หรือรองรับกราฟเดียวกันหลังการอัปเดตไดรเวอร์

การทดสอบการปล่อยครอบคลุมรุ่นอุปกรณ์, เวอร์ชันระบบปฏิบัติการและไดรเวอร์, งานที่ทำพร้อมกัน, โหมดแบตเตอรี่, และอินพุตที่ผิดรูป แพ็กเกจโมเดลถูกลงนามและกำหนดเวอร์ชัน; telemetry บันทึกประสิทธิภาพและความล้มเหลวโดยไม่เก็บวิดีโอที่ไม่จำเป็น ผลิตภัณฑ์อธิบายเมื่อการประมวลผลอยู่บนอุปกรณ์และเมื่อใช้ฟีเจอร์คลาวด์ NPU ได้รับการยอมรับโดยการปรับปรุงประสบการณ์โดยรวมภายใต้ข้อจำกัดที่เป็นจริง ไม่ได้เพียงแค่ทำ TOPS หรือ benchmark เคอร์เนลแยก

รายการตรวจสอบการนำไปใช้เชิงปฏิบัติ

แปลงแนวคิดให้เป็นกระบวนการทำงานที่จำกัดและทดสอบได้: model → convert → compile → schedule → run → measure ตั้งผู้รับผิดชอบ, บันทึกข้อมูลและการพึ่งพา, สร้างฐานเปรียบเทียบอย่างง่าย, กำหนดเกณฑ์การยอมรับและหยุด, ทดสอบความล้มเหลวที่เป็นตัวแทน, และกำหนดการเฝ้าติดตาม, การย้อนกลับ, และการตรวจสอบก่อนขยายขอบเขต บันทึกเวอร์ชันและสมมติฐานเพื่อให้ทีมอื่นสามารถทำซ้ำผลลัพธ์และเข้าใจการเปลี่ยนแปลง

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

  • ฮาร์ดแวร์: เครื่องยนต์เทนเซอร์, หน่วยความจำภายใน, และการไหลของข้อมูล.
  • ซอฟต์แวร์: คอมไพเลอร์, รันไทม์, และการครอบคลุมตัวดำเนินการ.
  • งานประมวลผล: คุณภาพ, ความหน่วง, พลังงาน, และการพกพา.

คำถามที่พบบ่อย

NPU เร็วกว่า GPU หรือไม่?

ขึ้นอยู่กับโมเดล, ความแม่นยำ, การรองรับตัวดำเนินการ, ขนาดแบตช์, ขีดจำกัดพลังงาน, และซอฟต์แวร์ NPU อาจมีประสิทธิภาพสูงกว่าสำหรับงานบนอุปกรณ์ที่รองรับ ในขณะที่ GPU เร็วกว่า หรือมีความยืดหยุ่นมากกว่าในกรณีอื่น

NPU ทำให้ข้อมูล AI ทั้งหมดเป็นส่วนตัวหรือไม่?

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

แหล่งอ้างอิงหลัก

อองตวนเป็นผู้นำที่มีวิสัยทัศน์และเป็นหุ้นส่วนผู้ก่อตั้งของ Unite.AI โดยมีความหลงใหลที่ไม่สั่นคลอนในการ塑造และ推廣อนาคตของ AI และหุ่นยนต์ เขาเป็นผู้ประกอบการซีรีย์ที่เชื่อว่า AI จะมีผลกระทบต่อสังคมมากเท่ากับไฟฟ้า และมักจะพูดถึงศักยภาพของเทคโนโลยีที่เป็นนวัตกรรมและ AGI

ในฐานะ นักอนาคต เขาได้ทำการสำรวจว่านวัตกรรมเหล่านี้จะเปลี่ยนแปลงโลกของเราอย่างไร นอกจากนี้เขายังเป็นผู้ก่อตั้ง Securities.io ซึ่งเป็นแพลตฟอร์มที่มุ่งเน้นในการลงทุนในเทคโนโลยีที่ทันสมัยที่สุดซึ่งกำลังเปลี่ยนแปลงอนาคตและเปลี่ยนแปลงอุตสาหกรรมทั้งหมด