Gemini Nano deneysel erişimini kullanmaya başlama

Gemini Nano deneysel erişimi, uygulamalarının geliştirilmesini ileri teknoloji cihaz üzerinde yapay zeka özellikleriyle test etmek isteyen geliştiriciler için tasarlanmıştır. Bu kılavuzda, kendi uygulamanızda Google AI Edge SDK'sını kullanarak Gemini Nano ile deneme yapma hakkında ayrıntılı bilgi verilmektedir.

Örnek uygulamayı indirme

Hazır bir demoyu takip etmek istiyorsanız GitHub'daki örnek uygulamamıza göz atın.

Ön koşullar

Gemini Nano'yu denemek için Pixel 9 serisi bir cihaza ihtiyacınız vardır. Devam etmeden önce bir USB kablonuz olduğundan ve yalnızca test için kullanmak istediğiniz hesapla giriş yaptığınızdan emin olun.

  1. aicore-experimental Google grubuna katılın
  2. Android AICore test programına kaydolun.

Bu adımları tamamladıktan sonra Play Store'daki uygulama adı ("Uygulamaları ve cihazı yönet" bölümünde) "Android AICore" yerine "Android AICore (Beta)" olarak değişir.

APK'ları güncelleme ve ikili dosyaları indirme

  1. AICore APK'sını güncelleyin:
    1. Sağ üst taraftaki profil simgesine dokunun.
    2. Uygulamaları ve cihazı yönet > Yönet'e dokunun.
    3. Android AICore'a dokunun.
    4. Güncelleme varsa Güncelle'ye dokunun.
  2. Private Compute Service APK'sını güncelleyin:
    1. Sağ üst taraftaki profil simgesine dokunun.
    2. Uygulamaları ve cihazı yönet > Yönet'e dokunun.
    3. Private Compute Services'e dokunun.
    4. Güncelleme varsa Güncelle'ye dokunun.
    5. Bu uygulama hakkında sekmesinde sürümün kontrol edin ve uygulama sürümünün 1.0.release.658389993 veya daha yeni bir sürüm olduğunu onaylayın.
  3. Cihazınızı yeniden başlatın ve test kaydının geçerlilik kazanması için birkaç dakika bekleyin
  4. Play Store'daki AICore APK sürümünün 0.thirdpartyeap ile başladığını doğrulamak için "Bu uygulama hakkında" sekmesine gidin.

Gradle'ı yapılandırma

build.gradle yapılandırmanızdaki bağımlılık blokuna aşağıdakileri ekleyin:


implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")

build.gradle yapılandırmanızda minimum SDK hedefini 31 olarak ayarlayın:

defaultConfig {
    ...
    minSdk = 31
    ...
}

AICore'u alma ve çıkarım çalıştırma

Modelin çıkarım işlemini nasıl yürütmesi gerektiğine dair özellikleri özelleştirmek için parametreler içeren bir GenerationConfig nesnesi oluşturun.

Parametreler şunları içerir:

  • Sıcaklık: Rastgeleliği kontrol eder; daha yüksek değerler çeşitliliği artırır
  • Top K: En yüksek puana sahip olanlardan kaç tanesinin dikkate alınacağı
  • Aday Sayısı: Döndürülecek maksimum yanıt sayısı
  • Maks. çıkış jetonu sayısı: Yanıtın uzunluğu
  • Çalışan Yürütücü: Arka plan görevlerinin çalıştırılması gereken ExecutorService
  • Geri Arama Yürütücüsü: Geri aramaların çağrılacağı Executor

Kotlin

val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext() // required
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}

Java

GenerationConfig.Builder configBuilder = GenerationConfig.Companion.builder();
    configBuilder.setContext(context);
    configBuilder.setTemperature(0.2f);
    configBuilder.setTopK(16);
    configBuilder.setMaxOutputTokens(256);

İsteğe bağlı bir downloadCallback oluşturun. Bu, model indirme için kullanılan bir geri çağırma işlevidir. Geri döndürülen mesajlar hata ayıklama amacıyla gönderilir.

Daha önce oluşturduğunuz oluşturma ve isteğe bağlı indirme yapılandırmalarıyla GenerativeModel nesnesini oluşturun.

Kotlin

val downloadConfig = DownloadConfig(downloadCallback)
val model = GenerativeModel(
   generationConfig = generationConfig,
   downloadConfig = downloadConfig // optional
)

Java

GenerativeModel model = new GenerativeModel(
   generationConfig,
   downloadConfig = DownloadConfig(downloadCallback) // optional
);

Modelle çıkarım çalıştırın ve isteminizi iletin. GenerativeModel.generateContent() bir askıya alma işlevi olduğundan, başlatılması için doğru iş parçacığı kapsamında olduğundan emin olmamız gerekir.

Kotlin

scope.launch {
  // Single string input prompt
  val input = "I want you to act as an English proofreader. I will provide you
    texts, and I would like you to review them for any spelling, grammar, or
    punctuation errors. Once you have finished reviewing the text, provide me
    with any necessary corrections or suggestions for improving the text: These
    arent the droids your looking for."
  val response = generativeModel.generateContent(input)
  print(response.text)

  // Or multiple strings as input
  val response = generativeModel.generateContent(
  content {
    text("I want you to act as an English proofreader. I will provide you texts
      and I would like you to review them for any spelling, grammar, or
      punctuation errors.")
    text("Once you have finished reviewing the text, provide me with any
      necessary corrections or suggestions for improving the text:")
    text("These arent the droids your looking for.")
    }
  )
  print(response.text)
}

Java

Futures.addCallback(
    String input = "I want you to act as an English proofreader. I will
    provide you texts, and I would like you to review them for any
    spelling, grammar, or punctuation errors. Once you have finished
    reviewing the text, provide me with any necessary corrections or
    suggestions for improving the text:
    These aren't the droids you're looking for."
    modelFutures.generateContent(input),
    new FutureCallback<GenerateContentResponse>() {
      @Override
      public void onSuccess(GenerateContentResponse result) {
        // generation successful
      }

      @Override
      public void onFailure(Throwable t) {
        // generation failed
      }
    },
    ContextCompat.getMainExecutor(this));

Google AI Edge SDK'sı veya ekibimizle ilgili başka bir geri bildiriminiz varsa destek kaydı gönderin.

İstem ipuçları

İstem tasarımı, dil modellerinden optimum yanıtı alacak istemler oluşturma sürecidir. İyi yapılandırılmış istemler yazmak, dil modelinden doğru ve yüksek kaliteli yanıtlar almanın önemli bir parçasıdır. Gemini Nano'nun yaygın kullanım alanlarını öğrenmenize yardımcı olacak bazı örnekler ekledik. Daha fazla bilgi için Gemini istem stratejilerine göz atın.

Yeniden yazma işlemleri için:

I want you to act as an English proofreader. I will provide you texts, and I
would like you to review them for any spelling, grammar, or punctuation errors.
Once you have finished reviewing the text, provide me with any necessary
corrections or suggestions for improving the text: These arent the droids your
looking for

Akıllı Yanıt kullanım alanları:

Prompt: Predict up to 5 emojis as a response to a text chat message. The output
should only include emojis.

input: The new visual design is blowing my mind 🤯
output: ➕,💘, ❤‍🔥

input: Well that looks great regardless
output: 💗,🪄

input: Unfortunately this won't work
output: 💔,😔

input: sounds good, I'll look into that
output: 🙏,👍

input: 10hr cut of jeff goldblum laughing URL
output: 😂,💀,⚰️

input: Woo! Launch time!
Output:

Özetleme için:

Summarize this text as bullet points of key information.
Text: A quantum computer exploits quantum mechanical phenomena to perform
  calculations exponentially faster than any modern traditional computer. At
  very tiny scales, physical matter acts as both particles and as waves, and
  quantum computing uses specialized hardware to leverage this behavior. The
  operating principles of quantum devices are beyond the scope of classical
  physics. When deployed at scale, quantum computers could be used in a wide
  variety of applications such as: in cybersecurity to break existing encryption
  methods while helping researchers create new ones, in meteorology to develop
  better weather forecasting etc. However, the current state-of-the-art quantum
  computers are still largely experimental and impractical.