Cómo correr LLaMA en la Raspberry Pi - GPT sin GPU
Summary
TLDREn este video, Rodríguez presenta cómo replicar el modelo de Facebook llamado 'Llama' en una Raspberry Pi 4 de 8 gigabytes. Comienza aumentando el espacio de intercambio (Swap), siguiendo un tutorial, y luego clona el repositorio de 'Llama' en C++. Seguidamente, muestra el proceso de compilación y cómo convertir el modelo 7b a un formato compatible con la Raspberry Pi. Finalmente, realiza una prueba de inferencia con ejemplos, demostrando que el modelo funciona en la Raspberry Pi, aunque con cierta lentitud.
Takeaways
- 😀 Rodríguez introduce el modelo de 'llama' liberado por Facebook y su versión en C++ llamada 'llama.cpp'.
- 🔍 Rodríguez revisó un repositorio y encontró que alguien ejecutó 'llama' en una Raspberry Pi 4, lo que le motivó a intentar replicar el proceso.
- 💡 Se sugiere aumentar la memoria Swap en la Raspberry Pi debido a que la RAM no es suficiente para el modelo.
- 🛠️ Rodríguez recomienda seguir un tutorial para aumentar la Swap de la Raspberry Pi, pasando de los 1 GB por defecto a 2 GB.
- 📁 Se detalla el proceso de clonar el repositorio de 'llama.cpp' y compilar los archivos con 'make'.
- 🔄 Se menciona la necesidad de obtener diferentes modelos de 'llama' disponibles en el repositorio original y convertirlos al formato requerido.
- 📚 Rodríguez optó por el modelo '7b' por ser el más ligero y procedió a descargarlo junto con sus archivos asociados.
- 🔄 Se describe cómo copiar y mover los archivos del modelo '7b' a la carpeta 'models' de la Raspberry Pi a través de Samba.
- 🔧 Se ejecuta un script en Python para convertir el modelo '7b' al formato 'ggml fp16' necesario para la inferencia con 'llama'.
- 🚀 Después de la conversión, se sigue el tutorial para realizar la inferencia, probando el modelo con diferentes entradas de texto.
- 📝 Se muestra que el modelo funciona en la Raspberry Pi 4, pudiendo responder a consultas y completar ideas, aunque con cierta lentitud.
Q & A
¿Qué es el modelo que liberó Facebook y cómo se relaciona con el proyecto de Rodríguez?
-El modelo que liberó Facebook es un modelo de lenguaje llamado LLaMA (Large Language Model Meta AI). Rodríguez está interesado en replicar el trabajo de alguien que ya utilizó este modelo en una Raspberry Pi 4.
¿Qué es CBP y cómo se relaciona con LLaMA?
-CBP es una interpretación de LLaMA escrita en C++. Rodríguez encontró esta variante en un repositorio y desea utilizarla en su Raspberry Pi 4.
¿Por qué Rodríguez quiere aumentar la memoria Swap en su Raspberry Pi 4?
-Rodríguez quiere aumentar la memoria Swap porque ha observado que muchas personas se quejan de que la RAM no es suficiente para ejecutar el modelo de lenguaje, lo que podría causar problemas de rendimiento.
¿Cómo se puede aumentar la memoria Swap en una Raspberry Pi?
-Rodríguez recomienda seguir un tutorial específico que explica cómo incrementar la memoria Swap, lo que implica editar el archivo de configuración de Swap y reiniciar el sistema.
¿Qué es 'git clone' y cómo se utiliza en el proceso descrito por Rodríguez?
-'Git clone' es un comando utilizado para copiar un repositorio de Git existente a una nueva ubicación. Rodríguez lo utiliza para clonar el repositorio de CBP y acceder a los archivos necesarios para su proyecto.
¿Qué es 'make' y para qué se usa en el script de Rodríguez?
-'Make' es una herramienta de compilación que automatiza la compilación de código fuente. Rodríguez lo usa para compilar el código del repositorio CBP en su Raspberry Pi.
¿Cuáles son las diferentes variantes de modelos de LLaMA que Rodríguez menciona?
-Rodríguez menciona varias variantes de modelos de LLaMA, incluyendo 7b, 13b, 30b y 65b, cada uno con una complejidad y tamaño de archivo diferente.
¿Cómo se obtiene un modelo de LLaMA y por qué Rodríguez sugiere buscar otras formas de obtenerlo?
-Los modelos de LLaMA se pueden obtener a través de un formulario de Google, pero Rodríguez sugiere buscar otras formas ya que este proceso generalmente es lento y puede demorar mucho tiempo.
¿Qué es FP16 y por qué es importante en el proceso descrito por Rodríguez?
-FP16 es un formato de punto flotante de 16 bits, que se utiliza para reducir el tamaño del modelo y mejorar el rendimiento en dispositivos con recursos limitados como la Raspberry Pi. Rodríguez lo utiliza para convertir el modelo 7b antes de la inferencia.
¿Qué es la inferencia y cómo se relaciona con el uso del modelo 7b en la Raspberry Pi?
-La inferencia es el proceso de utilizar un modelo de aprendizaje automáto para hacer predicciones o tomar decisiones basadas en nuevos datos. Rodríguez ejecuta la inferencia con el modelo 7b en su Raspberry Pi para probar su funcionamiento.
¿Cómo demora el proceso de inferencia con el modelo 7b en la Raspberry Pi según la experiencia de Rodríguez?
-Según Rodríguez, el proceso de inferencia con el modelo 7b en la Raspberry Pi es un poco lento, pero no arroja errores y es capaz de procesar y dar respuestas a las consultas.
Outlines
😀 Configuración de Raspberry Pi para ejecutar Llama
El primer párrafo describe el proceso de configuración de una Raspberry Pi 4 de 8 gigabytes para ejecutar el modelo Llama, una versión en C++ de llama, utilizando el repositorio 'llama.cpp'. El objetivo es replicar el trabajo de otra persona que ejecutó Llama en una Raspberry Pi 4. Se sugiere aumentar la memoria Swap debido a la limitada RAM, siguiendo un tutorial específico. El script incluye clonar el repositorio, compilar el código y preparar los modelos Llama, destacando el uso del modelo 7b por su ligereza, y la necesidad de copiar archivos a la carpeta 'models' antes de ejecutar el programa.
😀 Conversión y ejecución del modelo Llama en Raspberry Pi
El segundo párrafo sigue con el proceso de ejecución del modelo Llama en la Raspberry Pi. Se menciona la instalación de dependencias y la conversión del modelo 7b al formato 'ggml fp16', necesario para la inferencia con Llama. El script incluye pasos adicionales para adaptar el modelo a la arquitectura de 4 bits de la Raspberry Pi. Finalmente, se prueba la inferencia con ejemplos, demostrando que el modelo funciona correctamente en la Raspberry Pi 4, a pesar de ser un poco lento. El video termina con una demostración exitosa y agradece al espectador por su atención.
Mindmap
Keywords
💡Rodríguez
💡Llama
💡C++
💡Raspberry Pi 4
💡Swap
💡Git
💡Compilación
💡Modelos de Llama
💡Inferencia
💡Formato GGML FP16
Highlights
Rodríguez presenta su experiencia con el modelo de Facebook llamado llama.
Encuentra una variante llama.en.cpp, una interpretación de llama en C++.
Alguien ejecutó llama en una Raspberry 4, Rodríguez desea replicar este proceso.
Rodríguez tiene una Raspberry Pi 4 de 8 gigabytes y sugiere aumentar la memoria Swap.
Recomienda seguir un tutorial para aumentar la Swap en Raspberry Pi.
Expone los pasos para clonar el repositorio de llama.en.cpp y compilar el código.
Muestra cómo moverse por el repositorio y compilar los archivos.
Discute la necesidad de obtener diferentes modelos de llama del repositorio original.
Rodríguez elige el modelo 7b por su ligereza y procede a descargarlo.
Copia el modelo 7b y el checklist al directorio de la Raspberry Pi mediante Samba.
Indica cómo mover los archivos al directorio models según las instrucciones del repositorio.
Instala las dependencias necesarias para ejecutar llama en la Raspberry Pi.
Convierte el modelo 7b al formato ggml fp16 para su uso en llama.
Realiza la conversión del modelo a 4 bits siguiendo el tutorial.
Prueba la inferencia del modelo en la Raspberry Pi con diferentes ejemplos.
Observa que el modelo funciona lentamente pero sin errores en la Raspberry Pi.
Rodríguez concluye que el modelo llama se ejecuta correctamente en la Raspberry Pi 4.
Agradece a la audiencia y anuncia el próximo video.
Transcripts
Hola a todos Soy Rodríguez Creo que este
punto todos conocemos y probablemente
muchos de ustedes conozcan lo que llaman
el modelo que liberó Facebook Hace unos
días estaba revisando en el repositorio
de llama y me encontré también con esta
variante Ya a punto cbp que es una
interpretación de llama en c++
uno de los sitios que tenía este
repositorio en el de acá en el cual una
persona había
descargado llama y la había hecho correr
una raspberry 4 Así que como también
tengo una raspberry pi 4 me gustaría
tratar de hacer lo mismo poder replicar
lo que ha hecho esta persona la
raspberry 4 que tengo es una raspberry
pi 4 de 8 gigabytes a la cual me estoy
conectando por schh acá podemos ver que
tengo la raspberry
si le doy acá H top
podemos ver los cuatro núcleos las 8
gigabytes y mi Swap Entonces como Primer
paso para poder hacer este hacer que
este modelo funcione la raspberry lo que
me gustaría hacer es aumentarle la Swap
dado que he visto que mucha gente se
quejaba de que la ram no es suficiente
para esto recomiendo usar este tutorial
de aquí es donde explica Cómo
incrementar la Swap por defecto las
raspberry que estoy corriendo acá
estoy corriendo acá la el sistema
operativo de la raspberry de 4 bits en
la versión Lite O sea que nada no tengo
no tengo
de esto quemarment así que aquí por
defecto viene ese megabytes lo mentado
yo a 2 gigas y acá se puede ver si yo
corto de aquí
podemos ver ahí que dice con
2048 2 gigas Así que Les recomiendo
subir su tutorial para aumentar su Swap
una vez que tienen aumentada las app el
siguiente paso sería darle git Clon al
repositorio de llamada.cp Así que vamos
a seguir sus pasos que indican acá
estamos acá Aquí clon
para clonar el repositorio
ya está ahora hacemos CD a la carpeta
y vemos el contenido acá están todos los
archivos que estaban en el repositorio
luego tenemos que hacer un make Así que
damos Mail para compilar
Esperamos que compile
probablemente tome un poco de tiempo
Mientras tanto podemos seguir viendo lo
que hay aquí
una vez compilamos el siguiente paso
sería mover el modelo acá tenemos
diferentes modelos del yaman tenemos 7b
13b 30 b y 65b estos modelos se pueden
encontrar en el repositorio original de
llama aquí ellos permiten encontrar el
modelo a través de
de llenar este Google forms sin embargo
recomiende buscar otra manera de
conseguir el repositorio
perdón de conseguir el modelo ya que por
lo general eso demora Así que si consigo
otra manera sería excelente una vez
consiguen el modelo el que yo voy a
utilizar es el 7b ya que es el más
liviano y ahora tengo descargado
Entonces ya compilo aquí
vamos acá a limpiar y les muestro acá el
modelo que tengo acá lo tengo descargado
el 7b viene con el tocador y el toquen
arzareiser checklist si entramos Aquí
vemos que pesa más o menos unas 13 gigas
Así que lo que voy a hacer es copiar
esto de acá a mi raspberry pero como
esto demora bastante ya lo he hecho
previamente Acá tengo estoy conectado
por Samba a mi raspberry Así que puedo
ver los archivos que hay dentro Ese es
el interior de la raspberry Así que si
entramos acá home rp o s vemos acá el 7b
lo que nadie model y te pegas el
checklist ya le he pasado acá está más o
menos 13 gigas Así que lo que tengo que
hacer es mover esos tres archivos al
donde me dicen el repositorio en el
repositorio me dice que lo mueva al
punto models o sea a la carpeta models
Así que le damos acá control x ya más fp
models y acá lo vemos aquí
una vez que ya lo hemos copiado Ahí
vamos a
correr esto de acá el siguiente paso
lo corremos aquí
no tenemos pib vamos a instalar
esperamos a que instale
una vez que corremos de aquí podemos ir
con los demás pasos vamos a ver si
instalo
ya ahora sí entonces corremos otra vez
python 3 - pip lomen
ya está ahora tenemos que convertir
estos modelos 7b al formato ggml fp16
entonces
Seguimos aquí tenemos acá la carpeta
models
que está
aquí aquí está la carpeta models
entonces
ahí está el 7b Perfecto entonces
retrocedemos Y desde ya punto cbp
corremos este
Script de python
con esto convertimos el modelo 7b en
otro formato que vamos a utilizar luego
para la inferencia con llama
muy bien una vez que ha terminado de
correr el Script continuamos con el
tutorial entonces aquí lo siguiente que
tenemos que correr es lo de acá
Así que corremos esto
para
hacerle al model a 4 bits
corremos lo de aquí
muy bien una vez que ha terminado de
hacer la conversión
seguimos con el tutorial Así que lo que
se vería se iría correr la inferencia
Así que en teoría ya debemos poder
correr una diferencia
vamos a probar
creo que acá arriba también hay un
ejemplo acá en punto Main
menos mcm models todo esto de acá
vamos a probar
en lugar de 512 vamos a cambiarlo por
128 Ok entonces corremos aquí
estamos aquí 128
y vamos a probar
vemos que está cargando
veamos Qué tal el modelo responde este
pront billing a Website con bidón simple
parece que es un poco lento
pero no me lanza error así que
es probable que le esté procesando
vamos a esperar entonces que nos dé una
respuesta
ya está vemos que nos ha respondido su
respuesta
todo esto de aquí
no ha terminado de completar la idea
Pero ha podido respondernos Entonces
vamos a probar una vez más con otro
ejemplo
en lugar de este pront vamos a cambiar
el Bronx y vamos a preguntarle que es
una llama
y vemos que también está una respuesta
es su respuesta
e incluso se ha hecho una pregunta para
poder seguir completando su respuesta
Así como vemos Ya no se ve funciona en
la raspberry pi 4 y esa es la prueba de
ello eso sería todo por el vídeo Muchas
gracias y nos vemos en el siguiente
video Hasta luego
Посмотреть больше похожих видео
Retropie. Raspberry Pi Zero 2W. PSP, N64, PS1 & more tested.
Pi news 91. A New Pi, 16GB Pi 5 & Vulkan 1.3
DELIMITACION DE UNA CUENCA EN ARCGIS, DESCARGA DE CARTAS NACIONALES,
Nuevo Avance DESBLOQUEA EL POTENCIAL de los LLMs | Reflection 70B
60. Maleta Recreativa. Arcade Bartop Portátil.
Raspberry Pi PICO en Español 🍓 Curso de MICROPYTHON Tutorial 🐍 ➤ ESP [N° 001]
5.0 / 5 (0 votes)