Instalar llama 2, la IA de Meta Open Source y comercializable que planta cara a Chat GPT para usarla con Python y Docker (con acceso a GPU)

Tiempo de lectura: 3 minutos

Hola, hoy vamos a ver cómo podemos instalar y descargar llama 2, la IA de Meta que hace frente a chatgpt 3.5. Para ello he creado un Docker Compose que nos ayudará a generar el entorno.

Lo primero que tenemos que hacer, es ir a la página de llama 2 y solicitar una versión en su propia web https://ai.meta.com/llama/

Ahora nos pedirá una cuenta de correo, yo recomiendo una cuenta de universidad o de investigación para que la solicitud sea aprobada lo más rápido posible:

Ahora, nos llegará un correo con las instrucciones de instalación.

Para ello lo primero que vamos a hacer es descargar el entorno sin modelo de Llama 2, para ello vamos a su github y lo clonamos:

https://github.com/facebookresearch/llama

Una vez descargado, podemos instalarlo en nuestra máquina o usar un Docker Compose.

Yo voy a crear un Docker Compose con el que podéis instalar esta IA:

  • Creáis una carpeta llamada app en raíz del proyecto
  • Ahora creáis otra carpeta llamada Dockerfile dónde vamos a añadir nuestro archivo de configuración del entorno personalizado.

Creamos un archivo llamado container_python dentro de Dockerfile (Dockerfile/container_python) 7 añadimos este contenido:

# syntax=docker/dockerfile:1
#FROM python:3.11.3
FROM python:3.8

#WORKDIR /app

#-y es para cuando da error de yes 
RUN apt-get update -y
RUN apt install python3-pip -y
RUN pip install --upgrade pip
# Ejecutar un comando que mantenga el contenedor en ejecución
CMD tail -f /dev/null

Ahora creamos un archivo en raíz llamado docker-compose.yml

version: "3.1"

services:

  llama_ia_python:
      build:
        context: ./Dockerfile
        dockerfile: container_python
      restart: unless-stopped
      container_name: llama_ia_python
      working_dir: /app
      volumes:
        - ./app:/app

Con esto ya tenemos nuestro entorno creado.

Ahora tendremos que lanzar el contenedor, con el comando:

docker compose up -d

Dejará el contenedor en segundo plano y podremos ejecutar nuestros comandos. Yo recomiendo acceder a la consola directamente desde Docker:

docker exec -it llama_ia_python bash

Y nos abre la consola.

Lo primero que tenemos que hacer es navegar hasta el repositorio de llama:

cd llama-main

Y ejecutar download.sh para descargar los modelos necesarios.

./download.sh

Ahora nos pedirá la URL de instalación, esta URL se recibe desde el email («When asked for your unique custom URL, please insert the following:«), la copiamos y la pegamos.

Y ahora nos preguntará que modelos queremos descargar, si queremos todos, pulsamos enter.

Empezará a descargar los modelos:

Una vez instalados, yo recomiendo guardarlos aparte, están en las carpetas:

Ya que solo deja descargar durante 24 horas y 5 veces.

Una vez bajados los modelos, podemos instalar llama:

pip install -e .

Ahora, para comprobar que funciona, tendremos que utilizar este comando:

torchrun --nproc_per_node 1 example_text_completion.py \
    --ckpt_dir llama-2-7b/ \
    --tokenizer_path tokenizer.model \
    --max_seq_len 128 --max_batch_size 4

Con este puedes probar el chat:

torchrun --nproc_per_node 1 example_chat_completion.py \
    --ckpt_dir llama-2-7b-chat/ \
    --tokenizer_path tokenizer.model \
    --max_seq_len 512 --max_batch_size 4

*Nota: si usas Docker, asegúrate de que puede acceder a la GPU, si no no funcionará este servicio. Si no funciona con Docker Compose, puedes intentar ejecutarlo en local.

Aquí podéis descargar más modelos compatibles con llama: https://huggingface.co/meta-llama/

https://huggingface.co/meta-llama/

Deja un comentario