Modelos de lenguaje extenso integrados en el dispositivo con Keras y TensorFlow Lite

1. Antes de comenzar

Uno de los avances más interesantes del aprendizaje automático recientemente son los modelos de lenguaje extenso (LLM). Se pueden usar para generar texto, traducir idiomas y responder preguntas de manera integral e informativa. Los LLM, como LaMDA y PaLM de Google, se entrenan con cantidades enormes de datos de texto, lo que les permite aprender los patrones estadísticos y las relaciones entre palabras y frases. Esto les permite generar texto similar al escrito por las personas y traducir idiomas con bastante exactitud.

Los LLM son muy grandes en términos de almacenamiento y, por lo general, consumen mucha potencia de procesamiento para ejecutarse, lo que significa que, por lo general, se implementan en la nube y son bastante desafiantes para el aprendizaje automático integrado en el dispositivo (ODML) debido a la capacidad de procesamiento limitada en los dispositivos móviles. Sin embargo, es posible ejecutar LLM de menor escala (por ejemplo, GPT-2) en un dispositivo Android moderno y obtener resultados impresionantes.

En este codelab, aprenderás a compilar una app potenciada por LLM usando lo siguiente:

  • KerasNLP para cargar un LLM previamente entrenado (GPT-2)
  • KerasNLP para ajustar un LLM (GPT-2)
  • TensorFlow Lite para convertir, optimizar e implementar el LLM en Android

Requisitos previos

  • Conocimientos intermedios de Keras y TensorFlow Lite
  • Conocimientos básicos de desarrollo de Android

Qué aprenderás

  • Cómo usar KerasNLP para cargar un LLM previamente entrenado y ajustarlo
  • Cómo cuantizar y convertir un LLM a TensorFlow Lite
  • Cómo ejecutar inferencias en el modelo convertido de TensorFlow Lite

Requisitos

  • Acceso a Colab
  • La versión más reciente de Android Studio
  • Un dispositivo Android moderno con más de 4 GB de RAM

2. Prepárate

Para descargar el código de este codelab, haz lo siguiente:

  1. Navega al repositorio de GitHub de este codelab.
  2. Haz clic en Code > Download ZIP para descargar todo el código de este codelab.

Imagen del repositorio

  1. Descomprime el archivo ZIP descargado para desempaquetar una carpeta raíz examples con todos los recursos que necesitas.

3. Ejecuta la app de partida

  1. Importa la carpeta examples/lite/examples/generative_ai a Android Studio.
  2. Inicia Android Emulator y, luego, haz clic en execute.png Run, en el menú de navegación.

Ejecuta y explora la app

La app debería iniciarse en tu dispositivo Android. La app se llama "Auto-complete". La IU es bastante sencilla: puedes ingresar algunas palabras iniciales en el cuadro de texto y presionar Generate. La app ejecutará la inferencia en un LLM y generará texto adicional basado en tu entrada.

En este momento, si presionas Generate después de escribir algunas palabras, no sucederá nada. Esto se debe a que aún no ejecuta un LLM.

Captura de pantalla de la app de partida

4. Prepara el LLM para la implementación en el dispositivo

5. Completa la app para Android

Ahora que convertiste el modelo GPT-2 en TensorFlow Lite, podrás implementarlo en la app.

Ejecuta la app

  1. Arrastra el archivo de modelo autocomplete.tflite descargado desde el último paso a la carpeta app/src/main/assets/ en Android Studio.

Agrega el modelo a Android Studio

  1. Haz clic en execute.png Run en el menú de navegación y, luego, espera a que se cargue la app.
  2. Escribe algunas palabras iniciales en el campo de texto y, luego, presiona Generate.

Captura de pantalla de la app terminada

6. Notas sobre la IA responsable

Tal como se indica en el anuncio original de GPT-2 de OpenAI, existen advertencias y limitaciones notables con el modelo de GPT-2. De hecho, hoy en día, los LLM suelen encontrar algunos desafíos conocidos, como los relativos a alucinaciones, equidad y sesgos. Esto se debe a que estos modelos se entrenan con datos del mundo real, lo que los hace reflejar los problemas del mundo real.

Este codelab se creó solo para demostrar cómo crear una app potenciada por LLM con herramientas de TensorFlow. El modelo producido en este codelab solo tiene fines educativos y no está destinado para uso en producción.

El uso en producción del LLM requiere una selección inteligente de conjuntos de datos de entrenamiento y mitigaciones de seguridad integrales. Para obtener más información sobre IA responsable en el contexto de LLM, asegúrate de mirar la sesión técnica de Desarrollo seguro y responsable con modelos de lenguaje generativo en Google I/O 2023 y consulta el Kit de herramientas de IA responsable

7. Conclusión

¡Felicitaciones! Creaste una app para generar texto coherente basado en entradas del usuario ejecutando en el dispositivo un modelo de lenguaje extenso previamente entrenado.

Más información