Saltar al contenido principal

Cómo ejecutar Llama 3.2 1B en un teléfono Android con Torchchat

Obtén instrucciones paso a paso sobre cómo configurar y ejecutar Llama 3.2 1B en tu dispositivo Android utilizando el framework Torchchat.
Actualizado 31 oct 2024  · 12 min de lectura

Hace poco escribí un artículo sobre cómo ejecutar LLMs con Python y Torchat. Torchchat es un marco flexible diseñado para ejecutar LLMs de forma eficiente en diversas plataformas de hardware. Realizar un LLM a nivel local ofrece varias ventajas, entre ellas:

  • Acceso sin conexión: Como el modelo se ejecuta en nuestro dispositivo, no necesitamos estar conectados a Internet para utilizarlo.
  • Privacidad: Como nosotros mismos ejecutamos el modelo, las indicaciones y los datos que introducimos siguen siendo privados.
  • Coste: Podemos ejecutar el modelo gratuitamente.

Tras el reciente lanzamiento por parte de Facebook de Llama 3.2he decidido ampliar mi artículo anterior para enseñar cómo implementarlo en nuestros teléfonos móviles, centrándome en Android.

He aquí un resumen de alto nivel de lo que tenemos que hacer:

  • Descarga los archivos del modelo, que son de libre acceso porque el modelo es de código abierto.
  • Genera los archivos necesarios para ejecutar el modelo en un dispositivo móvil.
  • Configura una aplicación de chat Android que ejecute el modelo.

Torchchat da respuesta a todos estos pasos. Dispone de comandos para descargar el modelo y generar los archivos necesarios para ejecutarlo. Además, viene con una aplicación Android de chat de demostración, por lo que no necesitamos crear una nosotros mismos.

Desarrollar aplicaciones de IA

Aprende a crear aplicaciones de IA utilizando la API OpenAI.
Empieza a Hacer Upskilling Gratis

Descargar Torchat

El primer paso es clonar el repositorio Torchchat utilizando Git:

git clone git@github.com:pytorch/torchchat.git

También podemos hacerlo sin Git descargándolo mediante el botón de descarga de GitHub:

Descargar Torchchat desde GitHub

Nota importante: Tras clonar (o descargar) el repositorio, quedará disponible en nuestro ordenador una carpeta llamada torchchat. Todos los comandos mencionados en este artículo deben ejecutarse desde esa carpeta.

Instalación de Torchat

Supondremos que Python y Anaconda ya están instalados. Si no lo están, consulta estos dos tutoriales: Cómo instalar Anaconda en Windows y Cómo instalar Anaconda en Mac OS X.

Alternativamente, sigue los pasos del repositorio Torchchat, que utiliza un entorno virtual en lugar de Anaconda.

Comenzamos creando un entorno Anaconda mediante el comando:

conda create -yn llama python=3.10.0

Esto crea un entorno llamado llama que utiliza la versión 3.10 de Python. La opción -yn combina -y y -n:

  • La opción -y permite que el comando proceda sin pedir confirmación antes de crear el entorno.
  • La opción -n especifica el nombre del entorno, que en este caso es llama. Después de crear el entorno, lo activamos e instalamos las dependencias. 

Para activarlo, utilizamos el siguiente comando:

conda activate llama

Para instalar las dependencias necesarias, utilizamos el script de instalación proporcionado por TorchChat:

./install/install_requirements.sh

Descargar el modelo Llama 3.2 1B

En este tutorial, utilizaremos el modelo Llama 3.2 1B, un modelo de mil millones de parámetros. Podemos descargarlo utilizando el comando

python torchchat.py download llama3.2-1b

El proceso es el mismo para experimentar con otros modelos:debemos sustituir llama3.2-1b por el alias del modelo deseado. Es importante seleccionar sólo modelos marcados como aptos para móviles.

Torchchat aprovecha Hugging Face para la gestión de modelos. En consecuencia, para descargar un modelo es necesario tener una cuenta de Cara de Abrazo. Para una guía completa sobre cómo crear una cuenta e iniciar sesión desde el terminal, consulta la sección "Descargar un modelo" de este tutorial de Torchat.

Alternativamente, el modelo también puede descargarse del sitio web oficial de Llama. Sin embargo, utilizar Torchchat es más cómodo, ya que facilita la exportación de los archivos del modelo para su despliegue móvil.

Exportar el modelo

Para desplegar en un dispositivo móvil, primero exportamos el modelo para generar el artefacto.pte , que es un archivo utilizado por Executorch. Executorch es el motor que Torchchat utiliza para ejecutar el LLM en un dispositivo móvil.

Para generar el archivo PTE, primero debemos instalar Executorch. Para ello, ejecuta los siguientes comandos:

export TORCHCHAT_ROOT=${PWD} 
./torchchat/utils/scripts/install_et.sh

Una vez finalizada la instalación, podemos generar el archivo PTE utilizando el comando

python torchchat.py export llama3.2-1b --quantize torchchat/quant_config/mobile.json --output-pte-path llama3_2-1b.pte

Este comando también cuantizará el modelo, reduciendo su tamaño y aumentando la velocidad de inferencia. Utilizamos la configuración por defecto de Torchat en torchchat/quant_config/mobile.json.

Cuando se complete este proceso, se creará un archivo llamado llama3_2-1b.pte en la carpeta torchchat.

Preparar la aplicación móvil

Torchchat ofrece una aplicación de demostración para Android que nos permite manejar Llama directamente en nuestros smartphones. Este proyecto de demostración se encuentra en la carpeta Torchat que se descargó. Su ruta relativa es torchchat/edge/android/torchchat. Ten en cuenta que la primera referencia torchchat de la ruta se refiere a una carpeta dentro del repositorio, no a la carpeta raíz del repositorio.

Descarga y configura la biblioteca Java

  1. Descarga el archivo.aar proporcionado por Torchchat. Contiene la biblioteca Java y la biblioteca JNI correspondiente, para crear y ejecutar la aplicación. 
  2. Navega hasta la carpeta directorio app: torchchat/edge/android/torchchat/app/
  3. Crea un directorio llamado libs (si no existe ya).
  4. Cambia el nombre del archivo descargado a executorch.aar y pégalo en la carpeta libs.

Carga el proyecto Android en Android Studio

Descarga e instala Android Studio desde el sitio web oficial. Una vez finalizada la instalación, abre el proyecto:

Abrir la aplicación de demostración en Android Studio

El proyecto de demostración se encuentra en torchchat/edge/android/torchchat.

Cuando abrimos el proyecto, nos aparece esta ventana preguntándonos si confiamos en el código:

Ventana emergente tras abrir la aplicación de demostración

Aquí, elige la opción "Confiar en el proyecto".

Tras abrir el proyecto, Android Studio necesitará algún tiempo para cargar la configuración y completar la configuración inicial. Es importante esperar a que termine este proceso. Podemos controlar el estado en la esquina inferior derecha de la ventana. Cuando esté listo, el botón de ejecución de la parte superior debería volverse verde:

Cómo saber cuándo se carga el proyecto

Configurar el modo desarrollador en Android

Para poder ejecutar la aplicación en el teléfono a través de Android Studio, tenemos que activar el modo desarrollador en nuestro dispositivo. He aquí cómo podemos hacerlo:

  1. Ve a "Ajustes".
  2. Selecciona "Acerca del dispositivo" o "Acerca del teléfono".
  3. Abrir "Información del software"
  4. Busca el "Número de construcción" y púlsalo siete veces

Eso es. Ahora, podemos utilizar nuestro dispositivo para ejecutar la aplicación desde Android Studio. Al hacer esto, la aplicación permanecerá en nuestro teléfono, permitiéndonos ejecutarla incluso sin conexión al ordenador.

Instalar adb

La aplicación necesita que los archivos del modelo se encuentren en una carpeta específica del teléfono. Para enviar esos archivos al teléfono, utilizamos adb (Android Debug Bridge). Podemos instalarlo utilizando Android Studio siguiendo estos pasos:

  1. Navega hasta los ajustes y empieza a escribir "Android SDK" en la barra de búsqueda
  2. Localiza el menú llamado "Android SDK" y haz clic en él
  3. Selecciona la opción "Herramientas de línea de comandos del SDK de Android (última versión)".
  4. Haz clic en "Aplicar" para instalarlo

Instalar adb desde Android Studio

Observa que en la parte superior de la ventana, Android Studio muestra la ubicación del sdk de Android:

Encontrar la ruta a adb

Copiamos esa ruta y ejecutamos el siguiente comando (sustituyendo a continuación por la ruta que acabamos de copiar):

export PATH=$PATH:<android_skd_location>/platform-tools/

Para confirmar que adb se ha instalado correctamente, utiliza el comando adb --version, que mostrará la versión de adb.

Configurar la aplicación en el teléfono

Conecta el teléfono al ordenador con un cable. El nombre del dispositivo aparecerá en la lista de dispositivos junto al botón de ejecutar:

Selección de dispositivo en Android Studio

Antes de ejecutar la aplicación en el teléfono, ahora utilizamos adb para copiar los archivos del modelo necesarios en nuestro dispositivo.

  1. Encuentra el id del dispositivo utilizando el comando adb devices. Puede haber varias líneas en la salida. Localiza el del formulario con el formulario y copia el código del dispositivo.
  2. Crea el directorio para almacenar los archivos del modelo utilizando adb -s shell mkdir -p /data/local/tmp/llama.
  3. Copia el archivo .pte situado en la carpeta torchat con adb -s push llama3_2-1b.pte /data/local/tmp/llama.
  4. Localiza el archivo del tokenizador del modelo utilizando python torchchat.py where llama3.2-1b. Esto mostrará varias líneas, nos interesa la ruta mostrada en la última línea.

Localización del archivo tokenizer.model

  1. Copia el archivo del tokenizador en el dispositivo utilizando adb -s push /tokenizer.model /data/local/tmp/llama sustituyendo por la ruta obtenida en el paso anterior.

Tras completar estos pasos, los archivos del modelo deberían estar en nuestro teléfono y listos para usar. Podemos comprobarlo enumerando todos los archivos que se encuentran en la carpeta del dispositivo que acabamos de crear:

adb -s <device_code> shell ls 

La salida debe tener los dos archivos que acabamos de copiar:

llama3_2-1b.pte
tokenizer.model

Ejecutar la app

Ya está todo listo para ejecutar la aplicación de demostración en nuestro teléfono. Podemos hacer clic en la flecha verde para ejecutarlo.

Ejecutar la aplicación en el teléfono

Esto abrirá la aplicación en nuestro dispositivo. La aplicación nos pide que seleccionemos los archivos del modelo y del tokenizador.

Seleccionar el modelo y el tokenizador

Uso de la aplicación Llama 3.2 1B

¡Ya podemos empezar a chatear con Llama3.2 1B en nuestro teléfono! La interfaz de la aplicación es bastante simplista. Podemos utilizar el cuadro de texto "Aviso" para escribir un aviso y enviarlo al modelo mediante el botón "Generar".

Como el modelo funciona sin conexión, podría utilizarlo en el avión hacia mi próximo destino para pedir, por ejemplo, algunas recomendaciones de platos:

Ejemplo de uso de la app

Con esta interacción, observamos algunas limitaciones de la aplicación de demostración:

  1. La respuesta repite nuestra indicación.
  2. El formato de la respuesta comienza con "He estado en Taiwán...", lo que indica que la aplicación no está diseñada para utilizar el modelo directamente como asistente.
  3. Las respuestas se cortan bruscamente, probablemente porque se ha alcanzado el límite de tokens.

Podemos comparar el comportamiento ejecutando el mismo modelo en el terminal con el comando

python torchchat.py chat llama3.2-1b

Proporcionamos el mismo estímulo para ver si el comportamiento era diferente. De hecho, en este caso, la respuesta parece mucho más natural y útil, a pesar de estar también cortada:

Comportamiento del modelo en el ordenador

Me puse en contacto con el equipo de Torchchaty me dijeron que Llama 3.2 era demasiado reciente y que había que actualizar ligeramente la aplicación de demostración para que fuera compatible.

Sin embargo, el proceso de configuración seguirá siendo el mismo, y los conocimientos adquiridos aquí seguirán siendo válidos para la versión actualizada. Es posible que cuando estés leyendo este artículo, ya se haya actualizado y funcione correctamente.

Conclusión

En esta guía, aprendimos a configurar Llama 3.2 1B directamente en un dispositivo Android utilizando Torchat. Cubrimos el proceso paso a paso de descarga e instalación de los componentes necesarios, incluidos los archivos del modelo y la aplicación de demostración para Android.

Aunque la aplicación de demostración actual tiene algunas limitaciones, sobre todo en el formato y la longitud de las respuestas, el potencial subyacente de estas implementaciones es inmenso.

Si quieres leer más sobre Llama 3.2, te recomiendo estos blogs:


Photo of François Aubry
Author
François Aubry
LinkedIn
Enseñar siempre ha sido mi pasión. Desde mis primeros días como estudiante, busqué con entusiasmo oportunidades para dar clases particulares y ayudar a otros estudiantes. Esta pasión me llevó a realizar un doctorado, en el que también trabajé como ayudante de profesor para apoyar mis esfuerzos académicos. Durante esos años, encontré una inmensa satisfacción en el entorno tradicional del aula, fomentando las conexiones y facilitando el aprendizaje. Sin embargo, con la llegada de las plataformas de aprendizaje en línea, reconocí el potencial transformador de la educación digital. De hecho, participé activamente en el desarrollo de una plataforma de este tipo en nuestra universidad. Estoy profundamente comprometida con la integración de los principios de la enseñanza tradicional con metodologías digitales innovadoras. Mi pasión es crear cursos que no sólo sean atractivos e informativos, sino también accesibles para los alumnos en esta era digital.
Temas

Aprende IA con estos cursos

curso

Working with Llama 3

4 hr
2.4K
Explore the latest techniques for running the Llama LLM locally, fine-tuning it, and integrating it within your stack.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Ajuste fino de LLaMA 2: Guía paso a paso para personalizar el modelo de lenguaje grande

Aprende a ajustar Llama-2 en Colab utilizando nuevas técnicas para superar las limitaciones de memoria y computación y hacer más accesibles los grandes modelos lingüísticos de código abierto.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

RAG Con Llama 3.1 8B, Ollama y Langchain: Tutorial

Aprende a crear una aplicación RAG con Llama 3.1 8B utilizando Ollama y Langchain, configurando el entorno, procesando documentos, creando incrustaciones e integrando un recuperador.
Ryan Ong's photo

Ryan Ong

12 min

tutorial

Tutorial sobre cómo crear aplicaciones LLM con LangChain

Explore el potencial sin explotar de los grandes modelos lingüísticos con LangChain, un marco Python de código abierto para crear aplicaciones avanzadas de IA.
Moez Ali's photo

Moez Ali

12 min

tutorial

Guía de torchchat de PyTorch: Configuración local con Python

Aprende a configurar el torchat de PyTorch localmente con Python en este tutorial práctico, que proporciona orientación paso a paso y ejemplos.
François Aubry's photo

François Aubry

tutorial

Guía para principiantes sobre la ingeniería de avisos ChatGPT

Descubra cómo conseguir que ChatGPT le proporcione los resultados que desea dándole las entradas que necesita.
Matt Crabtree's photo

Matt Crabtree

6 min

tutorial

DCLM-7B de Apple: Configuración, Ejemplo de uso, Ajuste fino

Empieza a utilizar el gran modelo de lenguaje DCLM-7B de Apple y aprende a configurarlo, utilizarlo y ajustarlo para tareas específicas.
Dimitri Didmanidze's photo

Dimitri Didmanidze

9 min

See MoreSee More