Tutorial TensorFlow Lite: Deploy ML di Mobile dan Edge Device

# Tutorial 18: TensorFlow Lite - Deploy ML di Perangkat Mobile ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Memahami TensorFlow Lite](#memahami-tensorflow-lite) 4. [Ko...

By Ruby Abdullah · · tutorial
TensorFlow LiteMobile MLEdge AIQuantizationAndroidiOS

Tutorial 18: TensorFlow Lite - Deploy ML di Perangkat Mobile

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Memahami TensorFlow Lite
  • Konversi Model dari TensorFlow
  • Konversi Model dari PyTorch
  • Kuantisasi Pasca-Pelatihan
  • Pelatihan Sadar Kuantisasi (QAT)
  • Teknik Optimisasi Model
  • Deploy di Android
  • Deploy di iOS dengan CoreML Bridge
  • Deploy di Edge TPU
  • Benchmarking dan Profiling
  • Praktik Terbaik
  • Kesimpulan
  • Pendahuluan

    Men-deploy model machine learning di perangkat mobile dan edge membuka kemungkinan yang tidak bisa ditandingi oleh inferensi cloud: kemampuan offline, latensi rendah, privasi lebih baik, dan biaya operasional lebih murah. TensorFlow Lite (TFLite) adalah framework Google untuk menjalankan model ML di ponsel, perangkat tertanam (embedded), dan perangkat keras edge.

    Tutorial ini membahas alur kerja lengkap mulai dari mengkonversi model terlatih ke format TFLite, menerapkan kuantisasi untuk mengurangi ukuran model dan meningkatkan kecepatan, deploy di Android dan iOS, menjalankan di Edge TPU, dan melakukan benchmarking performa. Baik Anda membangun pengklasifikasi gambar real-time, model NLP on-device, atau pipeline data sensor, teknik-teknik ini dapat langsung diterapkan.

    Prasyarat

    • Python 3.9+ dengan TensorFlow 2.15+
    • Android Studio (untuk deploy Android)
    • Xcode 15+ (untuk deploy iOS)
    • Pemahaman dasar arsitektur neural network
    • Model yang sudah dilatih (kita akan membuat contohnya)

    # Instal paket yang diperlukan
    

    pip install tensorflow tflite-support onnx onnx-tf torch

    import tensorflow as tf

    import numpy as np

    print(f"Versi TensorFlow: {tf.version}")

    Memahami TensorFlow Lite

    TFLite menggunakan format model yang berbeda (.tflite) dari TensorFlow standar (.pb, SavedModel). Format TFLite berbasis FlatBuffer yang dioptimalkan untuk:

    • Ukuran biner kecil - FlatBuffer kompak dan zero-copy
    • Inisialisasi cepat - tanpa overhead parsing, memory-mapped
    • Jejak memori minimal - dirancang untuk perangkat terbatas
    • Akselerasi perangkat keras - mendukung GPU delegate, NNAPI, Edge TPU

    Alur pipeline konversi seperti berikut:

    Model TensorFlow / Model PyTorch
    

    |

    v

    TFLite Converter (dengan optimisasi opsional)

    |

    v

    File .tflite

    |

    v

    TFLite Interpreter (di perangkat)

    Konversi Model dari TensorFlow

    Mengkonversi Model Keras

    import tensorflow as tf
    

    from tensorflow import keras

    Buat dan latih model klasifikasi gambar contoh

    def bangunmodel():

    model = keras.Sequential([

    keras.layers.Conv2D(32, (3, 3), activation='relu',

    inputshape=(224, 224, 3)),

    keras.layers.MaxPooling2D((2, 2)),

    keras.layers.Conv2D(64, (3, 3), activation='relu'),

    keras.layers.MaxPooling2D((2, 2)),

    keras.layers.Conv2D(128, (3, 3), activation='relu'),

    keras.layers.GlobalAveragePooling2D(),

    keras.layers.Dense(256, activation='relu'),

    keras.layers.Dropout(0.5),

    keras.layers.Dense(10, activation='softmax')

    ])

    model.compile(

    optimizer='adam',

    loss='sparsecategoricalcrossentropy',

    metrics=['accuracy']

    )

    return model

    model = bangunmodel()

    Metode 1: Konversi langsung dari model Keras

    converter = tf.lite.TFLiteConverter.fromkerasmodel(model)

    tflitemodel = converter.convert()

    Simpan model

    with open('model.tflite', 'wb') as f:

    f.write(tflitemodel)

    print(f"Ukuran model: {len(tflitemodel) / 1024:.1f} KB")

    Artikel Terkait

    llama.cpp dan GGUF Quantization: Deploy LLM Secara Lokal

    llama.cpp dan GGUF Quantization: Deploy LLM Secara Lokal Pendahuluan Menjalankan Large Language Model (LLM) secara lokal...

    Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

    Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

    Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

    ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

    Tutorial SGLang: Serving LLM Cepat dan Pemrograman Structured Generation

    SGLang: Serving LLM yang Cepat dan Model Pemrograman untuk Generasi Terstruktur SGLang adalah dua hal dalam satu paket: ...