L'accès expérimental à Gemini Nano est conçu pour les développeurs qui souhaitent tester l'amélioration de leurs applications grâce à des fonctionnalités d'IA de pointe sur l'appareil. Ce guide explique comment tester Gemini Nano à l'aide du SDK Google AI Edge dans votre propre application.
Obtenir l'application exemple
Si vous souhaitez suivre une démonstration préparée, consultez notre application exemple sur GitHub.
Prérequis
Pour tester Gemini Nano, vous devez disposer d'un appareil de la gamme Pixel 9. Assurez-vous d'en avoir un sous la main avant de continuer et de n'être connecté qu'avec le compte que vous souhaitez utiliser pour les tests.
- Rejoignez le groupe Google aicore-experimental.
- S'inscrire au programme de test Android AICore
Une fois ces étapes terminées, le nom de l'application sur le Play Store (sous "Gérer les applications et l'appareil") devrait passer de "Android AICore" à "Android AICore (Beta)".
Mettre à jour les APK et télécharger les binaires
- Mettez à jour l'APK AICore :
- En haut à droite, appuyez sur l'icône de votre profil.
- Appuyez sur Gérer les applications et l'appareil > Gérer.
- Appuyez sur Android AICore.
- Si une mise à jour est disponible, appuyez sur Mettre à jour.
- Mettez à jour l'APK Private Compute Services :
- En haut à droite, appuyez sur l'icône de votre profil.
- Appuyez sur Gérer les applications et l'appareil > Gérer.
- Appuyez sur Private Compute Services.
- Si une mise à jour est disponible, appuyez sur Mettre à jour.
- Vérifiez la version sous l'onglet À propos de cette application et assurez-vous qu'elle est 1.0.release.658389993 ou ultérieure.
- Redémarrez votre appareil et patientez quelques minutes pour que l'enregistrement du test soit pris en compte.
- Vérifiez la version de l'APK AICore sur le Play Store (dans l'onglet "À propos de cette application") pour confirmer qu'elle commence par 0.thirdpartyeap.
Configurer Gradle
Ajoutez les éléments suivants au bloc de dépendances de votre configuration build.gradle
:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
Dans la configuration build.gradle
, définissez la version cible minimale du SDK sur 31 :
defaultConfig {
...
minSdk = 31
...
}
Obtenir AICore et exécuter une inférence
Créez un objet GenerationConfig
, qui comporte des paramètres permettant de personnaliser les propriétés de la manière dont le modèle doit exécuter l'inférence.
Les paramètres incluent :
- Température : contrôle le caractère aléatoire. Des valeurs supérieures augmentent la diversité.
- Top K : nombre de jetons à prendre en compte parmi ceux ayant le rang le plus élevé.
- Nombre de candidats : nombre maximal de réponses à renvoyer
- Nombre maximal de jetons de sortie : longueur de la réponse
- Exécuteur de nœud de calcul :
ExecutorService
sur lequel les tâches en arrière-plan doivent être exécutées - Exécuteur de rappel :
Executor
sur lequel les rappels doivent être appelés
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);
Créez un downloadCallback
facultatif. Il s'agit d'une fonction de rappel utilisée pour le téléchargement du modèle. Les messages renvoyés sont destinés au débogage.
Créez l'objet GenerativeModel
avec les configurations de génération et de téléchargement facultatives que vous avez créées précédemment.
Kotlin
val downloadConfig = DownloadConfig(downloadCallback) val generativeModel = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel generativeModel = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
Exécutez l'inférence avec le modèle et transmettez votre requête. Comme GenerativeModel.generateContent()
est une fonction de suspension, nous devons nous assurer qu'elle se trouve dans la portée de coroutine appropriée pour le lancement.
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));
Si vous avez des commentaires sur le SDK Google AI Edge ou d'autres commentaires à faire parvenir à notre équipe, envoyez une demande.
Conseils concernant les requêtes
La conception de requêtes est le processus de création de requêtes qui déclenchent une réponse optimale des modèles de langage. Pour obtenir des réponses précises et de haute qualité à partir d'un modèle de langage, il est essentiel de rédiger des requêtes bien structurées. Nous avons inclus quelques exemples pour vous aider à vous lancer dans les cas d'utilisation courants de Gemini Nano. Pour en savoir plus, consultez les stratégies de requête Gemini.
Pour les réécritures :
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
Pour les cas d'utilisation des réponses suggérées :
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:
Pour la synthèse :
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.