Gemma 3 1B es un nuevo tamaño de modelo de la familia Gemma de modelos de peso abierto que realmente permite distribuir modelos de lenguaje pequeño (SLM) en aplicaciones para dispositivos móviles y la Web. Al implementar los SLM en entornos de producción, los modelos deben ser lo suficientemente pequeños como para descargarse rápidamente, ejecutarse lo suficientemente rápido como para mantener la atención del usuario y admitir una amplia variedad de dispositivos de usuario final.
Con un tamaño de solo 529 MB, Gemma 3 1B se ejecuta a una velocidad de hasta 2585 tok/s en prellenado a través de la inferencia de LLM de Google AI Edge, lo que crea la capacidad de procesar una página de contenido en menos de un segundo. Si incluyes Gemma 3 1B en tu app, puedes usar un lenguaje natural para impulsar tu aplicación o generar contenido a partir de datos o contexto dentro de la aplicación, todo totalmente personalizable y ajustable.
En esta entrada del blog, te mostraremos algunos ejemplos de casos de uso para Gemma 3 que puedes usar en tu aplicación y cómo comenzar con Gemma en Android. Además, veremos en detalle algunas de las métricas de rendimiento y explicaremos cómo se logró todo esto.
Con un modelo Gemma 3 1B totalmente integrado en el dispositivo, puedes aprovechar los beneficios de AI Edge:
2. Costo: sin facturas en la nube, puedes usar apps gratuitas o freemium.
3. Latencia: algunas funciones deben ser más rápidas de lo que permite una llamada al servidor.
4. Privacidad: implementa inteligencia en los datos que no pueden salir del dispositivo o que están cifrados de extremo a extremo.
Gemma 1B es sumamente versátil e incluso lo puedes ajustar para tus propios dominio y casos de uso. Estos son solo algunos de nuestros casos de uso favoritos para Gemma 1B:
2. Diálogo en el juego: crea un diálogo entre PNJ basado en el estado actual del juego.
3. Respuesta inteligente: brinda a los usuarios respuestas sugeridas inteligentes en función de la conversación mientras envían mensajes.
4. Preguntas y respuestas sobre documentos: usa Gemma 3 junto con nuestro nuevo SDK de AI Edge RAG para procesar documentos largos y responder a las preguntas de los usuarios.
Paso 1: Carga la app de demostración
Descarga la app de demostración prediseñada de Google AI Edge de GitHub y envíala a tu dispositivo Android local. Para obtener el mejor rendimiento con Gemma 3 1B, recomendamos un dispositivo con al menos 4 GB de memoria.
$ wget https://github.com/google-ai-edge/mediapipe-samples/releases/download/v0.1.3/llm_inference_v0.1.3-debug.apk
$ adb install llm_inference_v0.1.3-debug.apk
Como alternativa, puedes seguir nuestras instrucciones para crear la app a partir de la fuente.
El archivo del modelo Gemma 3 ofrece una gran flexibilidad de implementación, ya que se ejecuta sin problemas en la CPU de tu dispositivo o en la GPU móvil. Puedes elegir ejecutar Gemma 3 en la CPU o GPU cuando inicias la app por primera vez, o puedes cambiar entre modelos y backends si vuelves al cuadro de diálogo de selección de modelos.
En la pantalla de selección de modelos de la app de demostración, elige tu modelo. La app te dirigirá a Hugging Face para que inicies sesión y aceptes las condiciones de uso de Gemma. Gemma 3 1B, cuantificado en int4, se descargará directamente de la organización comunitaria LiteRT HuggingFace y luego se optimizará una vez para ejecutarse en tu dispositivo (¡pero esto solo lleva unos segundos!).
Este es el momento de poner Gemma 3 en práctica. En un nivel profundo, Gemma 3 funciona con la API de inferencia de LLM de Google AI Edge, diseñada para un procesamiento eficiente en el dispositivo.
Puedes chatear con el modelo o asignarle otras tareas de procesamiento de texto. Por ejemplo, intenta lo siguiente:
Una de las mejores características de la familia Gemma de modelos de peso abierto son las versiones ajustadas producidas por la comunidad de modelado. Sigue este Colab para ver cómo puedes usar tus datos a fin de crear tu propia versión de Gemma 3 1B, cuantificarla y ejecutarla en dispositivos móviles (CPU y GPU) en tus propias aplicaciones.
Esta demostración y las mediciones son para el modelo Gemma 3 1B con parámetros int4 cuantificados a través de entrenamiento consciente de cuantificación (QAT), que proporciona ahorros significativos de almacenamiento y un mayor rendimiento de decodificación. El modelo Gemma 3 de referencia admite múltiples longitudes de prellenado de 32, 128, 512 y 1024, y utiliza una longitud de contexto de 2048.
Los resultados de rendimiento descritos anteriormente se lograron a través de amplios esfuerzos de optimización. Estas optimizaciones se diseñaron para funcionar correctamente en todos los modelos de peso abierto, incluido Gemma. Estas son algunas de las funciones clave que mejoraron en gran medida el rendimiento y permitieron una nueva funcionalidad reutilizable.
Cuantificación: el entrenamiento consciente de la cuantificación se aplicó a Gemma utilizando un esquema de canales enteros de 4 bits en los pesos para mantener un rendimiento óptimo, aparte de la calidad y el tamaño del modelo. Además de la cuantificación de peso, también cuantificamos dinámicamente la activación a int8 durante la ejecución para utilizar mejor la capacidad de la CPU.
Actualización de los diseños de caché KV: la caché KV se utiliza en modelos basados en Transformer para almacenar los pares clave-valor de los pasos anteriores, de modo que puedan utilizarse para generar tokens posteriores. Las lecturas y escrituras en la caché de KV ocurren con frecuencia, por lo que es importante que estas operaciones sean eficientes. Estas operaciones se optimizaron mediante la introducción de un diseño de caché KV para reducir las transposiciones y remodelaciones adicionales. Esta optimización mejoró la latencia en los modelos Gemma en aproximadamente un 25% para la CPU y un 20% para la GPU. También se agregó una operación adicional para actualizar de manera eficiente la caché KV in situ en la GPU.
Tiempo de carga mejorado: para aprovechar al máximo el procesamiento de CPU y GPU, utilizamos diseños de tensor especializados. Generar estos diseños de pesos optimizados puede consumir bastante tiempo, energía y memoria. Durante la primera carga del modelo, los pesos se almacenan en caché en el disco, en tu formato optimizado, y las cargas posteriores se leen desde la caché. Si los diseños de tensor se optimizan aún más, la caché actual se invalidará automáticamente y el nuevo formato se almacenará en el disco durante la siguiente carga del modelo.
Pesos compartidos en la GPU: el proceso de inferencia de LLM tiene dos fases: prellenado y decodificación. Estas fases suelen utilizar recursos separados para sus respectivos modelos. Para reducir enormemente la huella de memoria de los LLM, ambas fases pueden compartir los mismos pesos. Si bien esta técnica no es completamente nueva, esta es la primera vez que se usó de una manera fácilmente reutilizable en el entorno de ejecución de LiteRT y el delegado de la GPU. Para las operaciones que admiten esta función, el delegado de la GPU verifica si los pesos ya están presentes en la memoria de la GPU y pueden reutilizarse. En el futuro, otros modelos podrán aprovechar esta capacidad.
Durante el desarrollo de Gemma 3, nos centramos en ofrecer un excelente rendimiento y, al mismo tiempo, creamos una infraestructura reutilizable para modelos de peso abierto. En 2025, planeamos aprovechar este trabajo para respaldar un conjunto más amplio de modelos de terceros. Con optimizaciones de rendimiento adicionales y un énfasis en reducir aún más el uso de memoria, tenemos la intención de seguir haciendo que los modelos sean más accesibles en una variedad más amplia de dispositivos. Para estar al día con las últimas novedades, configura las notificaciones de ai_edge_torch en GitHub. ¡Pronto habrá más novedades!
Advait Jain, Akshat Sharma, Alan Kelly, Andrei Kulik, Byungchul Kim, Chunlei Niu, Chun-nien Chan, Chuo-Ling Chang, Claudio Basile, Cormac Brick, Ekaterina Ignasheva, Eric Yang, Fengwu Yao, Frank Ban, Gerardo Carranza, Grant Jensen, Haoliang Zhang, Henry Wang, Ho Ko, Jae Yoo, Jiuqiang Tang, Juhyun Lee, Jun Jiang, Khanh LeViet, Kris Tonthat, Lin Chen, Lu Wang, Malini P V, Marissa Ikonomidis, Mark Sherwood, Matthew Soulanille, Matthias Grundmann, Mogan Shieh, Mohammadreza Heydary, Na Li, Pauline Sho, Pedro Gonnet, Ping Yu, Pulkit Bhuwalka, Quentin Khan, Ram Iyengar, Raman Sarokin, Rishika Sinha, Rishubh Khurana, Ronghui Zhu, Sachin Kotwani, Sebastian Schmidt, Steven Toribio, Suleman Shahid, T.J. Alumbaugh, Tenghui Zhu, Terry (Woncheol) Heo, Tyler Mullen, Vamsi Manchala, Vitalii Dziuba, Wai Hon Law, Weiyi Wang, Xu Chen, Yishuang Pang, Youchuan Hu, Yu-hui Chen y Zichuan Wei