L'accès expérimental à Gemini Nano est conçu pour les développeurs qui souhaitent tester l'amélioration de leurs applications avec 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 avez besoin d'un appareil de la gamme Pixel 9. Assurez-vous d'en avoir un à portée de main avant de continuer et de n'être connecté qu'avec le compte que vous prévoyez d'utiliser pour les tests.
- Rejoindre le groupe Google aicore-experimental
- Inscrivez-vous 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 d'"Android AICore" à "Android AICore (bêta)".
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.
- Appuyez sur Mettre à jour si une mise à jour est disponible.
- Mettez à jour l'APK du service de calcul privé :
- 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 (Services de calcul privé).
- Appuyez sur Mettre à jour si une mise à jour est disponible.
- Vérifiez la version dans 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 de test soit pris en compte.
- Vérifiez la version de l'APK AICore sur le Play Store (sous l'onglet "À propos de cette application") pour vous assurer qu'elle commence par 0.thirdpartyeap.
Configurer Gradle
Ajoutez ce qui suit au bloc de dépendances de votre configuration build.gradle
:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
Dans votre configuration build.gradle
, définissez la cible de SDK minimale 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 pour la façon dont le modèle doit exécuter l'inférence.
Les paramètres incluent les suivants:
- Température: contrôle le caractère aléatoire. Des valeurs plus élevées augmentent la diversité.
- Top K: nombre de jetons à prendre en compte parmi les plus performants
- 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 de modèles. 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 model = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel model = 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." 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));
Si vous avez des commentaires sur le SDK Google AI Edge ou sur d'autres sujets, envoyez une demande.
Conseils pour les requêtes
La conception de requêtes est le processus de création de requêtes qui déclenchent une réponse optimale à partir de modèles de langage. Pour rédiger 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 familiariser avec les cas d'utilisation courants de Gemini Nano. Pour en savoir plus, consultez les stratégies d'incitation 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.