Implementación de Open LLMs con el servidor LLAMA-CPP: una guía paso a paso
Implementación de Open LLMs con el servidor LLAMA-CPP: una guía paso a paso. Aprende a instalar y configurar el servidor LLAMA-CPP para servir modelos de lenguaje de gran tamaño de código abierto, haciendo solicitudes a través de cURL, el cliente de OpenAI y el paquete de solicitudes de Python. Optimiza para implementación local y remota.
14 de febrero de 2025

Desbloquea el poder de los modelos de lenguaje de código abierto (LLM) a gran escala con esta guía completa sobre la implementación del servidor LLAMA-CPP. Descubre cómo atender de manera eficiente a múltiples usuarios con un solo LLM, optimizando el rendimiento y la accesibilidad de tus aplicaciones impulsadas por IA.
Instalación de LLAMA-CPP
Inicio del servidor LLAMA-CPP
Realización de solicitudes al servidor LLAMA-CPP
Personalización del servidor LLAMA-CPP
Interacción con el servidor LLAMA-CPP utilizando diferentes métodos
Conclusión
Instalación de LLAMA-CPP
Instalación de LLAMA-CPP
La forma más sencilla de comenzar con LLAMA-CPP es usar el administrador de paquetes Homebrew para instalarlo. Esto funcionará de forma nativa tanto en máquinas macOS como Linux. Para instalar LLAMA-CPP en una máquina Windows, deberá usar el Subsistema de Windows para Linux (WSL).
Para instalar LLAMA-CPP usando Homebrew, ejecute el siguiente comando en su terminal:
brew install llama-cpp
Este comando descargará e instalará el paquete LLAMA-CPP en su sistema. Una vez que se complete la instalación, puede comenzar a usar el comando llama-server
para servir sus modelos de LLM.
Inicio del servidor LLAMA-CPP
Inicio del servidor LLAMA-CPP
Para iniciar el servidor LLAMA-CPP, siga estos pasos:
-
Instale LLAMA-CPP usando el administrador de paquetes Homebrew:
brew install llama.cpp
Este comando instalará LLAMA-CPP en su Mac o máquina Linux. Para los usuarios de Windows, deberá usar WSL (Subsistema de Windows para Linux) para instalar LLAMA-CPP.
-
Inicie el servidor LLAMA-CPP ejecutando el siguiente comando:
llama-server --model <hugging-face-repo-id> --model-file <quantization-file>
Reemplace
<hugging-face-repo-id>
con el ID del repositorio de Hugging Face del modelo que desea servir, y<quantization-file>
con el archivo de cuantización específico que desea usar (por ejemplo, la versión cuantizada de 4 bits en formato GGML). -
El servidor LLAMA-CPP comenzará a escuchar las solicitudes entrantes en
localhost:8080
de forma predeterminada. Puede personalizar la dirección del host y el puerto usando las opciones disponibles, como--host
y--port
. -
El servidor admite varias opciones de configuración, incluido el establecimiento de la ventana de contexto máxima, el tamaño del lote y más. Puede explorar estas opciones ejecutando
llama-server --help
. -
Una vez que el servidor esté en ejecución, puede interactuar con él usando diferentes métodos, como cURL, el cliente de OpenAI o el paquete Python
requests
, como se muestra en las secciones anteriores.
Realización de solicitudes al servidor LLAMA-CPP
Realización de solicitudes al servidor LLAMA-CPP
Hay varias formas de interactuar con el servidor LLAMA-CPP y hacer solicitudes al modelo servido:
-
Usando el comando cURL:
curl -X POST -H "Content-Type: application/json" -d '{"prompt": "Hello, how are you?", "max_tokens": 50}' http://localhost:8080/v1/chat/completions
Esto hará una solicitud POST al punto final de finalización de chat que se ejecuta en el host local en el puerto 8080.
-
Usando el cliente de OpenAI:
import openai openai.api_base = "http://localhost:8080/v1" openai.Model.list() response = openai.ChatCompletion.create( model="chat-gpt-3.5", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Hello, how are you?"} ] ) print(response.choices[0].message.content)
Esto usa el cliente de OpenAI para interactuar con el servidor LLAMA-CPP, que es compatible con la API de OpenAI.
-
Usando el paquete Python Requests:
import requests url = "http://localhost:8080/v1/chat/completions" headers = {"Content-Type": "application/json"} data = { "prompt": "Hello, how are you?", "max_tokens": 50 } response = requests.post(url, headers=headers, json=data) print(response.json())
Esto usa el paquete Python Requests para hacer una solicitud POST al punto final de finalización de chat.
Personalización del servidor LLAMA-CPP
Personalización del servidor LLAMA-CPP
LLAMA-CPP proporciona un servidor altamente personalizable que le permite ajustar el comportamiento de su implementación de LLM. Aquí hay algunas de las principales opciones que puede configurar:
-
Ventana de contexto máxima: Puede definir el tamaño máximo de la ventana de contexto para el LLM, lo que determina la longitud máxima de la secuencia de entrada que el modelo puede procesar.
-
Tamaño del lote: LLAMA-CPP admite el procesamiento por lotes de indicaciones, lo que le permite procesar múltiples entradas simultáneamente para mejorar el rendimiento. Puede configurar el tamaño del lote para optimizar el rendimiento.
-
Dirección del host: De forma predeterminada, el servidor LLAMA-CPP escucha en
localhost
, pero puede cambiar la dirección del host para que el servidor sea accesible desde otras máquinas de su red. -
Puerto: El servidor escucha en el puerto
8080
de forma predeterminada, pero puede especificar un puerto diferente si es necesario. -
Ruta del modelo: LLAMA-CPP le permite personalizar la ruta desde la que carga los archivos del modelo LLM, lo que le da flexibilidad en la organización de sus activos de modelo.
-
Modelos de incrustación: Además de los modelos de lenguaje, LLAMA-CPP también puede servir modelos de incrustación, lo que le permite integrar capacidades de generación de texto y codificación de texto en sus aplicaciones.
-
Seguimiento de métricas: El servidor LLAMA-CPP puede rastrear varias métricas, como la latencia y el rendimiento de las solicitudes, para ayudarlo a monitorear y optimizar el rendimiento de su implementación.
Interacción con el servidor LLAMA-CPP utilizando diferentes métodos
Interacción con el servidor LLAMA-CPP utilizando diferentes métodos
Para interactuar con el servidor LLAMA-CPP, podemos usar varios métodos:
-
Usando el comando cURL:
- Hacer una solicitud POST al punto final de
finalización de chat
que se ejecuta enlocalhost
. - Proporcionar los encabezados necesarios y el objeto de datos que contiene la indicación y el número deseado de tokens a generar.
- La respuesta incluirá el texto generado, así como información sobre el proceso de generación, como temperatura, top-P, top-K y tokens predichos por segundo.
- Hacer una solicitud POST al punto final de
-
Usando el cliente de OpenAI:
- Crear un cliente de OpenAI con la URL base establecida en la URL del servidor local LLAMA-CPP.
- Usar el cliente de finalización de chat y proporcionar el nombre del modelo (por ejemplo,
chat-gpt-3.5
). - Establecer la indicación del sistema y la indicación del usuario, luego hacer la solicitud al servidor.
- La respuesta se devolverá con el mismo formato que la API de OpenAI.
-
Usando el paquete Requests (Python):
- Definir la URL y los encabezados para la solicitud POST.
- Pasar múltiples mensajes diferentes al servidor y observar cómo procesa las solicitudes de forma concurrente.
- El servidor pondrá en cola las solicitudes y las procesará una por una, sin saturarse.
Conclusión
Conclusión
En este video, hemos explorado la instalación y el uso de LlamaCPP, un poderoso proyecto de código abierto para servir modelos de lenguaje de gran tamaño de código abierto. Hemos aprendido cómo instalar LlamaCPP en nuestra máquina local, iniciar el servidor e interactuar con él usando varios métodos, incluidos cURL, el cliente de OpenAI y el paquete de solicitudes de Python.
También hemos discutido las diversas opciones de configuración disponibles en LlamaCPP, lo que nos permite personalizar el servidor a nuestras necesidades específicas, como establecer la ventana de contexto máxima, el tamaño del lote y la dirección del host. Además, hemos visto cómo LlamaCPP puede rastrear métricas, lo que lo convierte en una opción adecuada para entornos de producción.
Finalmente, hemos tocado las aplicaciones prácticas de LlamaCPP, particularmente en el contexto de implementar modelos de lenguaje de gran tamaño para varios casos de uso. Hemos mencionado el marco Rasa como una aplicación potencial y hemos proporcionado un enlace a un curso relacionado en la descripción del video.
En general, este video ha proporcionado una introducción integral a LlamaCPP y sus capacidades, equipándolo con el conocimiento para comenzar a servir modelos de lenguaje de gran tamaño de código abierto en su máquina local o en un entorno de producción.
Preguntas más frecuentes
Preguntas más frecuentes