Mulai menggunakan akses eksperimental Gemini Nano

Akses eksperimental Gemini Nano dirancang untuk developer yang ingin menguji peningkatan aplikasi mereka dengan kemampuan AI di perangkat yang canggih. Panduan ini memberikan detail tentang cara bereksperimen dengan Gemini Nano menggunakan Google AI Edge SDK di aplikasi Anda sendiri.

Mendapatkan aplikasi contoh

Jika Anda ingin mengikuti demo yang telah disiapkan, lihat aplikasi contoh kami di GitHub.

Prasyarat

Untuk bereksperimen dengan Gemini Nano, Anda memerlukan perangkat seri Pixel 9. Pastikan Anda memilikinya sebelum melanjutkan, dan bahwa Anda hanya login dengan akun yang ingin digunakan untuk pengujian.

  1. Bergabung dengan grup Google aicore-experimental
  2. Ikut serta dalam program pengujian Android AICore

Setelah Anda menyelesaikan langkah-langkah ini, nama aplikasi di Play Store (di bagian Kelola aplikasi dan perangkat) akan berubah dari "Android AICore" menjadi "Android AICore (Beta)".

Mengupdate APK dan mendownload biner

  1. Update APK AICore:
    1. Di kanan atas, ketuk ikon profil
    2. Ketuk Kelola aplikasi & perangkat > Kelola
    3. Ketuk Android AICore
    4. Ketuk Update jika update tersedia
  2. Perbarui APK Private Compute Service:
    1. Di kanan atas, ketuk ikon profil
    2. Ketuk Kelola aplikasi & perangkat > Kelola
    3. Ketuk Private Compute Services
    4. Ketuk Update jika update tersedia
    5. Periksa versi di tab Tentang aplikasi ini dan pastikan versi aplikasi adalah 1.0.release.658389993 atau yang lebih tinggi
  3. Mulai ulang perangkat dan tunggu beberapa menit hingga pendaftaran pengujian diterapkan
  4. Lihat versi APK AICore di Play Store (di tab "tentang aplikasi ini") untuk mengonfirmasi bahwa versi tersebut dimulai dengan 0.thirdpartyeap

Mengonfigurasi gradle

Tambahkan kode berikut ke blok dependensi dalam konfigurasi build.gradle Anda:


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

Dalam konfigurasi build.gradle, tetapkan target SDK minimum ke 31:

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

Mendapatkan AICore dan menjalankan inferensi

Buat objek GenerationConfig, yang memiliki parameter untuk menyesuaikan properti untuk cara model menjalankan inferensi.

Parameter mencakup:

  • Suhu: Mengontrol keacakan; nilai yang lebih tinggi akan meningkatkan keberagaman
  • Top K: Jumlah token dari token dengan peringkat tertinggi yang akan dipertimbangkan
  • Candidate Count: Respons maksimum yang akan ditampilkan
  • Token output maks: Panjang respons
  • Eksekutor Pekerja: ExecutorService tempat tugas latar belakang harus berjalan
  • Eksekutor Callback: Executor tempat callback harus dipanggil

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

Buat downloadCallback opsional. Ini adalah fungsi callback yang digunakan untuk mendownload model. Pesan yang ditampilkan ditujukan untuk tujuan proses debug.

Buat objek GenerativeModel dengan konfigurasi pembuatan dan download opsional yang Anda buat sebelumnya.

Kotlin

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

Java

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

Jalankan inferensi dengan model dan teruskan perintah Anda. Karena GenerativeModel.generateContent() adalah fungsi penangguhan, kita perlu memastikan fungsi tersebut berada dalam cakupan coroutine yang benar untuk diluncurkan.

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

Jika Anda memiliki masukan tentang Google AI Edge SDK atau masukan lainnya untuk tim kami, kirimkan tiket.

Tips perintah

Desain perintah adalah proses pembuatan perintah yang mendapatkan respons optimal dari model bahasa. Menulis dialog yang terstruktur dengan baik adalah bagian penting untuk memastikan respons yang akurat dan berkualitas tinggi dari model bahasa. Kami telah menyertakan beberapa contoh untuk membantu Anda memulai kasus penggunaan umum untuk Gemini Nano. Lihat strategi perintah Gemini untuk mengetahui info selengkapnya.

Untuk penulisan ulang:

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

Untuk kasus penggunaan smart reply:

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:

Untuk peringkasan:

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.