El acceso experimental a Gemini Nano está diseñado para desarrolladores que buscan probar la mejora de sus apps con funciones de IA integradas en el dispositivo de vanguardia. En esta guía, se proporcionan detalles para experimentar con Gemini Nano con el SDK de Google AI Edge en tu propia app.
Obtén la app de ejemplo
Si deseas 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
- Habilita el programa de pruebas 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 los APKs y descarga los objetos 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 sea 1.0.release.658389993 o una posterior.
- Reinicia el dispositivo y espera unos minutos hasta que se aplique la inscripción de prueba.
- Consulta la versión del APK de AICore en Play Store (en la pestaña "Acerca de esta app") para confirmar que comience con 0.thirdpartyeap.
Cómo configurar Gradle
Agrega lo siguiente al bloque de dependencias en la 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 objetivo de SDK 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: Indica cuántos tokens de los de clasificación más alta se deben considerar.
- Cantidad de candidatos: Cantidad máxima de respuestas que se mostrarán
- Cantidad máxima de tokens de salida: Es la longitud de la respuesta.
- Ejecutor de trabajadores: Es el
ExecutorService
en el que se deben ejecutar las tareas en segundo plano. - Ejecutor de devolución de llamada: 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 de modelos. Los mensajes que se muestran son para depurar.
Crea el objeto GenerativeModel
con las configuraciones de generación y descarga opcionales que creaste antes.
Kotlin
val downloadConfig = DownloadConfig(downloadCallback) val model = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel model = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
Ejecuta la inferencia con el modelo y pasa la instrucción. Dado que GenerativeModel.generateContent()
es una función de suspensión, debemos asegurarnos de que esté en el alcance de corrutinas correcto para iniciarla.
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 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 activen 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 casos de uso comunes de Gemini Nano. Consulta las estrategias de indicaciones 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.