ONNX และการทำงานร่วมกันของโมเดล
ONNX (Open Neural Network Exchange) เป็นรูปแบบมาตรฐานแบบเปิดสำหรับการนำเสนอโมเดลการเรียนรู้ของเครื่อง เพื่อให้สามารถย้ายไปมาระหว่างเฟรมเวิร์กและรันไทม์ได้อย่างอิสระ
ภาพรวม
It lets you train a model in one tool, like PyTorch, and deploy it in another environment without rewriting it.
เจาะลึก
เฟรมเวิร์กที่แตกต่างกัน (PyTorch, TensorFlow, scikit-learn) จัดเก็บโมเดลในรูปแบบที่เข้ากันไม่ได้ ซึ่งทำให้การปรับใช้เป็นเรื่องที่ยุ่งยาก ONNX เปิดตัวในปี 2560 โดย Microsoft และ Facebook และปัจจุบันอยู่ภายใต้ Linux Foundation แก้ไขปัญหานี้ด้วยการกำหนดรูปแบบไฟล์ทั่วไปและชุดตัวดำเนินการมาตรฐาน (เช่น Conv, MatMul, Relu) ที่อธิบายโมเดลเป็นกราฟการคำนวณ คุณส่งออกโมเดลที่ผ่านการฝึกอบรมเป็นไฟล์ .onnx และรันไทม์ที่เข้ากันได้ก็สามารถโหลดโมเดลดังกล่าวได้ จากนั้นรันไทม์ ONNX จะประมวลผลกราฟอย่างมีประสิทธิภาพบนฮาร์ดแวร์ที่หลากหลาย โดยใช้การเพิ่มประสิทธิภาพ เช่น การรวมตัวดำเนินการและการหาปริมาณ และการคำนวณการกำหนดเส้นทางไปยังแบ็กเอนด์ เช่น CPU, NVIDIA GPU (ผ่าน TensorRT) หรือตัวเร่งความเร็วแบบพิเศษ การดำเนินการนี้จะแยกการฝึกอบรมโมเดลออกจากการใช้งาน
ข้อมูลเชิงลึกทางเทคนิค
โมเดล ONNX คือกราฟการคำนวณแบบอนุกรม โดยโหนดคือตัวดำเนินการที่ดึงมาจากชุดตัวดำเนินการที่มีเวอร์ชัน (opset) และขอบจะมีเทนเซอร์ที่มีรูปร่างและประเภทที่กำหนดไว้ ผู้ส่งออกติดตามหรือเขียนสคริปต์โมเดลของคุณเพื่อบันทึกกราฟนี้ ในการอนุมาน ONNX Runtime จะแบ่งพาร์ติชันกราฟระหว่าง 'ผู้ให้บริการการดำเนินการ' (CPU, CUDA, TensorRT ฯลฯ) โดยแต่ละรายจะจัดการตัวดำเนินการที่สนับสนุนได้ดีที่สุด และใช้การปรับให้เหมาะสมระดับกราฟ เช่น การพับอย่างต่อเนื่องและการรวมโหนดเพื่อเร่งความเร็วของสิ่งต่างๆ
ผลกระทบเชิงกลยุทธ์
ต้นทุนและงบประมาณ
การตัดสินใจด้านสถาปัตยกรรมขับเคลื่อนประสิทธิภาพและต้นทุนการดำเนินงานเป็นเวลาหลายปี
การตัดสินใจที่ชัดเจนยิ่งขึ้น
การศึกษาด้านเทคนิคช่วยให้ทีมเลือกกลุ่มที่เหมาะสม ไม่ใช่แค่กลุ่มใหม่ล่าสุด
การควบคุมคุณภาพ
ตัวเลือกทางวิศวกรรมที่ดีกว่าจะช่วยลดเหตุการณ์ด้านความน่าเชื่อถือในการผลิต
อนาคตของ ONNX และการทำงานร่วมกันของโมเดล
ONNX กำลังประสานตัวเองเป็นภาษากลางสำหรับการปรับใช้โมเดล โดยเฉพาะอย่างยิ่งสำหรับการให้บริการ Edge และข้ามแพลตฟอร์ม คาดหวังความครอบคลุมของผู้ให้บริการที่กว้างขึ้นสำหรับโมเดลภาษาขนาดใหญ่และหม้อแปลงไฟฟ้า การสนับสนุนที่เข้มงวดมากขึ้นสำหรับการอนุมานเชิงปริมาณและบิตต่ำ และการบูรณาการที่ลึกยิ่งขึ้นกับรันไทม์ของผู้จำหน่ายฮาร์ดแวร์ เมื่อระบบนิเวศของชิป AI เฉพาะทางเติบโตขึ้น รูปแบบที่เป็นกลางของผู้ขายอย่าง ONNX จะมีคุณค่ามากขึ้น โดยปล่อยให้ทีมสลับฮาร์ดแวร์ได้โดยไม่ต้องปรับโครงสร้างโมเดล และ ONNX Runtime ยังคงขยายไปสู่เป้าหมายมือถือและเว็บ (ผ่าน WebAssembly)
การใช้งานจริงในโลกแห่งความเป็นจริง
ส่งออกตัวแยกประเภทรูปภาพ PyTorch ไปยัง ONNX และรันด้วย ONNX Runtime บนเซิร์ฟเวอร์ที่ใช้งานจริง C++ โดยไม่มีการพึ่งพา Python
การปรับใช้โมเดลบนมือถือหรือเบราว์เซอร์ผ่าน ONNX Runtime Web (WebAssembly) สำหรับการอนุมานบนอุปกรณ์
เร่งความเร็วหม้อแปลงที่ส่งออกด้วย NVIDIA TensorRT ในฐานะผู้ให้บริการรันไทม์ ONNX เพื่อลดเวลาแฝง
การหาปริมาณโมเดล ONNX เป็น int8 เพื่อลดขนาดและเพิ่มความเร็วในการอนุมานบน Edge CPU
ความเสี่ยงและรั้ว
การเพิ่มประสิทธิภาพเกณฑ์มาตรฐานหนึ่งรายการสามารถซ่อนจุดอ่อนของระบบในวงกว้างได้
ต้นทุนโครงสร้างพื้นฐานและการบำรุงรักษามักถูกประเมินต่ำไป
ช่องว่างด้านความปลอดภัยและความสามารถในการสังเกตสามารถเพิ่มขึ้นได้เมื่อระบบมีความซับซ้อนมากขึ้น
แผนงานการดำเนินงาน
กำหนดเป้าหมายเวลาแฝง คุณภาพ และต้นทุนก่อนนำไปใช้งาน
เกณฑ์มาตรฐานภายใต้สภาวะโหลดและข้อมูลจริง
การตรวจสอบเครื่องมือเพื่อหาข้อผิดพลาด การเบี่ยงเบน และผลกระทบต่อผู้ใช้
เตรียมเส้นทางการย้อนกลับและการตอบสนองต่อเหตุการณ์ก่อนปรับขนาด
สำรวจต่อไป
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the ONNX and Model Interoperability quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
คำแนะนำต่อไป
การรวมโมเดล
คำถามที่พบบ่อย
What is ONNX and Model Interoperability?
ONNX (Open Neural Network Exchange) เป็นรูปแบบมาตรฐานแบบเปิดสำหรับการนำเสนอโมเดลการเรียนรู้ของเครื่อง เพื่อให้สามารถย้ายไปมาระหว่างเฟรมเวิร์กและรันไทม์ได้อย่างอิสระ ช่วยให้คุณฝึกโมเดลในเครื่องมือเดียว เช่น PyTorch และปรับใช้ในสภาพแวดล้อมอื่นโดยไม่ต้องเขียนใหม่
ONNX แก้ปัญหาหลักอะไรเป็นหลัก?
ONNX กำหนดรูปแบบที่ใช้ร่วมกัน ดังนั้นโมเดลที่ได้รับการฝึกในเฟรมเวิร์กหนึ่งจึงสามารถนำไปใช้ในสภาพแวดล้อมอื่นได้โดยไม่ต้องเขียนใหม่
ไฟล์ ONNX เป็นตัวแทนของโมเดลอย่างไร
โมเดล ONNX คือกราฟการคำนวณซึ่งมีโหนดเป็นตัวดำเนินการมาตรฐาน (เช่น Conv, MatMul, Relu) ที่เชื่อมต่อกันด้วยเทนเซอร์
บริษัทใดบ้างที่เปิดตัว ONNX ในปี 2560
ONNX เปิดตัวร่วมกันโดย Microsoft และ Facebook ในปี 2560 และปัจจุบันโฮสต์ภายใต้ Linux Foundation
ใน ONNX Runtime 'ผู้ให้บริการการดำเนินการ' คืออะไร
ผู้ให้บริการการดำเนินการคือแบ็กเอนด์ที่เสียบได้ (CPU, CUDA, TensorRT และอื่นๆ) ที่ ONNX Runtime ใช้เพื่อเรียกใช้ตัวดำเนินการที่แต่ละตัวรองรับได้ดีที่สุด
เวอร์ชัน 'opset' (ชุดตัวดำเนินการ) ในโมเดล ONNX กำหนดไว้ว่าอะไร
เวอร์ชัน opset จะระบุชุดมาตรฐานและเวอร์ชันของตัวดำเนินการที่โมเดลใช้ เพื่อให้มั่นใจว่ารันไทม์ที่เข้ากันได้จะตีความได้อย่างถูกต้อง