El acceso experimental a Gemini Nano está diseñado para los desarrolladores que buscan probar la mejora de sus apps con capacidades de IA integradas en el dispositivo de vanguardia. En esta guía, se proporcionan detalles para experimentar con Gemini Nano usando el SDK de IA Edge de Google en tu propia app.
Obtén la app de ejemplo
Si quieres seguir una demostración preparada, consulta nuestra app de ejemplo en GitHub.
Requisitos previos
Para experimentar con Gemini Nano, necesitarás un dispositivo de la serie Pixel 9. Asegúrate de tener una a mano antes de continuar y de haber accedido solo con la cuenta que deseas usar para las pruebas.
- Únete al grupo de Google aicore-experimental
- Participa en el programa de prueba de Android AICore
Después de completar estos pasos, el nombre de la app en Play Store (en Administrar apps y dispositivos) debería cambiar de "Android AICore" a "Android AICore (beta)".
Actualiza APKs y descarga archivos binarios
- Actualiza el APK de AICore:
- En la esquina superior derecha, presiona el ícono de perfil.
- Presiona Administrar dispositivo y apps > Administrar.
- Presiona Android AICore.
- Presiona Actualizar si hay una actualización disponible.
- Actualiza el APK de Private Compute Service:
- En la esquina superior derecha, presiona el ícono de perfil.
- Presiona Administrar dispositivo y apps > Administrar.
- Presiona Private Compute Services.
- Presiona Actualizar si hay una actualización disponible.
- Verifica la versión en la pestaña Acerca de esta app y confirma que la versión de la app sea 1.0.release.658389993 o superior.
- Reinicia el dispositivo y espera unos minutos para que se aplique la inscripción en las pruebas.
- Consulta la versión del APK de AICore en Play Store (en la pestaña "Acerca de esta app") para confirmar que comienza con 0.thirdpartyeap.
Configura Gradle
Agrega lo siguiente al bloque de dependencias en tu configuración de build.gradle
:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
En la configuración de build.gradle
, establece el SDK de destino mínimo en 31:
defaultConfig {
...
minSdk = 31
...
}
Obtén AICore y ejecuta la inferencia
Crea un objeto GenerationConfig
, que tiene parámetros para personalizar las propiedades de cómo el modelo debe ejecutar la inferencia.
Entre los parámetros, se incluyen los siguientes:
- Temperatura: Controla la aleatoriedad. Los valores más altos aumentan la diversidad.
- Top K: Cantidad de tokens que se deben considerar entre los de mayor clasificación
- Candidate Count: Cantidad máxima de respuestas que se devolverán
- Cantidad máxima de tokens de salida: Longitud de la respuesta
- Worker Executor: Es el
ExecutorService
en el que se deben ejecutar las tareas en segundo plano. - Callback Executor: Es el
Executor
en el que se deben invocar las devoluciones de llamada.
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);
Crea un downloadCallback
opcional. Esta es una función de devolución de llamada que se usa para la descarga del modelo. Los mensajes que se muestran son para fines de depuración.
Crea el objeto GenerativeModel
con la generación y las configuraciones de descarga opcionales que creaste antes.
Kotlin
val downloadConfig = DownloadConfig(downloadCallback) val generativeModel = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel generativeModel = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
Ejecuta la inferencia con el modelo y pasa tu instrucción. Como GenerativeModel.generateContent()
es una función de suspensión, debemos asegurarnos de que esté en el alcance de corrutina correcto para lanzarla.
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 tienes comentarios sobre el SDK de Google AI Edge o cualquier otro comentario para nuestro equipo, envía un ticket.
Sugerencias para las instrucciones
El diseño de instrucciones es el proceso de crear instrucciones que produzcan una respuesta óptima de los modelos de lenguaje. Escribir instrucciones bien estructuradas es una parte esencial de garantizar respuestas precisas y de alta calidad desde un modelo de lenguaje. Incluimos algunos ejemplos para que comiences a usar Gemini Nano en casos de uso comunes. Consulta las estrategias de instrucciones de Gemini para obtener más información.
Para reescrituras:
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
Para casos de uso de Respuesta inteligente:
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:
Para la generación de resúmenes:
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.