แผนการทำงาน TensorFlow Lite

อัปเดต: พฤษภาคม 2021

ข้อมูลต่อไปนี้แสดงถึงภาพรวมระดับสูงของแผนงานของเรา คุณควรทราบว่าแผนงานนี้อาจเปลี่ยนแปลงได้ตลอดเวลา และลำดับด้านล่างไม่ได้สะท้อนถึงลำดับความสำคัญประเภทใดๆ

เราแบ่งแผนงานของเราออกเป็นสี่ส่วนหลัก: การใช้งาน ประสิทธิภาพ การเพิ่มประสิทธิภาพ และการพกพา เราขอแนะนำให้คุณแสดงความคิดเห็นในแผนงานของเราและแสดงความคิดเห็นใน กลุ่มสนทนา TensorFlow Lite

การใช้งาน

  • ขยายความครอบคลุมการปฏิบัติงาน
    • เพิ่มปฏิบัติการที่กำหนดเป้าหมายตามความคิดเห็นของผู้ใช้
    • เพิ่มชุดปฏิบัติการที่กำหนดเป้าหมายสำหรับโดเมนและพื้นที่เฉพาะ รวมถึงปฏิบัติการสุ่ม, ปฏิบัติการเลเยอร์ Keras ฐาน, ตารางแฮช, ปฏิบัติการการฝึกอบรมที่เลือก
  • เครื่องมือช่วยเหลือเพิ่มเติม
    • จัดเตรียมคำอธิบายประกอบกราฟ TensorFlow และเครื่องมือความเข้ากันได้เพื่อตรวจสอบความเข้ากันได้ของ TFLite และตัวเร่งฮาร์ดแวร์ระหว่างการฝึกอบรมและหลังการแปลง
    • อนุญาตให้กำหนดเป้าหมายและเพิ่มประสิทธิภาพสำหรับตัวเร่งความเร็วเฉพาะระหว่างการแปลง
  • การฝึกอบรมบนอุปกรณ์
    • รองรับการฝึกอบรมในอุปกรณ์เพื่อการปรับเปลี่ยนในแบบของคุณและถ่ายโอนการเรียนรู้ รวมถึง Colab ที่สาธิตการใช้งานตั้งแต่ต้นทางถึงปลายทาง
    • รองรับตัวแปร/ประเภททรัพยากร (ทั้งสำหรับการอนุมานและการฝึกอบรม)
    • รองรับการแปลงและดำเนินการกราฟด้วยจุดเข้าใช้งานหลายฟังก์ชัน (หรือลายเซ็น)
  • การรวม Android Studio ที่ได้รับการปรับปรุง
    • ลากและวางโมเดล TFLite ลงใน Android Studio เพื่อสร้างอินเทอร์เฟซโมเดล
    • ปรับปรุงการรองรับการทำโปรไฟล์ Android Studio รวมถึงการทำโปรไฟล์หน่วยความจำ
  • ช่างโมเดล
    • รองรับงานใหม่ๆ รวมถึงการตรวจจับวัตถุ คำแนะนำ และการจัดหมวดหมู่เสียง ครอบคลุมการใช้งานทั่วไปที่หลากหลาย
    • รองรับชุดข้อมูลเพิ่มเติมเพื่อให้การถ่ายโอนการเรียนรู้ง่ายขึ้น
  • ไลบรารีงาน
    • รองรับประเภทโมเดลเพิ่มเติม (เช่น เสียง, NLP) พร้อมความสามารถในการประมวลผลก่อนและหลังที่เกี่ยวข้อง
    • อัปเดตตัวอย่างอ้างอิงเพิ่มเติมด้วย Task API
    • รองรับการเร่งความเร็วแบบนอกกรอบสำหรับทุกงาน
  • รุ่นและตัวอย่าง SOTA เพิ่มเติม
    • เพิ่มตัวอย่างเพิ่มเติม (เช่น เสียง, NLP, โครงสร้าง-ข้อมูลที่เกี่ยวข้อง) เพื่อสาธิตการใช้งานโมเดลตลอดจนฟีเจอร์ใหม่และ API ที่ครอบคลุมแพลตฟอร์มต่างๆ
    • สร้างโมเดลแกนหลักที่แชร์ได้สำหรับอุปกรณ์เพื่อลดต้นทุนการฝึกอบรมและการปรับใช้
  • การปรับใช้อย่างราบรื่นบนหลายแพลตฟอร์ม
    • เรียกใช้โมเดล TensorFlow Lite บนเว็บ
  • ปรับปรุงการรองรับข้ามแพลตฟอร์ม
    • ขยายและปรับปรุง API สำหรับ Java บน Android, Swift บน iOS, Python บน RPi
    • ปรับปรุงการสนับสนุน CMake (เช่น การสนับสนุนตัวเร่งความเร็วที่กว้างขึ้น)
  • การสนับสนุนส่วนหน้าที่ดีขึ้น
    • ปรับปรุงความเข้ากันได้กับส่วนหน้าการเขียนต่างๆ รวมถึง Keras, tf.numpy

ผลงาน

  • เครื่องมือที่ดีกว่า
    • แดชบอร์ดสาธารณะสำหรับการติดตามประสิทธิภาพที่เพิ่มขึ้นในแต่ละรุ่น
    • เครื่องมือเพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับความเข้ากันได้ของกราฟกับตัวเร่งความเร็วเป้าหมาย
  • ปรับปรุงประสิทธิภาพของ CPU
    • XNNPack เปิดใช้งานตามค่าเริ่มต้นเพื่อการอนุมานจุดลอยตัวที่เร็วขึ้น
    • รองรับ half precision (float16) แบบ end-to-end พร้อมเคอร์เนลที่ได้รับการปรับปรุง
  • อัปเดตการรองรับ NN API
    • รองรับคุณสมบัติ การดำเนินการ และประเภท NN API เวอร์ชันใหม่กว่าของ Android อย่างเต็มรูปแบบ
  • การเพิ่มประสิทธิภาพ GPU
    • ปรับปรุงเวลาเริ่มต้นระบบด้วยการสนับสนุนการทำให้เป็นอนุกรมของผู้รับมอบสิทธิ์
    • การทำงานร่วมกันของบัฟเฟอร์ฮาร์ดแวร์สำหรับการอนุมานแบบไม่มีสำเนา
    • ความพร้อมใช้งานที่กว้างขึ้นของการเร่งความเร็วบนอุปกรณ์
    • ความคุ้มครองการปฏิบัติงานที่ดีขึ้น

การเพิ่มประสิทธิภาพ

  • การหาปริมาณ

    • การหาปริมาณหลังการฝึกอบรมแบบเลือกเพื่อแยกบางเลเยอร์ออกจากการหาปริมาณ
    • โปรแกรมดีบักเกอร์เชิงปริมาณเพื่อตรวจสอบการสูญเสียข้อผิดพลาดเชิงปริมาณต่อแต่ละเลเยอร์
    • การใช้การฝึกอบรมที่คำนึงถึงเชิงปริมาณกับโมเดลที่ครอบคลุมมากขึ้น เช่น TensorFlow Model Garden
    • การปรับปรุงคุณภาพและประสิทธิภาพสำหรับการหาปริมาณช่วงไดนามิกหลังการฝึกอบรม
    • Tensor Compression API เพื่ออนุญาตอัลกอริธึมการบีบอัด เช่น SVD
  • การตัดแต่งกิ่ง / กระจัดกระจาย

    • รวม API เวลาการฝึกอบรมที่กำหนดค่าได้ (การตัดแต่ง + การฝึกอบรมที่คำนึงถึงปริมาณ)
    • เพิ่มแอปพลิเคชั่นสำรองในโมเดล TF Model Garden
    • รองรับการดำเนินการโมเดลแบบกระจายใน TensorFlow Lite

การพกพา

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