TensorFlow Lite เป็นเวอร์ชันน้ำหนักของเฟรมแวร์ค TensorFlow ที่พัฒนาโดย Google สำหรับรันโมเดลแมชชีนเลิร์นิ่งบนอุปกรณ์มือถือและอุปกรณ์ฝังตัวที่มีทรัพยากรการคำนวณจำกัด ต่างจาก TensorFlow เต็มรูปแบบ TFLite ใช้ตัวแปลเฉพาะทาง และรูปแบบ .tflite ที่เปิ่งเพื่อการอนุมนายที่รวดเร็วโดยไม่ต้องการฝึกอบรม ตามข้อมูลจาก TensorFlow Lite Guide, 2025 เฟรมแวร์คนี้ทำงานบน Android, iOS และ Linux และถูกใช้ในอุปกรณ์มากกว่า 4 พันล้านเครื่อง TensorFlow Lite รองรับการควอนไฟซ์ และการเร่งความเร็วด้านฮาร์ดแวร์ผ่านตัวแทน NNAPI, GPU และ Core ML
ข้อควรรู้
TensorFlow Lite เป็นรันไทม์เฉพาะทางสำหรับเรียกใช้โมเดลแมชชีนเลิร์นิ่งบนอุปกรณ์ที่มีทรัพยากรจำกัด ต่างจาก TensorFlow เต็มรูปแบบ TFLite ไม่รองรับการฝึกอบรมหรือการแพร่กระจายย้อนหลัง — เฉพาะการอนุมนายเท่านั้น ซึ่งช่วยให้ขนาดไฟล์ไบนารีของไลบรารีมีขนาดเล็กที่สุด: ประมาณ 300 KB สำหรับตัวแปลพื้นฐานบน Android
สถาปัตยกรรม TFLite สร้างขึ้นรอบ รูปแบบ .tflite ที่อาศยเบื้องหลังจาก FlatBuffers FlatBuffers ให้การเข้าถึงข้อมูโดยตรงโดยไม่ต้องมีขั้นตอนการแยกวิเคราะห์ ซึ่งมีความสำคัญสำหรับอุปกรณ์มือถือที่มีหน่วยความจำจำกัด โมเดลในรูปแบบ .tflite ประกอบด้วยกราฟการคำนวณ น้ำหนัก และเมตาดาต้ในไฟล์ไบนารีเดียว
ตาม Google I/O 2024 TFLite ถูกใช้ใน Google Photos, Gboard, YouTube และแอปพลิเคชันอื่นของ Google โดยมีผู้ใช้รวมกันมากกว่า 4 พันล้านเครื่อง เฟรมแวร์ครองรับสถาปัตยกรรมหลักทั้งหมด: CNN, RNN, LSTM, Transformer และการดำเนินการที่กำหนดเองผ่านตัวแทน
รันไทม์ TFLite ประกอบด้วย ส่วนประกอบสี่ส่วน TFLite Converter รับโมเดลจาก TensorFlow (SavedModel, Keras, ConcreteFunction) และแปลงเป็นรูปแบบ .tflite โดยมีการเพิ่มประสิทธิภาพแบบเลือกได้ TFLite Interpreter โหลดไฟล์ .tflite และดำเนินการอนุมนาย จัดการเทนเซอร์และหน่วยความจำ
ตัวแทน เป็นส่วนประกอบที่โอนการดำเนินการไปยังฮาร์ดแวร์เฉพาะทาง GPU Delegate ใช้ OpenGL ES และ Metal, NNAPI Delegate ใช้ Android Neural Networks API, Core ML Delegate ใช้ Apple Core ML XNNPACK Delegate เพิ่มประสิทธิภาพการทำงานบน ARM CPU แต่ละตัวแทนรองรับชุดตัวดำเนินการเฉพาะเจาะจง
ส่วนประกอบที่สี่คือ Task Library ซึ่งให้ API ระดับสูงสำหรับงานที่พบบ่อย: การจัดหมวดภาพ, การตรวจจับวัตถุ, การแย่งซ้อน, NLU Task Library ทำงานเทิด Interpreter และซ่อนรายละเอียดของการจัดการเทนเซอร์
TFLite รองรับ การควอนไฟซ์สามระดับ การควอนไฟซ์เลขจำนวนเต็ม INT8 แปลงน้ำหนักและการเปิดใช้งานจาก FP32 เป็นเลขจำนวนขนาด 8 บิต ขนาดโมเดลลดลง 4 เท่า และความเร็วในการอนุมนายบนอุปกรณ์ที่รองรับ INT8 เพิ่มขึ้นสูงสุด 3 เท่า การควอนไฟซ์ FP16 ลดขนาดลงครึ่งโดยสูญเสียความเจนต่อน้อยที่สุด
การควอนไฟซ์แบบไดนามิก เก็บน้ำหนักไว้ใน INT8 แต่ดำเนินการคำนวณใน FP32 โหมดนี้เหมาะสำหรับโมเดลที่ไว้ต่อความเจน และให้การลดขนาดสูงสุด 4 เท่าโดยรักษาคุณภาพ ตาม Google ML Performance Benchmarks แนะนำให้ใช้การควอนไฟซ์แบบไดนามิกสำหรับโมเดล NLP
| โหมด | ชนิดน้ำหนัก | ชนิดการเปิดใช้งาน | การลดขนาด |
|---|---|---|---|
| FP32 (ไม่มีการควอนไฟซ์) | FP32 | FP32 | 1x |
| FP16 | FP16 | FP32 | 2x |
| INT8 แบบไดนามิก | INT8 | FP32 | 4x |
| INT8 เต็ม | INT8 | INT8 | 4x |
บน Android กลไกการเร่งความเร็วหลักคือ ตัวแทน NNAPI ซึ่งโอนการดำเนินการไปยัง NPU, DSP หรือ GPU ผ่าน Android Neural Networks API NNAPI ใช้งานได้บนอุปกรณ์ที่มี Android 8.1+ และรองรับการคำนวณ INT8 และ FP16 GPU Delegate สำหรับ Android ใช้ OpenGL ES 3.1+ และ Vulkan
บน iOS การเร่งความเร็วจะถูกให้ผ่าน ตัวแทน Core ML ซึ่งแปลงการดำเนินการ TFLite เป็นรูปแบบ Core ML และดำเนินการบน Apple Neural Engine ตาม Apple ML Benchmarking การใช้ Core ML Delegate ช่วยเร่งความเร็วในการอนุมนายบน iPhone 15 Pro ได้สูงสุด 4 เท่าเมื่อเทียบกับ CPU GPU Delegate สำหรับ iOS ใช้ Metal Performance Shaders
XNNPACK Delegate เป็น โซลูชันข้ามแพลตฟอร์ม สำหรับ ARM CPU ที่เพิ่งเพื่อการทำงานบนโปรเซสเซอร์มือถือ XNNPACK รองรับการดำเนินการ FP32, FP16 และ INT8 โดยไม่ต้องการฮาร์ดแวร์เฉพาะทาง แนะนำให้ใช้เป็นตัวแทนพื้นฐานสำหรับทุกอุปกรณ์
กระบวนการประมวลประกอบด้วย สามขั้นตอน ขั้นตอนแรก — แปลงโมเดลเป็น .tflite ผ่าน TFLite Converter ขั้นตอนที่สอง — รวมไฟล์ .tflite ไว้ในทรัพยากรของแอปพลิเคชัน สำหรับ Android ไฟล์จะถูกวางใน assets; สำหรับ iOS ในบันเดิลแอปผ่าน Xcode ขั้นตอนที่สาม — เริ่มต้น Interpreter และดำเนินการอนุมนาย
สำหรับ การอัพเดตโมเดลแบบไดนามิก Google แนะนำให้ใช้ Firebase ML Model Downloading หรือกลไกการดาวน์โหลดแบบกำหนดเองจากคลาว์ด ไฟล์ .tflite ที่อัพเดตแล้วจะถูกเก็บไว้ในหน่วยความจำท้องถิ่น และโหลดเข้าสู่ Interpreter ในการเริ่มต้นครั้งต่อไป
เมื่อประมวล สิ่งสำคัญคือต้องพิจารณา ขนาดไฟล์ .tflite Google Play จำกัดขนาด APK ไว้ที่ 200 MB สำหรับโมเดลที่ใหญ่กว่า 50 MB แนะนำให้ใช้ Android App Bundle หรือดาวน์โหลดโมเดลแยกต่างผ่าน Play Asset Delivery
ตัวอย่างการโหลดและรันโมเดลบน Android ด้วย Java API ใช้ Interpreter.create() เพื่อโหลด .tflite จาก assets และ run() สำหรับการอนุมนาย ข้อมูลนำเข้าและส่งออกจะถูกส่งเป็นอาร์เรย์หลากมิติหรือ ByteBuffer:
import org.tensorflow.lite.Interpreter;
import java.nio.MappedByteBuffer;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;
MappedByteBuffer model = new FileInputStream(
getAssets().openFd("model.tflite")
).getChannel().map(
FileChannel.MapMode.READ_ONLY, 0, fc.size()
);
Interpreter interpreter = new Interpreter.create(model);
float[][] input = new float[1][224 * 224 * 3];
float[][] output = new float[1][1000];
interpreter.run(input, output);
interpreter.close();
ตัวอย่างการใช้ GPU Delegate บน Android สำหรับการเร่งความเร็วด้านฮาร์ดแวร์ เพิ่มการพึ่งพา com.android.support:tensorflow-lite-gpu และระบุตัวแทนเมื่อสร้าง Interpreter:
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.gpu.GpuDelegate;
GpuDelegate gpuDelegate = new GpuDelegate.create();
Interpreter.Options options = new Interpreter.Options().addDelegate(gpuDelegate);
Interpreter interpreter = new Interpreter.create(model, options);
// Run inference on the input data
interpreter.run(input, output);
// Release delegate resources after inference
gpuDelegate.close();
interpreter.close();
คำถามที่พบบ่อย
TensorFlow เป็นเฟรมแวร์คที่สมบูรณ์สำหรับการฝึกอบรมและการอนุมนาย TensorFlow Lite ใช้สำหรับการอนุมนายบนอุปกรณ์มือถือเท่านั้น TFLite ใช้รูปแบบ .tflite และไม่รองรับการแพร่กระจายย้อนหลัง
ตัวแทนที่รองรับได้แก่ GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) และ XNNPACK Delegate (ARM CPU) แต่ละตัวแทนได้รับการเพิ่งเพื่อประสิทธิภาพสำหรับฮาร์ดแวร์เฉพาะประเภท
ใช้ การควอนไฟซ์: FP16 ลดขนาด 2 เท่า, INT8 ลด 4 เท่า นอกจากนี้ ยังมีการควอนไฟซ์แบบไดนามิก, การตัดตอนน้ำหนัก, และการกลั่นโมเดลก่อนแปลง
ได้ ผ่าน TFLite Model Maker และ API การฝึกอบรมบนอุปกรณ์ (ทดลอง) รองรับการปรับแต่งละเอียดและการปรับแต่งโมเดลส่วนบุคคลโดยตรงบนอุปกรณ์ของผู้ใช้
TFLite รองรับ CNN, RNN, LSTM, Transformer, สถาปัตยกรรมมือถือ (MobileNet, EfficientNet, YOLO, BERT) และการดำเนินการที่กำหนดเอง ข้อจำกัดคือตัวดำเนินการที่มีอยู่ในตัวแทนเป้าหมาย
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม