พื้นฐาน AI
NPU คืออะไร? คำอธิบายหน่วยประมวลผลประสาทเทียม
หน่วยประมวลผลประสาทเทียม (NPU) คือเครื่องเร่งประมวลผลเฉพาะที่ออกแบบมาเพื่อดำเนินการปฏิบัติการเครือข่ายประสาทเทียมทั่วไปอย่างมีประสิทธิภาพ ในโทรศัพท์, คอมพิวเตอร์, ยานพาหนะ, กล้องถ่ายรูป, และระบบฝังตัว มันสามารถรันงาน AI ที่รองรับด้วยพลังงานต่ำกว่า หรือปลดปล่อย CPU และ GPU ให้ทำงานอื่นได้
NPU เป็นคำศัพท์กว้างในอุตสาหกรรม ไม่ได้หมายถึงสถาปัตยกรรมเดียวที่เป็นสากล ประสิทธิภาพขึ้นอยู่กับตัวดำเนินการที่รองรับ, รูปแบบตัวเลข, หน่วยความจำ, คอมไพเลอร์และรันไทม์, ขีดจำกัดความร้อน, และส่วนของแอปพลิเคชันที่สามารถทำงานบนเครื่องเร่งได้
ประเด็นสำคัญ
- 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 ทั้งหมดเป็นส่วนตัวหรือไม่?
ไม่. มันทำให้การประมวลผลเกิดขึ้นภายในอุปกรณ์ แต่แอปพลิเคชันอาจยังส่งข้อมูลหรือผลลัพธ์ไปยังบริการคลาวด์ ความเป็นส่วนตัวขึ้นอยู่กับสถาปัตยกรรมและนโยบายโดยรวม












