Pierwsze kroki z dostępem do Gemini Nano w trybie eksperymentalnym

Eksperymentalny dostęp do Gemini Nano jest przeznaczony dla deweloperów, którzy chcą testować ulepszenia swoich aplikacji za pomocą najnowocześniejszych funkcji AI na urządzeniu. Ten przewodnik zawiera szczegółowe informacje o tym, jak eksperymentować z Gemini Nano za pomocą pakietu Google AI Edge SDK we własnej aplikacji.

Pobieranie przykładowej aplikacji

Jeśli chcesz skorzystać z przygotowanej wersji demonstracyjnej, zapoznaj się z naszą aplikacją przykładową w GitHubie.

Wymagania wstępne

Aby wypróbować Gemini Nano, musisz mieć urządzenie z serii Pixel 9. Zanim przejdziesz dalej, przygotuj go i upewnij się, że logujesz się tylko na konto, którego chcesz używać do testowania.

  1. Dołącz do grupy dyskusyjnej Google aicore-experimental.
  2. Dołącz do programu testów Androida AICore

Po wykonaniu tych czynności nazwa aplikacji w Sklepie Play (w sekcji Zarządzaj aplikacjami i urządzeniami) powinna zmienić się z „Android AICore” na „Android AICore (Beta)”.

Aktualizowanie plików APK i pobieranie plików binarnych

  1. Zaktualizuj plik APK AICore:
    1. W prawym górnym rogu kliknij ikonę profilu.
    2. Kliknij Zarządzaj aplikacjami i urządzeniami > Zarządzaj.
    3. Kliknij Android AICore.
    4. Jeśli aktualizacja jest dostępna, kliknij Aktualizuj.
  2. Zaktualizuj plik APK usługi Private Compute Service:
    1. W prawym górnym rogu kliknij ikonę profilu.
    2. Kliknij Zarządzaj aplikacjami i urządzeniami > Zarządzaj.
    3. Kliknij Private Compute Services.
    4. Jeśli aktualizacja jest dostępna, kliknij Aktualizuj.
    5. Sprawdź wersję na karcie O tej aplikacji i upewnij się, że wersja aplikacji to 1.0.release.658389993 lub nowsza.
  3. Ponownie uruchom urządzenie i poczekaj kilka minut, aż rejestracja testowa zacznie obowiązywać.
  4. Sprawdź wersję pliku APK AICore w Sklepie Play (na karcie „O tej aplikacji”), aby upewnić się, że zaczyna się od 0.thirdpartyeap.

Konfigurowanie Gradle

Dodaj do bloku zależności w konfiguracji build.gradle te informacje:


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

build.gradle konfiguracji ustaw minimalną wersję pakietu SDK na 31:

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

Pobieranie AICore i przeprowadzanie wnioskowania

Utwórz obiekt GenerationConfig, który zawiera parametry dostosowujące właściwości określające sposób wnioskowania modelu.

Parametry obejmują:

  • Temperatura: określa losowość; wyższe wartości zwiększają różnorodność.
  • Top K: ile tokenów z najwyżej ocenianych ma być branych pod uwagę.
  • Candidate Count: maksymalna liczba odpowiedzi do zwrócenia
  • Maksymalna liczba tokenów wyjściowych: długość odpowiedzi.
  • Worker Executor: ExecutorService, na którym mają być uruchamiane zadania w tle.
  • Callback Executor: Executor, na którym należy wywoływać wywołania zwrotne.

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

Utwórz opcjonalny znak downloadCallback. Jest to funkcja wywołania zwrotnego używana do pobierania modelu. Zwrócone wiadomości służą do debugowania.

Utwórz obiekt GenerativeModel z utworzonymi wcześniej konfiguracjami generowania i opcjonalnego pobierania.

Kotlin

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

Java

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

Przeprowadź wnioskowanie za pomocą modelu i przekaż prompt. Ponieważ funkcja GenerativeModel.generateContent() jest funkcją zawieszającą, musimy się upewnić, że znajduje się w odpowiednim zakresie współprogramu, aby można było ją uruchomić.

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."
    generativeModelFutures.generateContent(input),
    new FutureCallback<GenerateContentResponse>() {
      @Override
      public void onSuccess(GenerateContentResponse result) {
        // generation successful
      }

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

Jeśli masz jakieś uwagi dotyczące pakietu Google AI Edge SDK lub inne opinie dla naszego zespołu, prześlij zgłoszenie.

Wskazówki dotyczące promptów

Projektowanie promptów to proces tworzenia promptów, które służą do uzyskania optymalnej odpowiedzi modelu języka. Tworzenie dobrze skonstruowanych promptów jest niezbędne, aby uzyskać dokładne i wysokiej jakości odpowiedzi od modelu językowego. Podajemy kilka przykładów, które pomogą Ci zacząć korzystać z Gemini Nano w typowych przypadkach użycia. Więcej informacji znajdziesz w strategiach promptowania Gemini.

W przypadku ponownego pisania:

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

Przykłady zastosowań inteligentnych odpowiedzi:

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:

Podsumowywanie:

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.