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 modelleri Android'de 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 model oluşturma, eğitim, test etme veya dönüştürme konuları ele alınmamaktadır. LiteRT için makine öğrenimi modellerini seçme, değiştirme, oluşturma ve dönüştürme hakkında daha fazla bilgiyi Modeller sayfasında bulabilirsiniz.

Android'de model çalıştırma

Android uygulamasında çalışan bir LiteRT modeli, verileri alır, verileri işler ve modelin mantığına göre bir tahmin oluşturur. LiteRT modellerinin çalıştırılması için özel bir çalışma zamanı ortamı gerekir ve modele iletilen veriler tenör adı verilen belirli bir veri biçiminde olmalıdır. Bir model, verileri işlediğinde (tahmine çalıştırma olarak bilinir) yeni tensörler olarak tahmin sonuçlarını oluşturur ve bunları Android uygulamasına iletir. Böylece uygulama, sonucu kullanıcıya göstermek veya ek iş mantığı yürütmek gibi işlemler yapabilir.

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ışı.

İşlevsel tasarım düzeyinde, Android uygulamanızın LiteRT modeli çalıştırması için aşağıdaki öğelere ihtiyacı vardır:

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

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

LiteRT ile uygulama oluşturma

Bu bölümde, Android uygulamanızda LiteRT'yi uygulamak için önerilen ve en yaygın yol açıklanmaktadır. En çok çalışma 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 çalıştırmak için bir çalışma ortamı etkinleştirmenin birkaç yolu vardır. Tercih edilen seçenekler şunlardır:

Genel olarak, Google Play Hizmetleri tarafından sağlanan çalışma ortamının kullanılması önerilir. Bu ortam, dinamik olarak yüklenerek uygulamanızın boyutunu küçülttüğü için standart ortamdan daha fazla yer tasarrufu sağlar. Google Play Hizmetleri, LiteRT çalışma ortamının en son ve kararlı sürümünü otomatik olarak kullanır. Böylece zaman içinde ek özellikler ve daha iyi performans elde edersiniz. Uygulamanızı Google Play Hizmetleri'ni içermeyen cihazlarda sunuyorsanız veya ML çalışma ortamınızı yakından yönetmeniz gerekiyorsa standart LiteRT çalışma ortamını kullanmanız gerekir. Bu seçenek, uygulamanıza ek kod ekler. Böylece, uygulamanızın indirme boyutunu artırma pahasına uygulamanızdaki ML çalışma zamanı üzerinde daha fazla kontrole sahip olabilirsiniz.

Android uygulamanızda bu çalışma ortamına, uygulama geliştirme ortamınıza LiteRT geliştirme kitaplıkları ekleyerek erişirsiniz. Uygulamanızda standart çalışma ortamının nasıl kullanılacağı hakkında bilgi edinmek için bir sonraki bölüme bakın.

Kütüphaneler

Google Play hizmetlerini kullanarak Çevirmen API'ye erişebilirsiniz. Android uygulamanızda LiteRT çekirdek ve destek kitaplıklarını kullanabilirsiniz. LiteRT kitaplıklarını ve çalışma ortamı özelliklerini 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çiminde bir model gerekir. Önceden oluşturulmuş modelleri kullanabilir veya bir model oluşturup bunu Lite biçimine dönüştürebilirsiniz. Android uygulamanız için modeller edinme hakkında daha fazla bilgi için LiteRT Modeller sayfasına bakın.

Giriş verilerini işleme

Bir makine öğrenimi modeline ilettiğiniz tüm veriler, genellikle tenzorun şekli olarak adlandırılan belirli bir veri yapısına sahip bir tenzor olmalıdır. Verileri bir modelle işlemek için uygulamanızın kodu, verileri görüntü, metin veya ses verileri gibi doğal biçiminden modeliniz için gerekli biçimdeki bir tenöre dönüştürmelidir.

Çıkarımlar yapma

Tahmin sonucu oluşturmak için verileri bir model aracılığıyla işleme, çıkarım çalıştırma olarak bilinir. Android uygulamasında çıkarım çalıştırmak için LiteRT çalışma 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 ve CPU gibi mevcut bilgi işlem kaynaklarına ya da hızlandırıcılar olarak adlandırılan özel işlemcilere bağlıdır. Makine öğrenimi modelleri, temsilciler olarak adlandırılan LiteRT donanım sürücülerini kullanarak grafik işleme birimleri (GPU'lar) ve tensor işleme birimleri (TPU'lar) gibi özel işlemcilerde daha hızlı çalışabilir. Temsilciler ve model işleme için donanım hızlandırma 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 sonuçlar, Android uygulamanız tarafından işlem yaparak veya kullanıcıya bir sonuç göstererek ele alınmalıdır. Model çıkışı sonuçları, 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 veya 0 ile 1 arasında tahmin güven puanları içeren, resimdeki sınıflandırılmış çeşitli nesneler için birden fazla sınır kutusu gibi çok daha karmaşık sonuçlar olabilir.

Gelişmiş geliştirme yolları

Daha karmaşık ve özelleştirilmiş LiteRT modelleri kullanırken yukarıda açıklananlardan daha gelişmiş geliştirme yaklaşımları kullanmanız gerekebilir. Aşağıdaki bölümlerde, modelleri çalıştırma 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ı, LiteRT için standart çalışma zamanı ortamı tarafından desteklenmeyen makine öğrenimi işlemlerini kullanan bir makine öğrenimi modeliniz varsa olur.

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 derleyebilirsiniz. Daha fazla bilgi için Android için LiteRT oluşturma başlıklı makaleyi inceleyin.

C ve C++ API'leri

LiteRT, C ve C++ kullanarak model çalıştırmak için bir API de sağlar. Uygulamanız Android NDK kullanıyorsa bu API'yi kullanmayı düşünmeniz önerilir. 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ına bakın.

Sunucu tabanlı model yürütme

Genel olarak, kullanıcılarınız için daha düşük gecikmeden ve iyileştirilmiş veri gizliliğinden yararlanmak amacıyla uygulamanızdaki modelleri Android cihazda çalıştırmanız gerekir. Bununla birlikte, bir modeli cihaz dışında, bulut sunucusunda çalıştırmanın daha iyi bir çözüm olduğu durumlar da vardır. Örneğin, kullanıcılarınızın Android cihazlarına sığacak bir boyuta kolayca sıkıştırılamayan veya bu cihazlarda makul bir performansla çalıştırılabilecek büyük bir modeliniz varsa. Modelin geniş bir cihaz yelpazesinde tutarlı performansı birinci önceliğinizse bu yaklaşım 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ı arasında özel makine öğrenimi modelleri geliştirme ve bu modelleri Android cihazlarda kullanılmak üzere optimize etme yer alabilir. Özel modeller oluşturmayı planlıyorsanız bellek ve işleme maliyetlerini azaltmak için modellere kümelendirme teknikleri uygulamayı unutmayın. LiteRT ile kullanılmak üzere yüksek performanslı modellerin nasıl oluşturulacağı hakkında daha fazla bilgi için Modeller bölümündeki Performansla ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.