LiteRT คือเฟรมเวิร์กในอุปกรณ์ของ Google สำหรับการติดตั้งใช้งาน ML และ GenAI ประสิทธิภาพสูงบนแพลตฟอร์ม Edge โดยใช้การแปลง รันไทม์ และการเพิ่มประสิทธิภาพที่มีประสิทธิภาพ
LiteRT 2.x มี API รันไทม์ล่าสุด ซึ่งก็คือ CompiledModel API ที่ปรับปรุงจาก Interpreter API (หรือที่เรียกว่า TensorFlow Lite API) โดยเฉพาะ ผ่านการเร่งด้วยฮาร์ดแวร์และประสิทธิภาพโดยรวมสำหรับ ML และ AI บนอุปกรณ์ CompiledModel API อยู่ในรุ่นเบต้าและ พร้อมใช้งานทั้งใน Kotlin และ C++
ฟีเจอร์หลักของ LiteRT
รุ่นที่รองรับ
LiteRT รองรับการแปลงจากเฟรมเวิร์ก Pytorch, TensorFlow และ JAX เป็นรูปแบบ .tflite หรือ .litertlm ได้อย่างมีประสิทธิภาพ
เพิ่มประสิทธิภาพการพัฒนาด้วย LiteRT
การเลือกตัวเร่งความเร็วอัตโนมัติ เทียบกับการสร้างตัวแทนที่ชัดเจน รันไทม์ NPU และการกระจายโมเดลที่เรียบง่าย การจัดการบัฟเฟอร์ I/O ที่มีประสิทธิภาพและการดำเนินการแบบไม่พร้อมกันเพื่อประสิทธิภาพที่เหนือกว่า
ประสิทธิภาพ GPU ที่ดีที่สุด
ขับเคลื่อนโดย ML Drift ซึ่งตอนนี้รองรับทั้งโมเดล ML และ Generative AI ใน API ของ GPU
การเร่งความเร็ว NPU แบบรวม
เร่งความเร็วโมเดลโดยใช้การเข้าถึง NPU ที่ง่ายขึ้นจากผู้ให้บริการชิปเซ็ตรายใหญ่
การรองรับ LLM ที่ง่ายขึ้นด้วย LiteRT
คุณใช้ LiteRT-LM ที่ขับเคลื่อนโดย LiteRT ได้ LiteRT-LM รองรับ LLM ล่าสุดและฟีเจอร์ที่มีประโยชน์ เช่น มัลติโมดัล, การถอดรหัสแบบจำกัด ฯลฯ
เวิร์กโฟลว์การพัฒนา
LiteRT จะเรียกใช้การอนุมานในอุปกรณ์อย่างสมบูรณ์บน Android, iOS, เว็บ, IoT และบนเดสก์ท็อป/แล็ปท็อป ไม่ว่าจะเป็นอุปกรณ์ใด เวิร์กโฟลว์ที่พบบ่อยที่สุดมีดังนี้ พร้อมลิงก์ไปยังวิธีการเพิ่มเติม

ระบุโซลูชันที่เหมาะสมที่สุดสำหรับความท้าทายด้าน ML
LiteRT ช่วยให้ผู้ใช้มีความยืดหยุ่นและปรับแต่งได้ในระดับสูงเมื่อต้องแก้ปัญหาแมชชีนเลิร์นนิง จึงเหมาะสำหรับผู้ใช้ที่ต้องการโมเดลเฉพาะหรือการใช้งานเฉพาะทาง ผู้ใช้ที่กำลังมองหาโซลูชันแบบ พลักแอนด์เพลย์อาจต้องการใช้ MediaPipe Tasks ซึ่งมีโซลูชันแบบสำเร็จรูป สำหรับงานแมชชีนเลิร์นนิงทั่วไป เช่น การตรวจหาออบเจ็กต์ การจัดประเภทข้อความ และการอนุมาน LLM
รับและเตรียมโมเดล
โมเดล LiteRT จะแสดงในรูปแบบแบบพกพาที่มีประสิทธิภาพซึ่งเรียกว่า FlatBuffers ซึ่งใช้.tflite
นามสกุลไฟล์
คุณขอรับโมเดล LiteRT ได้ด้วยวิธีต่อไปนี้
รับโมเดลที่ฝึกไว้ล่วงหน้า: สำหรับภาระงาน ML ยอดนิยม เช่น การแบ่งกลุ่มรูปภาพ การตรวจหาออบเจ็กต์ เป็นต้น
แนวทางที่ง่ายที่สุดคือการใช้โมเดล LiteRT ที่อยู่ใน
.tfliteรูปแบบอยู่แล้ว โมเดลเหล่านี้ไม่จำเป็นต้องมีขั้นตอน Conversion เพิ่มเติมประเภทโมเดล แหล่งที่มาของโมเดลที่ฝึกไว้ล่วงหน้า ML แบบคลาสสิก
(รูปแบบ.tflite)ไปที่ Kaggle หรือ HuggingFace
เช่น โมเดลการแบ่งกลุ่มรูปภาพและแอปตัวอย่างGenerative AI
(.litertlmรูปแบบ)หน้า LiteRT ของ Hugging Face
เช่น Gemma Familyแปลงโมเดล PyTorch, TensorFlow หรือ JAX ที่เลือกเป็นโมเดล LiteRT หากเลือกที่จะไม่ใช้โมเดลที่ฝึกไว้ล่วงหน้า [PRO USER]
เฟรมเวิร์กโมเดล โมเดลตัวอย่าง เครื่องมือ Conversion Pytorch Hugging Face
Torchvisionลิงก์ TensorFlow โมเดล Kaggle
Hugging Faceลิงก์ Jax Hugging Face ลิงก์ สร้าง LLM เพื่อเพิ่มประสิทธิภาพเพิ่มเติมโดยใช้ Generative API [ผู้ใช้ PRO]
ไลบรารี Generative API มีบล็อกการสร้างในตัวของ PyTorch สำหรับการเขียนโมเดล Transformer เช่น Gemma, TinyLlama และอื่นๆ โดยใช้การแยกส่วนที่เหมาะกับอุปกรณ์เคลื่อนที่ ซึ่งเราสามารถรับประกันการแปลง และการดำเนินการที่มีประสิทธิภาพในรันไทม์บนอุปกรณ์เคลื่อนที่ของเราอย่าง LiteRT ดูเอกสารประกอบเกี่ยวกับ Generative API
ควอนไทเซชัน [ผู้ใช้ PRO]
AI Edge Quantizer สำหรับนักพัฒนาซอฟต์แวร์ขั้นสูงเป็นเครื่องมือสำหรับ Quantize โมเดล LiteRT ที่แปลงแล้ว โดยมีเป้าหมายเพื่อช่วยให้ผู้ใช้ขั้นสูงสามารถมุ่งมั่นที่จะได้รับประสิทธิภาพสูงสุด ในโมเดลที่ต้องการทรัพยากรสูง (เช่น โมเดล GenAI)
สำหรับโมเดลแมชชีนเลิร์นนิงและโมเดล Generative AI โปรดดูเอกสารประกอบ Ai-Edge-Quantization
ข้อกำหนดเบื้องต้นสำหรับการเริ่มต้นใช้งาน
- Python 3.10-3.12
- ไฟล์โมเดล
.tflite - ดูรายละเอียดเพิ่มเติมได้ในส่วนแพลตฟอร์มที่เกี่ยวข้อง
ผสานรวมโมเดลเข้ากับแอปในแพลตฟอร์ม Edge
คุณสามารถใช้โมเดล LiteRT เพื่อเรียกใช้การอนุมานบนอุปกรณ์อย่างสมบูรณ์ในอุปกรณ์ Android, iOS, เว็บ, IoT และเดสก์ท็อป LiteRT มี API สำหรับ Python, Java และ Kotlin สำหรับ Android, Swift สำหรับ iOS และ C++ สำหรับอุปกรณ์ขนาดเล็ก
ใช้คู่มือต่อไปนี้เพื่อติดตั้งใช้งานโมเดล LiteRT บนแพลตฟอร์มที่คุณต้องการ
| เฟรมเวิร์กโมเดล | โมเดลตัวอย่าง | เครื่องมือ Conversion |
|---|---|---|
| เรียกใช้ใน Android | โทรศัพท์มือถือ Android | API C++/Kotlin |
| เรียกใช้ใน iOS | โทรศัพท์มือถือ iOS | API ของ C++/Swift* |
| เรียกใช้บนเว็บโดยใช้ LiteRT.js | อุปกรณ์ที่มี Chrome, Firefox หรือ Safari | JavaScript API |
| เรียกใช้ใน Micro | อุปกรณ์ที่ฝัง | API ของ C++ |
*พร้อมใช้งานเร็วๆ นี้
ตัวอย่างโค้ด Kotlin
// Load model and initialize runtime
val compiledModel = CompiledModel.create("/path/to/mymodel.tflite", CompiledModel.Options(Accelerator.CPU))
// Prepare I/O buffers and fill in the data
val inputBuffers = compiledModel.createInputBuffers()
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
val outputBuffers = compiledModel.createOutputBuffers()
// Execute model
compiledModel.run(inputBuffers, outputBuffers)
// Access model output
val output = outputBuffers.get(0).readFloat()
inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
compiledModel.close()
ตัวอย่างโค้ด C++
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
auto compiled_model,
CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));
เลือกแบ็กเอนด์
วิธีที่ตรงไปตรงมาที่สุดในการรวมแบ็กเอนด์ใน LiteRT คือการใช้ประโยชน์จาก ปัญญาประดิษฐ์ (AI) ในตัวของรันไทม์ การเปลี่ยนแปลงล่าสุดทำให้ LiteRT ลดความซับซ้อนในการตั้งค่าได้อย่างมากด้วยความสามารถในการระบุ แบ็กเอนด์เป้าหมายเป็นตัวเลือก
หัวใจสำคัญของ LiteRT v2.x คือออบเจ็กต์ CompiledModel เมื่อโหลดโมเดล
LiteRT จะใช้ฮาร์ดแวร์ที่มีของระบบและตรรกะลำดับความสำคัญภายในเพื่อ
เลือกแบ็กเอนด์ที่เหมาะสมที่สุดโดยไม่ต้องกำหนดค่าด้วยตนเอง ดูรายละเอียดเพิ่มเติมได้ที่แบ็กเอนด์
| Android | เดสก์ท็อป | เว็บ | iOS | macOS | IoT | |
|---|---|---|---|---|---|---|
| CPU | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack | XNNPack |
| GPU | WebGPU OpenCL |
WebGPU OpenCL |
WebGPU | WebGPU Metal |
WebGPU Metal |
WebGPU |
| NPU | MediaTek Qualcomm |
- | - | - | - | - |
เอกสารและการสนับสนุนเพิ่มเติม
แอปตัวอย่าง LiteRT v2.x ดูแอปตัวอย่างการแบ่งกลุ่มรูปภาพ LiteRT
สำหรับผู้ใช้ TensorFlow Lite อยู่แล้ว ดูคำแนะนำในการย้ายข้อมูล
ความครอบคลุมของ Ops ผู้ให้บริการที่รองรับ
โมเดล LLM ที่รองรับ LiteRT Hugging Face และ Gen API - ตัวอย่าง
เครื่องมือ หน้าเครื่องมือ LiteRT - ประสิทธิภาพ การสร้างโปรไฟล์ การรายงานข้อผิดพลาด ฯลฯ