Der experimentelle Zugriff auf Gemini Nano richtet sich an Entwickler, die die Verbesserung ihrer Apps mithilfe moderner On-Device-KI-Funktionen testen möchten. In dieser Anleitung erfahren Sie, wie Sie mit dem Google AI Edge SDK in Ihrer eigenen App mit Gemini Nano experimentieren.
Beispiel-App abrufen
Wenn Sie einer vorbereiteten Demo folgen möchten, sehen Sie sich unsere Beispiel-App auf GitHub an.
Voraussetzungen
Wenn Sie Gemini Nano ausprobieren möchten, benötigen Sie ein Gerät der Pixel 9-Serie. Achten Sie darauf, dass Sie eine solche Karte haben, bevor Sie fortfahren, und dass Sie nur mit dem Konto angemeldet sind, das Sie für die Tests verwenden möchten.
- Der Google-Gruppe aicore-experimental beitreten
- Am Android AICore-Testprogramm teilnehmen
Nachdem Sie diese Schritte ausgeführt haben, sollte sich der App-Name im Play Store (unter „Apps und Gerät verwalten“) von „Android AICore“ in „Android AICore (Beta)“ ändern.
APKs aktualisieren und Binärdateien herunterladen
- Aktualisieren Sie das AICore-APK:
- Tippen Sie rechts oben auf das Profilsymbol.
- Tippen Sie auf Apps und Gerät verwalten > Verwalten.
- Tippen Sie auf Android AICore.
- Tippen Sie auf Aktualisieren, wenn ein Update verfügbar ist.
- Aktualisieren Sie das Private Compute Service APK:
- Tippen Sie rechts oben auf das Profilsymbol.
- Tippen Sie auf Apps und Gerät verwalten > Verwalten.
- Tippen Sie auf Private Compute Services.
- Tippen Sie auf Aktualisieren, wenn ein Update verfügbar ist.
- Prüfen Sie auf dem Tab Info zur App, ob die App-Version 1.0.release.658389993 oder höher ist.
- Starten Sie das Gerät neu und warten Sie einige Minuten, bis die Testregistrierung wirksam wird.
- Prüfen Sie die AICore-APK-Version im Play Store (Tab „Info zur App“), ob sie mit 0.thirdpartyeap beginnt.
Gradle konfigurieren
Fügen Sie dem Block „dependencies“ in Ihrer build.gradle
-Konfiguration Folgendes hinzu:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
Legen Sie in der build.gradle
-Konfiguration das Mindest-SDK-Ziel auf 31 fest:
defaultConfig {
...
minSdk = 31
...
}
AICore abrufen und Inferenz ausführen
Erstellen Sie ein GenerationConfig
-Objekt mit Parametern, mit denen Sie die Eigenschaften für die Inferenz des Modells anpassen können.
Zu den Parametern gehören:
- Temperatur: Bestimmt die Zufälligkeit. Höhere Werte erhöhen die Vielfalt.
- Top-K: Gibt an, wie viele Tokens aus den am höchsten bewerteten berücksichtigt werden sollen.
- Kandidatenanzahl: Maximale Anzahl der Antworten, die zurückgegeben werden sollen
- Max. Ausgabetokens: Länge der Antwort
- Worker-Executor: Die
ExecutorService
, auf der Hintergrundaufgaben ausgeführt werden sollen - Callback-Ausführer: Die
Executor
, auf der Callbacks aufgerufen werden sollen
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);
Erstellen Sie einen optionalen downloadCallback
. Dies ist eine Rückruffunktion, die für das Herunterladen von Modellen verwendet wird. Die zurückgegebenen Meldungen dienen der Fehlerbehebung.
Erstellen Sie das GenerativeModel
-Objekt mit den zuvor erstellten Konfigurationen für die Generierung und den optionalen Download.
Kotlin
val downloadConfig = DownloadConfig(downloadCallback) val model = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel model = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
Führen Sie die Inferenz mit dem Modell aus und geben Sie den Prompt ein. Da GenerativeModel.generateContent()
eine suspendierte Funktion ist, müssen wir darauf achten, dass sie sich im richtigen coroutine-Kontext befindet, um gestartet zu werden.
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));
Wenn Sie Feedback zum Google AI Edge SDK oder sonstiges Feedback für unser Team haben, erstellen Sie ein Ticket.
Tipps zu Prompts
„Prompt-Design“ ist der Prozess, Prompts zu erstellen, die eine optimale Antwort aus Sprachmodellen auslösen. Gut strukturierte Prompts sind wichtig, um genaue, hochwertige Antworten aus einem Sprachmodell zu gewährleisten. Wir haben einige Beispiele für gängige Anwendungsfälle für Gemini Nano zusammengestellt. Weitere Informationen finden Sie in den Gemini-Prompt-Strategien.
Für Umschreibungen:
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
Für Anwendungsfälle für intelligente Antworten:
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:
Zusammenfassung:
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.