LiteRT ช่วยให้คุณสามารถเรียกใช้โมเดลแมชชีนเลิร์นนิง (ML) ของ TensorFlow ใน แอป Android ระบบ LiteRT มีเครื่องมือที่สร้างไว้ล่วงหน้าและปรับแต่งได้ สภาพแวดล้อมการดำเนินการสำหรับโมเดลที่เรียกใช้บน Android ได้อย่างรวดเร็วและมีประสิทธิภาพ รวมถึงตัวเลือกการเร่งฮาร์ดแวร์
โมเดลแมชชีนเลิร์นนิง
LiteRT ใช้โมเดล TensorFlow ที่แปลงเป็นโมเดลที่เล็กลง รูปแบบโมเดลแมชชีนเลิร์นนิงที่มีประสิทธิภาพและพกพาสะดวก คุณสามารถใช้ฟีเจอร์ที่สร้างไว้ล่วงหน้า ด้วย LiteRT ใน Android หรือสร้างโมเดล TensorFlow ของคุณเองและ ให้แปลงเป็นรูปแบบ LiteRT
หน้านี้พูดถึงการใช้โมเดลแมชชีนเลิร์นนิงที่สร้างแล้วและไม่ได้ ครอบคลุมโมเดลการสร้าง การฝึกอบรม การทดสอบ หรือการแปลง ดูข้อมูลเพิ่มเติมเกี่ยวกับ การเลือก การแก้ไข การสร้าง และการแปลงโมเดลแมชชีนเลิร์นนิง LiteRT ในหน้ารุ่น
เรียกใช้โมเดลใน Android
โมเดล LiteRT ที่ทำงานภายในแอป Android จะรับข้อมูลและประมวลผล ข้อมูล และสร้างการคาดการณ์ตามตรรกะของโมเดล TensorFlow โมเดล Lite ต้องการสภาพแวดล้อมรันไทม์พิเศษเพื่อดำเนินการ และ ข้อมูลที่ส่งผ่านไปยังโมเดลต้องอยู่ในรูปแบบข้อมูลเฉพาะที่เรียกว่า tensor เมื่อโมเดลประมวลผล ซึ่งเรียกว่าการเรียกใช้การอนุมาน จะสร้างผลการคาดการณ์เป็น Tensor และส่งไปยังแอป Android เพื่อให้ดำเนินการได้ เช่น การแสดงผลลัพธ์ให้กับผู้ใช้หรือดำเนินการกับตรรกะทางธุรกิจเพิ่มเติม
รูปที่ 1 ขั้นตอนการดำเนินการด้านฟังก์ชันสำหรับโมเดล LiteRT ใน Android แอป
ในระดับการออกแบบฟังก์ชันการทำงาน แอป Android ของคุณต้องการองค์ประกอบต่อไปนี้เพื่อ เรียกใช้โมเดล LiteRT
- สภาพแวดล้อมรันไทม์ LiteRT สำหรับการดำเนินการโมเดล
- เครื่องจัดการอินพุตโมเดลเพื่อแปลงข้อมูลเป็น Tensor
- เครื่องจัดการเอาต์พุตโมเดลเพื่อรับ Tensor ผลลัพธ์เอาต์พุตและตีความ เป็นผลการคาดการณ์
ส่วนต่อไปนี้จะอธิบายวิธีที่ไลบรารีและเครื่องมือ LiteRT ให้องค์ประกอบด้านฟังก์ชันการทำงานเหล่านี้
สร้างแอปด้วย LiteRT
ส่วนนี้อธิบายเส้นทางที่แนะนำและใช้บ่อยที่สุดสำหรับการติดตั้งใช้งาน LiteRT ในแอป Android ของคุณ คุณควรให้ความสำคัญกับ สภาพแวดล้อมรันไทม์และไลบรารีการพัฒนา ถ้า คุณได้พัฒนาโมเดลที่กำหนดเอง โปรดดูส่วนการพัฒนาขั้นสูง ส่วนเส้นทาง
ตัวเลือกสภาพแวดล้อมรันไทม์
คุณเปิดใช้สภาพแวดล้อมรันไทม์สำหรับการดำเนินการโมเดลได้หลายวิธี ในแอป Android ของคุณ ตัวเลือกที่แนะนำมีดังนี้
- LiteRT ในรันไทม์ของบริการ Google Play สภาพแวดล้อม (แนะนำ)
- สภาพแวดล้อมรันไทม์ LiteRT แบบสแตนด์อโลน
โดยทั่วไปแล้ว คุณควรใช้สภาพแวดล้อมรันไทม์ที่ Google Play มีให้ บริการ เนื่องจากประหยัดพื้นที่มากกว่าสภาพแวดล้อมมาตรฐานตั้งแต่ แอปจะโหลดแบบไดนามิก ทำให้แอปมีขนาดเล็กลง บริการ Google Play ยัง จะใช้ LiteRT รุ่นล่าสุดที่มีความเสถียรโดยอัตโนมัติ รันไทม์ มอบฟีเจอร์เพิ่มเติมและประสิทธิภาพที่ดีขึ้นเมื่อเวลาผ่านไป ถ้า คุณเสนอแอปในอุปกรณ์ที่ไม่รวมบริการ Google Play หรือคุณ ต้องจัดการสภาพแวดล้อมรันไทม์ ML อย่างใกล้ชิด คุณจึงควรใช้ รันไทม์ LiteRT มาตรฐาน ตัวเลือกนี้จะรวมโค้ดเพิ่มเติมไว้ใน ซึ่งช่วยให้คุณสามารถควบคุมรันไทม์ของ ML ในแอปได้มากขึ้น ต้นทุนในการเพิ่มขนาดการดาวน์โหลดของแอป
คุณเข้าถึงสภาพแวดล้อมรันไทม์เหล่านี้ในแอป Android ได้โดยการเพิ่ม TensorFlow ไลบรารีการพัฒนา Lite สำหรับสภาพแวดล้อมการพัฒนาแอปของคุณ สำหรับข้อมูล เกี่ยวกับวิธีใช้สภาพแวดล้อมรันไทม์มาตรฐานในแอปของคุณ
ห้องสมุด
คุณสามารถเข้าถึง Interpreter API ได้โดยใช้ Google Play บริการ คุณสามารถใช้ LiteRT core และ support ไลบรารีในแอป Android ของคุณ สำหรับ รายละเอียดการเขียนโปรแกรมเกี่ยวกับการใช้ไลบรารี LiteRT และรันไทม์ โปรดดูสภาพแวดล้อมที่หัวข้อเครื่องมือสำหรับการพัฒนาสำหรับ Android
รับโมเดล
การเรียกใช้โมเดลในแอป Android ต้องใช้โมเดลรูปแบบ LiteRT คุณ สามารถใช้โมเดลที่สร้างไว้ล่วงหน้าหรือสร้างโมเดลด้วย TensorFlow แล้วแปลงเป็นแบบ Lite สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรับโมเดลสำหรับแอป Android โปรดดูที่ LiteRT รุ่น
จัดการข้อมูลอินพุต
ข้อมูลใดๆ ที่คุณส่งไปยังโมเดล ML ต้องเป็น Tensor ที่มีข้อมูลที่เฉพาะเจาะจง ซึ่งมักเรียกว่ารูปร่างของ Tensor หากต้องการประมวลผลข้อมูลด้วยโมเดล โค้ดของแอปจะต้องแปลงข้อมูลจากรูปแบบโฆษณาเนทีฟ หรือข้อมูลเสียงลงใน Tensor ในรูปร่างที่จำเป็นสำหรับโมเดลของคุณ
เรียกใช้การอนุมาน
การประมวลผลข้อมูลผ่านโมเดลเพื่อสร้างผลการคาดการณ์เรียกว่า ที่เรียกใช้การอนุมาน การเรียกใช้การอนุมานในแอป Android ต้องใช้ สภาพแวดล้อมรันไทม์ LiteRT, โมเดล และอินพุต
ความเร็วที่โมเดลสามารถสร้างการอนุมานในอุปกรณ์หนึ่งๆ ได้ ขึ้นอยู่กับขนาดของข้อมูลที่ประมวลผล ความซับซ้อนของโมเดล และ ทรัพยากรในการประมวลผลที่ใช้ได้ เช่น หน่วยความจำและ CPU หรือหน่วยประมวลผลพิเศษ ที่เรียกว่า Accelerator โมเดลแมชชีนเลิร์นนิงจะทํางานได้เร็วขึ้นในอุปกรณ์เหล่านี้ หน่วยประมวลผลพิเศษ เช่น หน่วยประมวลผลกราฟิก (GPU) และ Tensor หน่วยประมวลผล (TPU) โดยใช้ไดรเวอร์ฮาร์ดแวร์ LiteRT ชื่อ ผู้แทน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับผู้รับมอบสิทธิ์และการเร่งฮาร์ดแวร์ การประมวลผลโมเดล โปรดดูการเร่งฮาร์ดแวร์ ภาพรวม
จัดการผลลัพธ์เอาต์พุต
โมเดลสร้างผลการคาดการณ์เป็น Tensor ซึ่งต้องได้รับการจัดการโดย แอป Android ในการดำเนินการหรือแสดงผลการค้นหาให้แก่ผู้ใช้ เอาต์พุตโมเดล ผลลัพธ์อาจเป็นเพียงตัวเลขที่สัมพันธ์กับผลลัพธ์เดียว (0 = สุนัข 1 = แมว, 2 = นก) สำหรับการจัดประเภทรูปภาพ ไปจนถึงผลลัพธ์ที่ซับซ้อนขึ้นมาก เช่น กรอบล้อมรอบหลายกรอบสำหรับออบเจ็กต์ที่แยกประเภทแล้วหลายรายการในภาพ ระดับความเชื่อมั่นของการคาดการณ์ตั้งแต่ 0 ถึง 1
เส้นทางการพัฒนาขั้นสูง
เมื่อใช้โมเดล LiteRT ที่มีการปรับแต่งและซับซ้อนมากขึ้น คุณสามารถ และจำเป็นต้องใช้แนวทางการพัฒนาขั้นสูงกว่าที่อธิบายข้างต้น ส่วนต่อไปนี้จะอธิบายเทคนิคขั้นสูงสำหรับการดำเนินการโมเดลและ กำลังพัฒนาสำหรับ LiteRT ในแอป Android
สภาพแวดล้อมรันไทม์ขั้นสูง
นอกเหนือจากรันไทม์มาตรฐานและรันไทม์ของบริการ Google Play สำหรับ LiteRT ยังมีสภาพแวดล้อมรันไทม์อื่นๆ ที่คุณ สามารถใช้กับแอป Android ของคุณ การใช้งานที่มีแนวโน้มว่าจะเกิดสำหรับสภาพแวดล้อมเหล่านี้คือ คุณมีโมเดลแมชชีนเลิร์นนิงที่ใช้การดำเนินการ ML ที่ไม่รองรับ ตามสภาพแวดล้อมรันไทม์มาตรฐานสำหรับ LiteRT
- รันไทม์แบบยืดหยุ่นสำหรับ LiteRT
- รันไทม์ LiteRT ที่สร้างขึ้นที่กำหนดเอง
รันไทม์แบบยืดหยุ่นของ LiteRT ช่วยให้คุณระบุข้อมูลต่อไปนี้ ต้องระบุโอเปอเรเตอร์เฉพาะสำหรับโมเดลของคุณ เป็นตัวเลือกขั้นสูงสำหรับการวิ่ง คุณสามารถสร้าง LiteRT สำหรับ Android เพื่อรวมโอเปอเรเตอร์และ ฟังก์ชันการทำงานอื่นๆ ที่จำเป็นสำหรับการเรียกใช้โมเดลแมชชีนเลิร์นนิง TensorFlow สำหรับข้อมูลเพิ่มเติม โปรดดูสร้าง LiteRT สำหรับ Android
C และ C++ API
LiteRT ยังมี API สำหรับการเรียกใช้โมเดลโดยใช้ C และ C++ อีกด้วย หาก ใช้ Android NDK คุณควร ลองใช้ API นี้ คุณยังอาจพิจารณาใช้ API นี้หากคุณ ต้องการแชร์โค้ดระหว่างแพลตฟอร์มต่างๆ ได้ หากต้องการดูข้อมูลเพิ่มเติม เกี่ยวกับตัวเลือกการพัฒนานี้ โปรดดูส่วนการพัฒนา เครื่องมือ
การดำเนินการโมเดลบนเซิร์ฟเวอร์
โดยทั่วไปแล้ว คุณควรเรียกใช้โมเดลในแอปบนอุปกรณ์ Android เพื่อ ข้อดีของเวลาในการตอบสนองที่ลดลงและปรับปรุงความเป็นส่วนตัวของข้อมูลสำหรับผู้ใช้ อย่างไรก็ตาม มีการใช้งานโมเดลบนเซิร์ฟเวอร์ระบบคลาวด์นอกอุปกรณ์ โซลูชัน เช่น หากคุณมีโมเดลขนาดใหญ่ซึ่งบีบอัดได้ยาก ให้เป็นขนาดที่พอดีกับผู้ใช้ อุปกรณ์ Android หรือสามารถดำเนินการด้วย ประสิทธิภาพที่สมเหตุสมผลในอุปกรณ์เหล่านั้น วิธีนี้อาจเป็น โซลูชันที่แนะนำ หากประสิทธิภาพที่สอดคล้องกันของโมเดลใน อุปกรณ์เหล่านี้มีความสำคัญสูงสุด
Google Cloud มีบริการชุดเต็มสำหรับการเรียกใช้เครื่อง TensorFlow โมเดลการเรียนรู้ โปรดดูข้อมูลเพิ่มเติมที่หัวข้อ AI และเครื่องจักรของ Google Cloud ผลิตภัณฑ์เพื่อการเรียนรู้
การพัฒนาและเพิ่มประสิทธิภาพโมเดลที่กำหนดเอง
เส้นทางการพัฒนาขั้นสูงขึ้นมีแนวโน้มที่จะรวมเครื่องที่กำหนดเองที่กำลังพัฒนา โมเดลการเรียนรู้ และเพิ่มประสิทธิภาพโมเดลเหล่านั้นเพื่อใช้งานในอุปกรณ์ Android หากคุณ วางแผนที่จะสร้างโมเดลที่กำหนดเอง อย่าลืมพิจารณาใช้การสร้างปริมาณ เทคนิคในโมเดลที่จะลด หน่วยความจำและการประมวลผล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้าง โมเดลประสิทธิภาพสูงสำหรับใช้กับ LiteRT โปรดดูประสิทธิภาพที่ดีที่สุด แนวทางปฏิบัติในส่วนโมเดล