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.

LiteRT 2.x, Interpreter API'yi (diğer adıyla TensorFlow Lite API'leri) geliştiren en yeni çalışma zamanı API'si olan CompiledModel API'yi içerir. Bu API, özellikle cihaz üzerinde makine öğrenimi ve yapay zeka uygulamalarında donanım hızlandırma ve genel performans açısından iyileştirmeler sunar. CompiledModel API, beta sürümündedir ve hem Kotlin hem de C++'ta kullanılabilir.

LiteRT'nin temel özellikleri

Desteklenen Modeller

LiteRT, Pytorch, TensorFlow ve JAX Framework'lerinden .tflite veya .litertlm biçimine dönüştürmeyi kolaylaştırır.

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

Otomatik hızlandırıcı seçimi ve açıkça temsilci oluşturma Basit NPU çalışma zamanı ve model dağıtımı. Üstün performans için verimli G/Ç arabellek işleme ve eşzamansız yürütme.

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.

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.

LiteRT ile basitleştirilmiş LLM desteği

LiteRT tarafından desteklenen LiteRT-LM'yi kullanabilirsiniz. LiteRT-LM, en yeni LLM'leri ve çok formatlılık, kısıtlanmış kod çözme gibi faydalı özellikleri destekler.

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).

Makine öğrenimi modelleri ve üretken yapay zeka modelleri için Ai-Edge-Quantization belgelerine bakın.

Başlamak için ön koşullar

  • Python 3.10-3.12
  • .tflite model dosyası
  • İlgili platform bölümünde ek ayrıntılar mevcuttur.

Modeli, uç platformlardaki uygulamanıza entegre etme

LiteRT modellerinizi, Android, iOS, Web, IoT ve masaüstü cihazlarda çıkarımları tamamen cihaz üzerinde çalıştıracak şekilde uygulayabilirsiniz. LiteRT; Android için Python, Java ve Kotlin, iOS için Swift ve mikro cihazlar için C++ dillerine yönelik API'ler içerir.

Tercih ettiğiniz platformda LiteRT modeli uygulamak için aşağıdaki kılavuzları kullanın:

Model Çerçevesi Örnek Modeller Dönüştürme Aracı
Android'de çalıştırma Android mobil cihazlar C++/Kotlin API'leri
iOS'te çalıştırma iOS mobil cihazlar C++/Swift* API'leri
LiteRT.js kullanarak web'de çalıştırma Chrome, Firefox veya Safari'nin yüklü olduğu bir cihaz JavaScript API'leri
Run on Micro Yerleştirilmiş cihazlar C++ API'leri

*Çok yakında

Kotlin kodu örneği

// 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++ kod örneği

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));

Arka uç seçin

LiteRT'ye arka uçları dahil etmenin en basit yolu, çalışma zamanının yerleşik akıllı özelliklerinden yararlanmaktır. En son değişikliklerle birlikte LiteRT, hedef arka ucu seçenek olarak belirleme olanağı sunarak kurulumu önemli ölçüde basitleştirir.

LiteRT v2.x'in temelinde CompiledModel nesnesi bulunur. Bir modeli yüklediğinizde LiteRT, manuel yapılandırma olmadan optimum arka ucu seçmek için sistemin kullanılabilir donanımını ve dahili öncelik mantığını kullanır. Daha fazla ayrıntı için arka uca bakın.

Android Masaüstü Web iOS macOS IoT
CPU XNNPack XNNPack XNNPack XNNPack XNNPack XNNPack
GPU WebGPU
OpenCL
WebGPU
OpenCL
WebGPU WebGPU
Metal
WebGPU
Metal
WebGPU
NPU MediaTek
Qualcomm
- - - - -

Ek belgeler ve destek

LiteRT v2.x örnek uygulaması LiteRT Görüntü Segmentasyonu Örnek Uygulaması'na bakın.

TensorFlow Lite'ın mevcut kullanıcıları için Taşıma kılavuzuna bakın.

İşlemler kapsamı Uyumlu operatörler

Desteklenen LLM Modelleri LiteRT Hugging Face ve Gen API - örnekler

Araçlar LiteRT araçlar sayfası - Performans, profil oluşturma, hata raporlama vb.