พัฒนา AI ที่มีประสิทธิภาพด้านฮาร์ดแวร์โดยไม่ต้องเป็นผู้เชี่ยวชาญด้านฮาร์ดแวร์

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

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

การแยกส่วนดังกล่าวมีสาเหตุส่วนหนึ่งมาจากข้อเท็จจริงที่ว่าการฝึกอบรมและการอนุมานได้แยกออกจากกัน ทั้งในด้านแพลตฟอร์มฮาร์ดแวร์และชุดซอฟต์แวร์ ในอดีต เราใช้ Caffe บนเซิร์ฟเวอร์ GPU สำหรับทั้งการฝึกอบรมและการให้บริการ ทุกวันนี้ ผู้คนใช้เครื่องมือและเซิร์ฟเวอร์ที่ทรงพลังสำหรับการฝึกอบรม จากนั้นปรับใช้โมเดลกับรันไทม์ที่ปรับให้เหมาะสมในระดับสูงและอุปกรณ์ที่หลากหลาย มักพบปัญหาการปรับใช้เนื่องจากความซับซ้อนของโมเดลและข้อจำกัดของฮาร์ดแวร์ และโดยปกติแล้วทีม ML จำเป็นต้องพึ่งพาคำติชมของทีมปฏิบัติการอุปกรณ์เพื่อแก้ไขปัญหาเหล่านี้

ด้วยเหตุนี้ วิศวกรแมชชีนเลิร์นนิง (MLE) มักขาดข้อมูลเชิงลึกพื้นฐานเกี่ยวกับการปรับใช้โมเดลของตนเอง การปรับใช้โมเดลในปัจจุบันมักจะเป็นไปป์ไลน์ที่สร้างขึ้นภายในองค์กรซึ่งประกอบด้วยสคริปต์ Bash/Python หลายตัวซึ่งครอบคลุมทั่วทั้งเครื่องและสภาพแวดล้อมต่างๆ นอกจากนี้ยังเกี่ยวข้องกับไลบรารีโอเพ่นซอร์สหลายรายการหรือชุดเครื่องมือเฉพาะของผู้จำหน่ายสำหรับการแปลงแบบจำลอง การกำหนดปริมาณ การปรับแต่งประสิทธิภาพ และการตรวจสอบความถูกต้อง ไม่ใช่ประสบการณ์ที่น่าพึงพอใจเมื่อเทียบกับการพัฒนาแบบจำลองในสภาพแวดล้อม Python ที่ใช้ระบบคลาวด์

ตัวเลือกและเครื่องมือมากมายสำหรับการปรับใช้โมเดล PyTorch

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

ตัวอย่างรายงานการทำโปรไฟล์จากเอกสาร TensorRT ซึ่งต้องใช้ความรู้ด้านโดเมนจึงจะเข้าใจ

แม้จะมีข้อเสียเหล่านี้ การแยกการออกแบบและการปรับใช้โมเดลยังคงเป็นบรรทัดฐานในอุตสาหกรรม เนื่องจากมักจะต้องใช้ชุดทักษะที่แตกต่างกันโดยสิ้นเชิง “มันยากอยู่แล้วที่จะจ้างผู้เชี่ยวชาญด้าน ML หรือผู้เชี่ยวชาญด้านอุปกรณ์ นับประสาอะไรกับผู้เชี่ยวชาญทั้งสองอย่าง” นั่นคือสิ่งที่เรารับฟังจากลูกค้าเสมอมา แต่ก็ไม่ได้หมายความว่าเราควรทนต่อเวิร์กโฟลว์ ML ปัจจุบัน

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

จนถึงตอนนี้ ปัญหาที่พบบ่อยที่สุดที่ทำให้การปรับใช้โมเดล ML ล่าช้าคือ:

  1. เวลาแฝง / ทรูพุตที่ทนไม่ได้
  2. ตัวดำเนินการที่ไม่รองรับ
  3. ความแม่นยำไม่ตรงกัน

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

การสร้างคอมไพเลอร์ ML ที่ทรงพลังเป็นเพียงส่วนหนึ่งของโซลูชัน เนื่องจากมีความแตกต่างพื้นฐานบางประการระหว่างซอฟต์แวร์ 2.0 และซอฟต์แวร์ 1.0: ประการแรกผู้ปฏิบัติงานใหม่จะถูกนำออกจากสถาบันการศึกษาอย่างต่อเนื่อง และหลายคนไม่สามารถประกอบขึ้นจากสิ่งที่มีอยู่เดิมได้ ประการที่สอง โมเดล ML สามารถทนต่อ การเปลี่ยนตัวดำเนินการ ที่ไม่สามารถใช้งานได้และยังคงรักษาความแม่นยำที่ใกล้เคียงกัน ซึ่งให้ความยืดหยุ่นในการปรับแต่งที่มากขึ้นสำหรับนักพัฒนา ML เราจะไม่ลงลึกในรายละเอียดเพราะน่าจะคุ้มค่าที่จะแยกบล็อกเพื่อพูดคุยเกี่ยวกับการปรับแต่งโมเดลสำหรับการปรับใช้

ที่OmniMLเราเริ่มต้นด้วยการสร้างเครื่องมือภายในสำหรับวิศวกรของเราในการปรับใช้และสร้างโปรไฟล์โมเดล ML โดยไม่ต้องวุ่นวายกับการศึกษาฮาร์ดแวร์และห่วงโซ่เครื่องมือ ML ในไม่ช้าเราก็ตระหนักถึงการเพิ่มประสิทธิภาพของเครื่องมือดังกล่าว นอกจากนี้ อินเทอร์เฟซที่รวมเป็นหนึ่งและอุดมด้วยข้อมูลนี้ช่วยให้ทั้งมนุษย์และอัลกอริทึมสามารถปลดล็อกโอกาสในการเพิ่มประสิทธิภาพโมเดลที่ยอดเยี่ยมได้ ดังนั้น คุณลักษณะเหล่านี้จึงพร้อมใช้งานอย่างเป็นทางการในผลิตภัณฑ์ของ OmniML: OmnimizerและOmnimizer Enterprise

Omnimizer — แพลตฟอร์มการปรับและปรับใช้โมเดลแบบครบวงจร

Omnimizerออกแบบมาสำหรับวิศวกร ML ที่ออกแบบและฝึกโมเดล PyTorch เป็นหลัก ช่วยให้พวกเขาระบุข้อบกพร่องในการออกแบบและลดเวลาในการผลิต

Omnimizer จัดเตรียมอินเทอร์เฟซ PyTorch-native และ cloud-native เพื่อทดสอบโมเดลบนฮาร์ดแวร์เป้าหมายอย่างรวดเร็ว ผู้ใช้เพียงระบุการกำหนดค่าการปรับใช้ระดับสูง จากนั้นส่งคำขอไปยังระบบคลาวด์ของอุปกรณ์ที่โฮสต์ด้วย OmniML ข้อมูลการปรับใช้ที่สำคัญ รวมถึงเวลาแฝงโดยรวม เวลาแฝงตามเลเยอร์ และข้อผิดพลาดในการปรับใช้ (ถ้ามี) จะถูกรายงานกลับด้วยวิธีที่ง่ายที่สุดที่ผู้เชี่ยวชาญที่ไม่ใช่ฮาร์ดแวร์สามารถเข้าใจได้

Omnimizer ช่วยให้ผู้ใช้สามารถเปรียบเทียบความแม่นยำในอุปกรณ์กับรุ่นดั้งเดิมได้อย่างง่ายดาย ขจัดความยุ่งยากในการถ่ายโอนโมเดลและข้อมูลไปยังอุปกรณ์อื่น ทำความคุ้นเคยกับ OS และ Toolchain ต่างๆ และบำรุงรักษาสคริปต์ที่ไม่เป็นระเบียบและบั๊กจำนวนมาก ในตัวอย่างต่อไปนี้ ผู้ใช้สามารถรับเอาต์พุตโมเดลในอินเทอร์เฟซคล้าย PyTorch ในขณะที่การอนุมานที่เกิดขึ้นจริงบนอุปกรณ์ระยะไกล เช่น GPU ระดับเซิร์ฟเวอร์หรือสมาร์ทโฟน

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

Omnimizer Enterprise — ปลดปล่อยศักยภาพของฮาร์ดแวร์ AI อย่างเต็มที่

เมื่อเปรียบเทียบกับเวอร์ชันชุมชนซึ่งช่วยการปรับใช้โมเดลและการเพิ่มประสิทธิภาพ เวอร์ชันสำหรับองค์กรจะให้ การปรับ โมเดลให้เหมาะสมโดยอัตโนมัติ โดยอ้างอิงจากการวิจัยเป็นเวลาหลายปีเกี่ยวกับ Neural Architecture Search (NAS) และการปรับแต่งที่ครอบคลุมสำหรับความต้องการขององค์กร

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

Omnimizer สามารถรวมเข้ากับที่เก็บข้อมูลแบบโอเพ่นซอร์สได้อย่างง่ายดาย และเร่งความเร็วโมเดลที่มีอยู่ทั่วไปด้วยการเพิ่มประสิทธิภาพแบบแมนนวลเพียงเล็กน้อย จนถึงตอนนี้ OmniML และลูกค้าได้สาธิตการเร่งความเร็ว 1.2–6.8x บนแพลตฟอร์ม NVIDIA และ Qualcomm ที่เก็บเหล่านี้จะเปิดให้ผู้ใช้ระดับองค์กรเป็นตัวอย่าง:

  • YOLO-X (การตรวจจับวัตถุ)
  • EfficientDet (การตรวจจับวัตถุ)
  • YOLO-P (รุ่นมัลติทาสก์สำหรับการขับขี่อัตโนมัติ)
  • DDRNet (การแบ่งส่วนความหมาย)
  • ResNet (การจัดประเภทรูปภาพ)
  • DD3D (การตรวจจับวัตถุ 3 มิติ)
  • RAFT (การไหลของแสง)
  • DistilBERT (การแปลด้วยเครื่อง)

ลอง Omnimizer!

Omnimizer Beta เพิ่งเปิดตัว ลงทะเบียนตอนนี้ที่ เว็บไซต์ของ OmniML และเริ่มเพิ่มประสิทธิภาพเวิร์กโฟลว์ของคุณ!

Di Wu, Song Han, Lucas Liebenwein, Riyad Islam, Keval Morabia, 
Asma K.T. Beevi, Henry Guo and Shengliang Xu also contributed to this article.