LiteRT'ye genel bakışa hoş geldiniz

LiteRT, verimli dönüştürme, çalışma zamanı ve optimizasyon kullanarak uç platformlarda yüksek performanslı makine öğrenimi ve üretken yapay zeka dağıtımı için Google'ın cihaz üzerinde çerçevesidir.

En yeni LiteRT 2.x sürümünde, donanım hızlandırmayı en üst düzeye çıkarmak için tasarlanmış modern bir çalışma zamanı arayüzü olan CompiledModel API'si kullanıma sunuluyor. Interpreter API (eski adıyla TensorFlow Lite) geriye dönük uyumluluk için kullanılmaya devam etse de CompiledModel API, cihaz üzerinde yapay zeka uygulamalarında en iyi performansı elde etmek isteyen geliştiriciler için önerilen seçenektir.

LiteRT'nin temel özellikleri

LiteRT ile geliştirmeyi kolaylaştırın

Otomatik hızlandırıcı seçimi ve açıkça temsilci oluşturma. Üstün performans için verimli G/Ç arabellek işleme ve eşzamansız yürütme. Cihaz üzerinde çıkarım belgelerine bakın.

Sınıfının en iyisi GPU performansı

ML Drift tarafından desteklenir. Artık GPU API'lerinde hem makine öğrenimi hem de üretken yapay zeka modellerini destekler. GPU hızlandırma belgelerine bakın.

Birleştirilmiş NPU hızlandırması

Büyük yonga seti sağlayıcıların basitleştirilmiş NPU erişimini kullanarak modelinizi hızlandırın. NPU hızlandırma belgelerini inceleyin.

Üstün LLM Desteği

LiteRT, mobil, masaüstü ve web platformlarında üretken yapay zeka modelleri için yüksek performanslı dağıtım sağlar. Üretken yapay zeka dağıtım belgelerine bakın.

Kapsamlı ML çerçevesi desteği

LiteRT, PyTorch, TensorFlow ve JAX Framework'lerinden .tflite veya .litertlm biçimine dönüştürme işlemini kolaylaştırır. Model dönüştürme belgelerini inceleyin.

Geliştirme iş akışı

LiteRT, Android, iOS, Web, IoT ve masaüstü/dizüstü bilgisayarlarda çıkarımları tamamen cihaz üzerinde çalıştırır. Cihazdan bağımsız olarak en yaygın iş akışı aşağıda verilmiştir. Daha fazla talimat için bağlantıları kullanabilirsiniz.

LiteRT geliştirme iş akışı grafiği

Makine öğrenimi sorununa en uygun çözümü belirleme

LiteRT, makine öğrenimi sorunlarını çözme konusunda kullanıcılara yüksek düzeyde esneklik ve özelleştirme imkanı sunar. Bu nedenle, belirli bir modele veya özel bir uygulamaya ihtiyaç duyan kullanıcılar için uygundur. Hazır çözümler arayan kullanıcılar, nesne algılama, metin sınıflandırma ve LLM çıkarımı gibi yaygın makine öğrenimi görevleri için hazır çözümler sunan MediaPipe Tasks'i tercih edebilir.

Modeli edinme ve hazırlama

LiteRT modeli, .tflite dosya uzantısını kullanan FlatBuffers adlı verimli bir taşınabilir biçimde gösterilir.

LiteRT modelini aşağıdaki yöntemlerle edinebilirsiniz:

  • Önceden eğitilmiş bir model edinme: Görüntü segmentasyonu ve nesne algılama gibi popüler makine öğrenimi iş yükleri için.

    En basit yaklaşım, .tflite biçiminde olan bir LiteRT modeli kullanmaktır. Bu modeller için ek dönüşüm adımları gerekmez.

    Model Türü Önceden eğitilmiş model kaynağı
    Klasik makine öğrenimi
    (.tflite biçimi)
    Kaggle veya HuggingFace'i ziyaret edin.
    Örneğin, resim segmentasyonu modelleri ve örnek uygulama
    Üretken yapay zeka
    (.litertlm biçimi)
    LiteRT Hugging Face sayfası
    Ör. Gemma Ailesi
  • Önceden eğitilmiş bir model kullanmamayı tercih ederseniz seçtiğiniz PyTorch, TensorFlow veya JAX modelini LiteRT modeline dönüştürün. [PRO USER]

    Model Çerçevesi Örnek Modeller Dönüştürme Aracı
    Pytorch Hugging Face
    Torchvision
    Bağlantı
    TensorFlow Kaggle Models
    Hugging Face
    Bağlantı
    Jax Hugging Face Bağlantı
  • Generative API'yi kullanarak daha fazla optimizasyon için LLM'nizi oluşturun [PRO KULLANICISI]

    Üretken API kitaplığımız, mobil cihazlara uygun soyutlamalar kullanarak Gemma, TinyLlama ve diğerleri gibi Transformer modellerini oluşturmak için PyTorch'ta yerleşik yapı taşları sağlar. Bu sayede, mobil çalışma zamanımız LiteRT'de dönüştürme ve yüksek performanslı yürütme garantisi verebiliriz. Üretken API dokümanlarını inceleyin.

Kuantizasyon [PRO KULLANICISI]

Gelişmiş geliştiriciler için AI Edge Quantizer, dönüştürülmüş LiteRT modellerini nicelleştirmeye yönelik bir araçtır. Bu özellik, ileri düzey kullanıcıların kaynak gerektiren modellerde (ör. üretken yapay zeka modelleri).

Daha fazla bilgi için AI Edge Quantizer dokümanlarına bakın.

Modeli, uç platformlardaki uygulamanıza entegre etme

LiteRT, Android, iOS, Web, Masaüstü ve IoT platformlarında makine öğrenimi modellerini tamamen cihaz üzerinde yüksek performansla çalıştırmanıza olanak tanır.

Tercih ettiğiniz platformda LiteRT modelini entegre etmek için aşağıdaki kılavuzları kullanın:

Desteklenen Platform Desteklenen Cihazlar Desteklenen API'ler
Android'de çalıştırma Android mobil cihazlar C++/Kotlin
iOS/macOS'te çalıştırma iOS mobil cihazlar, MacBook'lar C++/Swift
LiteRT.js kullanarak web'de çalıştırma Chrome, Firefox veya Safari'nin yüklü olduğu bir cihaz JavaScript
Linux'ta çalıştırma Linux iş istasyonu veya Linux tabanlı IoT cihazları C++/Python
Windows'da çalıştırma Windows iş istasyonu veya dizüstü bilgisayarlar C++/Python
Run on Micro Yerleştirilmiş cihazlar C++

Aşağıdaki kod snippet'lerinde Kotlin ve C++'taki temel bir uygulama gösterilmektedir.

Kotlin

// Load model and initialize runtime
val compiledModel = CompiledModel.create(
    "/path/to/mymodel.tflite",
    CompiledModel.Options(Accelerator.CPU))

// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()

// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)

// Invoke
compiledModel.run(inputBuffers, outputBuffers)

// Read the output
val output = outputBuffers.get(0).readFloat()

C++

// Load model and initialize runtime
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));

// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));

// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));

// Invoke
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));

// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));

Donanım hızlandırıcı seçme

LiteRT'ye arka uçları dahil etmenin en basit yolu, çalışma zamanının yerleşik akıllı özelliklerinden yararlanmaktır. CompiledModel API ile LiteRT, hedef arka ucu seçenek olarak belirleme özelliği sayesinde kurulumu önemli ölçüde basitleştirir. Daha fazla bilgi için cihaz üzerinde çıkarım kılavuzuna bakın.

Android iOS / macOS Web Linux / Windows IoT
CPU XNNPACK XNNPACK XNNPACK XNNPACK XNNPACK
GPU WebGPU
OpenCL
WebGPU
Metal
WebGPU WebGPU
OpenCL
WebGPU
NPU MediaTek
Qualcomm
- - - -

Ek belgeler ve destek