Program
Google, uç cihazlar için çok modlu, görsel, dil ve ses görevlerini modüler yürütme ile destekleyen Gemma 3n modelini yeni yayımladı. Bu eğitimde, Gemma 3n’i adım adım nasıl indirip yerelde, doğrudan Android cihazınızda çalıştıracağınızı anlatacağım—bulut hesaplamaya gerek yok. Şu işlemleri yapmanızı sağlayan bir demo uygulaması kullanacağız:
- Görseller hakkında doğal dille sorular sorma
- Modeli Google’ın
ai-edge-litertçalışma zamanı ile tamamen çevrimdışı çalıştırma - Deneyimi özel bir Android uygulama arayüzü içinde test etme
.task dosya formatının hafif dağıtımı nasıl mümkün kıldığını, uygulamanın Gemma 3n’i yerel kullanım için nasıl otomatik indirip başlattığını ve tüm bunları yaparken performansı akıcı, bellek kullanımını düşük tuttuğunu öğreneceksiniz.
Yapay Zeka Uygulamaları Geliştirin
Gemma 3n Nedir?
Gemma 3n, telefonlar, tabletler ve dizüstü bilgisayarlar gibi gündelik cihazlarda verimli şekilde çalışacak biçimde tasarlanmış, Google AI’nın en yeni, açık ağırlıklı çok modlu model ailesidir. Katman Başına Gömme (PLE) parametre önbelleklemesini destekleyen yeni MatFormer mimarisi üzerine kurulu olan Gemma 3n, bellek ve hesaplama maliyetlerini en aza indirirken cihaz üzerinde yüksek performans sunar.
Geleneksel görsel-dil modellerine (VLM) benzer olmakla birlikte, Gemma 3n metin, görsel ve ses kiplerini destekler. "3n" varyantı özellikle uç dağıtım için optimize edilmiştir ve Google’ın AI Edge SDK’si aracılığıyla CPU, NPU veya mobil GPU’larda hafif şekilde çalışır.
Gemma 3n’in başlıca özellikleri şunlardır:
- Çok modlu girdi: Temellendirilmiş görsel muhakeme için hem metin hem görsel girdi alır
- Cihaz üzerinde çıkarım: Model indirildikten sonra internete gerek yok
- Parametre verimliliği: Bellek yükünü azaltmak için seçici etkinleştirme, PLE önbellekleme ve MatFormer iç içe yapısını kullanır
- Mobil için optimize: Gemma 3n, Android’de MediaPipe ve Google AI Edge araçlarıyla INT4 ve FP16 çıkarımını destekler
- Açık ağırlıklar: Sorumlu ticari kullanım ve ince ayar için lisanslanmıştır
Önemli not: Gemma 3n tam mimarisinde ses girdilerini desteklese de, ses yetenekleri henüz herkese açık önizlemede mevcut değildir.
Gemma 3n’e Nasıl Erişilir?
Gemma 3n’i üç yöntemden biriyle deneyebilirsiniz:
- Google AI Studio: Tarayıcıda başlamanın en kolay yolu. Google AI Studio sayfasına gidip model listesinden Gemma 3n’i seçin. Şu anda yalnızca “gemma-3n-e4b-it” varyantı kullanımda.
- Hugging Face önizlemesi: Gemma 3n’in
.taskdosyası Google’ınai-edge-litertformatı altında yayımlanmıştır. Hugging Face modeller sayfasına erişim isteği gönderebilir ve modeli yerel olarak indirip çıkarım yapabilirsiniz. Bir.taskdosyası, modelin önceden derlenmiş sürümünü, meta verilerini ve tüm gerekli yapılandırmaları içeren; Google’ın AI Edge SDK’sı ile hızlı ve güvenli cihaz üstü yürütme için tasarlanmış, kompakt ve çalışma zamanı dostu bir pakettir. - Cihazda çalıştırın (önerilir): Google’ın resmi Gemma Gallery Uygulamasını kullanarak Gemma 3n’i doğrudan Android telefonunuzda çalıştırın. Bu yöntem, yerel bir model aracılığıyla tam görsel ve istem etkileşimini destekler.
Şimdi, görsel ve metin istemlerini işlemek için Gemma 3n modelini kullanan çalışan bir Android uygulamasını nasıl oluşturacağınızı adım adım göstereceğim. Google’ın resmi Gallery deposunu temel alacak ve uygulamayı doğrudan dikkat dağıtmadan Ask Image ekranına açılacak şekilde özelleştireceğiz.
Adım 1: Uygulamayı Klonlayın ve Kurun
Yeni bir proje oluşturarak ve Google’daki orijinal depoyu klonlayarak başlayalım.
Adım 1.1: Yeni bir Android Studio projesi oluşturun
Dizüstü bilgisayarınızda, projeyi Android Studio’da yeni bir proje olarak açın ve Empty Activity’yi seçin.

Adım 1.2: Yeni bir boş etkinlik ayarlayın
Ardından, etkinliğinizin adını doldurun (örneğin, “Ask_Image_Demo”) ve gerisini olduğu gibi bırakın. Sonra Finish’e tıklayın.

Adım 1.3: Ana depoyu klonlayın
Şimdi, Android Studio içindeki terminali (sol alt köşe) açın ve aşağıdaki bash komutlarını çalıştırın:
git clone https://github.com/google-ai-edge/gallery
cd gallery/android

Bu, projenizi açacaktır. Sekmenin sol tarafında tüm proje dosyalarını görüntüleyebilirsiniz.

Adım 2: Ask Image Dışındaki Tüm Görevleri Kaldırın
Sırada, uygulamamızın açıldığında doğrudan Ask Image sayfasına gitmesi için birkaç dosyayı düzenleyeceğiz. Ardından şu konumdaki Tasks.kt dosyasına gidin: app/src/main/java/com/google/ai/edge/gallery/data/Tasks.kt. Uygulamanın işlevselliğini yalnızca 'Ask Image' özelliğiyle sınırlamak için aşağıdaki düzenlemeleri yapacağız:
Önce:
/** All tasks. */
val TASKS: List<Task> = listOf(
TASK_LLM_ASK_IMAGE,
TASK_LLM_PROMPT_LAB,
TASK_LLM_CHAT,
)
Sonra:
/** All tasks. */
val TASKS: List<Task> = listOf(
TASK_LLM_ASK_IMAGE
)
Bu değişiklik, Prompt Lab ve Chat gibi diğer demoları devre dışı bırakır ve yalnızca Ask Image’ın görünmesini sağlar.
Adım 3: Ask Image Ekranına Otomatik Geçiş
GalleryApp.kt dosyasında (// app/src/main/java/com/google/ai/edge/gallery/GalleryApp.kt konumunda), LaunchedEffect’i görsel sayfasına otomatik yönlendirecek şekilde güncelleyin. Bu değişiklik, uygulamanın varsayılan görev seçimi ekranını atlayarak doğrudan Ask Image arayüzünü açmasını sağlar.
Önce:
@Composable
fun GalleryApp(navController: NavHostController = rememberNavController()) {
GalleryNavHost(navController = navController)
}
Sonra:
package com.google.ai.edge.gallery
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController
import com.google.ai.edge.gallery.data.TASK_LLM_ASK_IMAGE
import com.google.ai.edge.gallery.ui.llmchat.LlmAskImageDestination
import com.google.ai.edge.gallery.ui.navigation.GalleryNavHost
@Composable
fun GalleryApp(
navController: NavHostController = rememberNavController()
) {
// as soon as GalleryApp comes up, navigate to Ask-Image
// and drop “home” off the back-stack:
LaunchedEffect(Unit) {
TASK_LLM_ASK_IMAGE.models
.firstOrNull() // safety: don’t crash if the models list is empty
?.name
?.let { modelName ->
navController.navigate("${LlmAskImageDestination.route}/$modelName") {
popUpTo("home") { inclusive = true }
}
}
}
GalleryNavHost(navController = navController)
}
Yeni koddaki güncellenmiş GalleryApp işlevinin yaptıklarının kısa özeti:
LaunchedEffect: Oluşumda bir kez tetiklenen bir Jetpack Compose yan etkisi. Burada,GalleryAppoluşturulur oluşturulmaz gezinti mantığını çalıştırmak için kullanılıyor.- İlk mevcut modeli alır:
TASK_LLM_ASK_IMAGE.models.firstOrNull(), gezinmede kullanılmak üzere ilk mevcut görsel-metin modelinin (ör. Gemma 3n) adını güvenli şekilde alır. Bu, model listesi boşsa uygulamanın çökmesini önler. navController.navigate(): Uygulamayı seçilen modelin adını kullanarak Ask-Image ekranına dinamik olarak yönlendirir. Bu, giriş noktası olarak varsayılan Ana ekranın yerini alır.- Geri gezinmede ana ekranı kaldırma:
popUpTo("home")yöntemi, geçmişten Ana ekranı kaldırarak gezinme yığınını temizler. Böylece kullanıcı sistemin geri tuşuyla bu ekrana dönemaz.
Kalan kodu olduğu gibi bırakın. Bu değişiklikler birlikte, uygulamanın geçerli bir model yüklenmiş şekilde doğrudan Ask-Image arayüzünde açılmasını sağlar ve demo akışını iyileştirir.
Adım 4: Uygulamayı Cihazınıza Yükleyin ve Çalıştırın
Gerekli tüm değişiklikleri yaptıktan sonra uygulamayı çalıştıracağız. Uygulamanızı yerel Android cihazınızda çalıştırmak için, aşağıdaki adımlarla Android Studio ile cihazınızı kablosuz hata ayıklama üzerinden eşleştirin.
Adım 4.1: Android cihazı hazırlayın
Android cihazınızda Ayarlar uygulamasına gidip Geliştirici seçeneklerini etkinleştirin. Ardından Kablosuz hata ayıklamayı açın. İki eşleştirme seçeneği olan bir ekran görmelisiniz.

Adım 4.2: Android Studio’da cihazları yönetin
Android Studio’da Device Manager (Android logolu telefon simgesine benzer) öğesini açın ve QR koduyla eşle seçeneğine tıklayın.

Cihazınızla QR kodu tarayın ve eşleştirme kurulumunu tamamlayın. Cihazınız bağlandığında, Device Manager altında cihaz adınızı göreceksiniz. Bilgisayarınız ile Android cihazınızın aynı WiFi ağına bağlı olduğundan emin olun.

Adım 4.3: Uygulamayı çalıştırın
Android cihazınızı, Device Mirroring simgesine (bir masaüstü ekranı ve telefon ekranı gösterir) tıklayarak yansıtmayı başlatın. Cihaz ekranınız yansıtıldığında, yeşil Run simgesine tıklayarak uygulamayı cihazınıza dağıtın.
Adım 4.4: Modelleri cihazda indirin
Uygulama başlatılacak ve modeli güvenli şekilde indirmek için Hugging Face’e giriş yapmanızı isteyen bir tarayıcı penceresi açılacaktır.

HuggingFace’e giriş yaptıktan sonra, tercih ettiğiniz model için indirmeyi başlat’a tıklayın; indirme başlayacaktır. Bu örnekte varsayılan olarak Gemma-3n-E2B-it-int4 modelini kullanıyorum.

Adım 4.5: Denemelere başlayın
İndirme tamamlandığında, sizi doğrudan “Ask Image” sayfasına götürecek. Ardından, galerinizden mevcut bir görsel seçin veya cihazınızın kamerasıyla yeni bir fotoğraf çekin. Sonra görselle birlikte bir istem verip modeli çalıştırın.

İşte benim denediğim bir örnek.


Model başlangıçta CPU üzerinde çalışır. Üç yatay sürgü simgesiyle temsil edilen 'Tune' simgesini kullanarak olası daha iyi performans için GPU’ya geçebilirsiniz.


GPU’ya geçmek, özellikle daha büyük görsellerin ve daha karmaşık sorguların işlenmesinde toplam gecikmeyi önemli ölçüde azaltabilir. GPU işlemesi genelde daha hızlı çözümleme (decode) hızları sunarak yanıtları hızlandırsa da, bazı durumlarda prefill hızının CPU’da az da olsa daha yüksek olabileceğini unutmayın.
Bunun nedeni, verilerin ilk yüklenmesi ve hazırlanmasının (prefill) CPU’ya bağımlı olabilmesidir. Ancak GPU’da daha hızlı çözümleme ve genel gecikmenin azalması genellikle daha ağır basar; bu da daha akıcı ve duyarlı bir deneyim sağlar.
Tam proje kodunu incelemek isterseniz, bu GitHub deposunu hazırladım.
Sonuç
Gemma 3n’in, uç cihazlarda bulut çıkarımına gerek duymadan görsel-soru yanıtlama yeteneğini nasıl mümkün kıldığını inceledik. Hafif bir Android uygulamasına bir .task dosyasını nasıl entegre edeceğinizi, modeli doğal dille nasıl yönlendireceğinizi ve doğrudan telefonunuzdan herhangi bir görsel hakkında doğru yanıtlar alacağınızı öğrendiniz.
Bu uygulamalı rehber, Gemma 3n’in çok modlu yapay zekâyı demokratikleştirerek geliştiricilerin ve araştırmacıların güçlü modelleri cihaz üzerinde dağıtmasını nasıl kolaylaştırdığını gösteriyor. İster çevrimdışı asistanlar, eğitim araçları, sağlık uygulamaları veya başka çözümler geliştirin, Gemma 3n pek çok kullanım senaryosunu destekleyebilir.
Google Matformer mimarisini geliştirmeye devam ederken, daha da kompakt, daha yüksek doğruluk ve daha düşük gecikmeli çok modlu modeller göreceğimizi umuyorum. Gemma 3n hakkında daha fazla bilgi için resmi AI Edge duyuru bloguna göz atın veya açık kaynak deposuna GitHub üzerinden dalın.
Daha fazla yeni yapay zekâ aracını keşfetmek isterseniz, şu blogları öneririm:
ML (Üretken Yapay Zekâ) alanında Google Developers Uzmanıyım, Kaggle 3x Expert unvanına sahibim ve 3+ yıllık teknoloji deneyimiyle Women Techmakers Elçisiyim. 2020'de bir sağlık teknolojileri girişiminin kurucu ortağı oldum ve Georgia Tech'te makine öğrenmesi alanında uzmanlaşarak bilgisayar bilimleri yüksek lisansı yapıyorum.

