Android için LiteRT

LiteRT, Android uygulamalarınızda TensorFlow, PyTorch ve JAX modellerini çalıştırmanıza olanak tanır. LiteRT sistemi, donanım hızlandırma seçenekleri de dahil olmak üzere Android'de modelleri hızlı ve verimli bir şekilde çalıştırmak için önceden oluşturulmuş ve özelleştirilebilir yürütme ortamları sağlar.

Örneğin, LiteRT kullanan Android uygulamaları için LiteRT örnekleri deposuna bakın.

Makine öğrenimi modelleri

LiteRT, daha küçük, taşınabilir ve daha verimli bir makine öğrenimi modeli biçimine dönüştürülen TensorFlow, PyTorch ve JAX modellerini kullanır. Android'de LiteRT ile önceden oluşturulmuş modelleri kullanabilir veya kendi modellerinizi oluşturup bunları LiteRT biçimine dönüştürebilirsiniz.

Bu sayfada, önceden oluşturulmuş makine öğrenimi modellerinin kullanımı ele alınmakta olup modellerin oluşturulması, eğitilmesi, test edilmesi veya dönüştürülmesi açıklanmamaktadır. Modeller sayfasında LiteRT için makine öğrenimi modellerini seçme, değiştirme, oluşturma ve dönüştürme hakkında daha fazla bilgi edinin.

Android'de modelleri çalıştırma

Bir Android uygulamasında çalışan LiteRT modeli, verileri alır, işler ve modelin mantığına göre bir tahmin oluşturur. LiteRT modelinin çalıştırılması için özel bir çalışma zamanı ortamı gerekir ve modele aktarılan veriler, tensör adı verilen belirli bir veri biçiminde olmalıdır. Bir model, verileri işlediğinde (çıkarım çalıştırma olarak bilinir) yeni tensörler olarak tahmin sonuçları oluşturur ve bunları Android uygulamasına iletir. Böylece uygulama, sonuçları kullanıcıya gösterme veya ek iş mantığı yürütme gibi işlemler gerçekleştirebilir.

Android uygulamalarındaki LiteRT modelleri için işlevsel yürütme akışı

Şekil 1. Android uygulamalarındaki LiteRT modelleri için işlevsel yürütme akışı.

Android uygulamanızın işlevsel tasarım düzeyinde bir LiteRT modelini çalıştırmak için aşağıdaki öğelere ihtiyacı vardır:

  • Modeli yürütmek için LiteRT çalışma zamanı ortamı
  • Verileri tensörlere dönüştürmek için model giriş işleyici
  • Çıkış sonucu tensörlerini almak ve bunları tahmin sonuçları olarak yorumlamak için model çıkışı işleyici

Aşağıdaki bölümlerde, LiteRT kitaplıkları ve araçlarının bu işlevsel öğeleri nasıl sağladığı açıklanmaktadır.

LiteRT ile uygulama geliştirme

Bu bölümde, Android uygulamanızda LiteRT'yi uygulamak için önerilen ve en yaygın yöntem açıklanmaktadır. En çok çalışma zamanı ortamı ve geliştirme kitaplıkları bölümlerine dikkat etmeniz gerekir. Özel bir model geliştirdiyseniz Gelişmiş geliştirme yolları bölümünü inceleyin.

Çalışma zamanı ortamı seçenekleri

Android uygulamanızda modelleri yürütmek için çalışma zamanı ortamını etkinleştirmenin çeşitli yolları vardır. Tercih edilen seçenekler şunlardır:

Genel olarak, Google Play Hizmetleri tarafından sağlanan çalışma zamanı ortamını kullanmanız gerekir. Bu ortam, dinamik olarak yüklendiği için standart ortama kıyasla daha az yer kaplar ve uygulamanızın boyutunu küçültür. Google Play Hizmetleri, LiteRT çalışma zamanının en yeni ve kararlı sürümünü de otomatik olarak kullanır. Bu sayede zaman içinde ek özellikler ve daha iyi performans elde edersiniz. Uygulamanızı Google Play Hizmetleri'nin bulunmadığı cihazlarda sunuyorsanız veya ML çalışma zamanı ortamınızı yakından yönetmeniz gerekiyorsa standart LiteRT çalışma zamanını kullanmanız gerekir. Bu seçenek, uygulamanıza ek kodlar ekleyerek uygulamanızın indirme boyutunu artırma karşılığında uygulamanızdaki makine öğrenimi çalışma zamanı üzerinde daha fazla kontrol sahibi olmanızı sağlar.

LiteRT geliştirme kitaplıklarını uygulama geliştirme ortamınıza ekleyerek bu çalışma zamanı ortamlarına Android uygulamanızda erişebilirsiniz. Uygulamanızda standart çalışma zamanı ortamlarını kullanma hakkında bilgi edinmek için sonraki bölüme bakın.

Kütüphaneler

Çevirmen API'sine Google Play Hizmetleri'ni kullanarak erişebilirsiniz. Android uygulamanızda LiteRT çekirdek ve destek kitaplıklarını kullanabilirsiniz. LiteRT kitaplıklarını ve çalışma zamanı ortamlarını kullanmayla ilgili programlama ayrıntıları için Android için geliştirme araçları başlıklı makaleyi inceleyin.

Modelleri edinme

Bir modeli Android uygulamasında çalıştırmak için LiteRT biçimli bir model gerekir. Hazır modelleri kullanabilir veya bir model oluşturup Lite biçimine dönüştürebilirsiniz. Android uygulamanız için modeller edinme hakkında daha fazla bilgi edinmek istiyorsanız LiteRT Modeller sayfasına bakın.

Giriş verilerini işleme

Bir makine öğrenimi modeline ilettiğiniz tüm veriler, belirli bir veri yapısına sahip bir tensör olmalıdır. Bu yapıya genellikle tensörün şekli denir. Verileri bir modelle işlemek için uygulama kodunuzun, verileri kendi biçiminden (ör. görüntü, metin veya ses verileri) modeliniz için gerekli şekle sahip bir tensöre dönüştürmesi gerekir.

Çıkarım çalıştırma

Tahmin sonucu oluşturmak için verilerin bir model aracılığıyla işlenmesine çıkarım çalıştırma adı verilir. Android uygulamasında çıkarım çalıştırmak için LiteRT çalışma zamanı ortamı, model ve giriş verileri gerekir.

Bir modelin belirli bir cihazda çıkarım oluşturma hızı; işlenen verilerin boyutuna, modelin karmaşıklığına ve bellek ile CPU gibi mevcut bilgi işlem kaynaklarına veya hızlandırıcılar adı verilen özel işlemcilere bağlıdır. Makine öğrenimi modelleri, grafik işleme birimleri (GPU'lar) ve tensor işleme birimleri (TPU'lar) gibi bu özel işlemcilerde delegeler adı verilen LiteRT donanım sürücüleri kullanılarak daha hızlı çalışabilir. Temsilciler ve model işlemenin donanım hızlandırması hakkında daha fazla bilgi için Donanım hızlandırmaya genel bakış başlıklı makaleyi inceleyin.

Çıkış sonuçlarını işleme

Modeller, tahmin sonuçlarını tensör olarak oluşturur. Bu tensörler, Android uygulamanız tarafından işlem yapılarak veya kullanıcıya sonuç gösterilerek işlenmelidir. Model çıkışı sonuçları, bir resim sınıflandırması için tek bir sonuca karşılık gelen bir sayı (0 = köpek, 1 = kedi, 2 = kuş) kadar basit olabileceği gibi, bir resimdeki sınıflandırılmış birden fazla nesne için birden fazla sınırlayıcı kutu gibi çok daha karmaşık sonuçlar da olabilir. Bu sonuçlarda, tahmin güveni derecelendirmeleri 0 ile 1 arasındadır.

Gelişmiş geliştirme yolları

Daha gelişmiş ve özelleştirilmiş LiteRT modellerini kullanırken yukarıda açıklananlardan daha gelişmiş geliştirme yaklaşımları kullanmanız gerekebilir. Aşağıdaki bölümlerde, modelleri yürütmeye ve Android uygulamalarında LiteRT için geliştirmeye yönelik gelişmiş teknikler açıklanmaktadır.

Gelişmiş çalışma zamanı ortamları

LiteRT için standart çalışma zamanı ve Google Play Hizmetleri çalışma zamanı ortamlarına ek olarak, Android uygulamanızla kullanabileceğiniz ek çalışma zamanı ortamları da vardır. Bu ortamların en olası kullanım alanı, LiteRT için standart çalışma zamanı ortamı tarafından desteklenmeyen makine öğrenimi işlemlerini kullanan bir makine öğrenimi modeliniz olmasıdır.

LiteRT Flex çalışma zamanı, modeliniz için gereken belirli operatörleri eklemenize olanak tanır. Modelinizi çalıştırmak için gelişmiş bir seçenek olarak, TensorFlow makine öğrenimi modelinizi çalıştırmak için gereken operatörleri ve diğer işlevleri içerecek şekilde Android için LiteRT'yi oluşturabilirsiniz. Daha fazla bilgi için Android için LiteRT'yi oluşturma başlıklı makaleyi inceleyin.

C ve C++ API'leri

LiteRT, C ve C++ kullanarak modelleri çalıştırmak için bir API de sağlar. Uygulamanız Android NDK'yı kullanıyorsa bu API'yi kullanmayı düşünebilirsiniz. Birden fazla platform arasında kod paylaşmak istiyorsanız bu API'yi kullanmayı da düşünebilirsiniz. Bu geliştirme seçeneği hakkında daha fazla bilgi için Geliştirme araçları sayfasını inceleyin.

Sunucu tabanlı model yürütme

Genel olarak, kullanıcılarınız için daha düşük gecikme süresinden ve gelişmiş veri gizliliğinden yararlanmak amacıyla uygulamanızdaki modelleri bir Android cihazda çalıştırmanız gerekir. Ancak, bir modeli cihaz dışında, bulut sunucusunda çalıştırmanın daha iyi bir çözüm olabileceği durumlar vardır. Örneğin, kullanıcılarınızın Android cihazlarına sığacak boyuta kolayca sıkıştırılamayan veya bu cihazlarda makul bir performansla çalıştırılamayan büyük bir modeliniz varsa. Bu yaklaşım, modelin çok çeşitli cihazlarda tutarlı performans göstermesi sizin için en önemli öncelikse tercih ettiğiniz çözüm olabilir.

Google Cloud, yapay zeka modellerini çalıştırmak için eksiksiz bir hizmet paketi sunar. Daha fazla bilgi için Google Cloud'un Yapay zeka ve makine öğrenimi ürünleri sayfasına bakın.

Özel model geliştirme ve optimizasyon

Daha gelişmiş geliştirme yolları, özel makine öğrenimi modelleri geliştirmeyi ve bu modelleri Android cihazlarda kullanılmak üzere optimize etmeyi içerebilir. Özel modeller oluşturmayı planlıyorsanız bellek ve işlem maliyetlerini azaltmak için modellere nicemleme teknikleri uyguladığınızdan emin olun. LiteRT ile kullanılmak üzere yüksek performanslı modeller oluşturma hakkında daha fazla bilgi için Modeller bölümündeki Performansla ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.

Desteklenen Android Sürümleri

LiteRT Sürümü Durum Minimum SDK düzeyi Minimum NDK Seviyesi (kullanılıyorsa) Yayın Tarihi
v1.2.0 ✅ Etkin 21 (Android 5 Lollipop) r26a 2025-03-13

Önemli: En yeni özellikler ve güvenlik güncellemeleriyle uyumluluğu sağlamak için bağımlılıklarınızı güncel tutun.