Código Espinoza Logo

Cómo Correr el Modelo Llama 3.1 de Meta en Local con Python y Ollama

Introducción

El modelo Llama 3.1 de Meta es uno de los modelos de lenguaje más avanzados disponibles en la actualidad. Con tamaños que varían entre los 8 mil millones y los 405 mil millones de parámetros, este modelo está diseñado para ofrecer capacidad de procesamiento del lenguaje natural de vanguardia.

Requisitos Previos

Antes de comenzar, asegúrate de tener instalados los siguientes requisitos en tu sistema:

Instalación de Ollama

Primero, necesitamos instalar Ollama, una herramienta que nos permitirá descargar y ejecutar el modelo Llama 3.1. Sigue estos pasos para instalar Ollama:

  1. Visita la página oficial de Ollama en ollama.com.
  2. Descarga el instalador correspondiente a tu sistema operativo.
  3. Ejecuta el instalador y sigue las instrucciones en pantalla para completar la instalación.

Una vez instalado, abre una terminal (CMD en Windows, Terminal en macOS/Linux) y verifica la instalación ejecutando el comando ollama. Deberías ver una lista de comandos disponibles si la instalación fue exitosa.

Descarga del Modelo Llama 3.1

A continuación, descarga el modelo Llama 3.1. En la terminal, ejecuta el siguiente comando para descargar el modelo de 8 mil millones de parámetros:

ollama download llama 3.1

Este proceso puede tardar un poco dependiendo de la velocidad de tu conexión a Internet. El archivo del modelo pesa aproximadamente 4.7 GB.

Configuración del Entorno de Python

Ahora vamos a configurar nuestro entorno de Python para utilizar el modelo descargado. Crea un nuevo proyecto y un entorno virtual en una carpeta de tu elección:

python -m venv llama_env
source llama_env/bin/activate  # En Windows: llama_env\Scripts\activate

Instala la librería de Ollama en tu entorno virtual:

pip install ollama

Ejemplo de Uso del Modelo en Python

Con todo listo, podemos escribir un script de Python para interactuar con el modelo Llama 3.1. Aquí tienes un ejemplo de cómo hacerlo:

import ollama

def chat_with_llama(prompt):
    response = ollama.chat(model="llama 3.1", messages=[{"role": "user", "content": prompt}])
    return response["messages"][0]["content"]

if __name__ == "__main__":
    prompt = "Cuéntame una historia de aventuras en la jungla."
    result = chat_with_llama(prompt)
    print(result)

Este script envía una solicitud al modelo Llama 3.1 para generar una historia de aventuras en la jungla y luego imprime la respuesta.

Uso Avanzado: Streaming de Respuestas

Para casos en los que necesites manejar respuestas largas o quieres obtener los resultados en tiempo real, puedes usar la funcionalidad de streaming de Ollama:

import ollama

def stream_llama_responses(prompt):
    stream = ollama.chat(model="llama 3.1", messages=[{"role": "user", "content": prompt}], stream=True)
    for chunk in stream:
        print(chunk["messages"][0]["content"], end="")

if __name__ == "__main__":
    prompt = "Escribe un artículo sobre marketing digital optimizado para SEO."
    stream_llama_responses(prompt)

Este script muestra cómo recibir las respuestas del modelo en tiempo real y mostrarlas a medida que se generan.

Crear un Chatbot Simple

Finalmente, vamos a crear un chatbot simple que permite conversaciones continuas con el modelo Llama 3.1:

import ollama

def chat_with_llama():
    print("Bienvenido al chat con Llama 3.1. Escribe 'salir' para finalizar.")
    while True:
        user_input = input("Tú: ")
        if user_input.lower() == "salir":
            print("Adiós!")
            break
        response = ollama.generate(model="llama 3.1", prompt=user_input)
        print("Llama:", response["messages"][0]["content"])

if __name__ == "__main__":
    chat_with_llama()

Este chatbot permite al usuario interactuar con el modelo Llama 3.1 en una conversación continua hasta que el usuario escriba 'salir'.

Conclusión

En este artículo, hemos aprendido cómo configurar y utilizar el modelo Llama 3.1 de Meta en un entorno local usando Python y Ollama. Desde la instalación de las herramientas necesarias hasta la ejecución de ejemplos prácticos, esperamos que esta guía te haya sido de ayuda para aprovechar al máximo este potente modelo de lenguaje.

Si tienes alguna pregunta o necesitas más ejemplos, no dudes en dejar un comentario. ¡Buena suerte con tus proyectos!