Ir al contenido principal

Llama.cpp en Linux con modelo local y servicio systemd

Servidor Llama.cpp en Linux con modelo local

1. Estructura de directorios

Organiza todo bajo /opt/llama-app:

/opt/llama-app/
├── bin/               # Ejecutables compilados de llama.cpp
│   └── llama-server
└── models/            # Modelos de lenguaje
    └── Meta-Llama-3-8B-Instruct.Q4_K_M.gguf

2. Levantar el servidor manualmente

cd /opt/llama-app/bin
./llama-server \
  -m /opt/llama-app/models/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf \
  --host 0.0.0.0 \
  --port 9000 \
  --ctx-size 4096 \
  --n-gpu-layers 0

3. Probar la API

Desde la misma máquina:

curl http://127.0.0.1:9000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Meta-Llama-3-8B-Instruct.Q4_K_M",
    "messages": [
      {"role": "system", "content": "Eres un asistente útil en español."},
      {"role": "user", "content": "Explícame qué es la inteligencia artificial en 3 oraciones."}
    ],
    "max_tokens": 100,
    "temperature": 0.7
  }'

Desde otra máquina en la red local:

curl http://TU_IP_LOCAL:9000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Meta-Llama-3-8B-Instruct.Q4_K_M",
    "messages": [
      {"role": "user", "content": "Hola, prueba API"}
    ],
    "max_tokens": 50
  }'

4. Crear un servicio systemd

Archivo del servicio:

sudo nano /etc/systemd/system/llama-server.service

Contenido del archivo:

[Unit]
Description=Servidor Llama.cpp local
After=network.target

[Service]
Type=simple
User=sistema
WorkingDirectory=/opt/llama-app/bin
ExecStart=/opt/llama-app/bin/llama-server \
    -m /opt/llama-app/models/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf \
    --host 0.0.0.0 \
    --port 9000 \
    --ctx-size 4096 \
    --n-gpu-layers 0
Restart=always
StandardOutput=append:/var/log/llama-server.log
StandardError=append:/var/log/llama-server.log

[Install]
WantedBy=multi-user.target

Recargar systemd y habilitar el servicio:

sudo systemctl daemon-reload
sudo systemctl enable llama-server
sudo systemctl start llama-server
sudo systemctl status llama-server

5. Usar la API desde Python

import requests

url = "http://TU_IP_LOCAL:9000/v1/chat/completions"

data = {
    "model": "Meta-Llama-3-8B-Instruct.Q4_K_M",
    "messages": [
        {"role": "system", "content": "Eres un asistente útil en español."},
        {"role": "user", "content": "Explícame qué es la inteligencia artificial en 3 oraciones."}
    ],
    "max_tokens": 100,
    "temperature": 0.7
}

response = requests.post(url, json=data)
print(response.json())

¡Todo el procesamiento se hace localmente en tu servidor! No dependes de APIs externas ni modelos de pago.

Comentarios

Entradas populares de este blog

Instalación y Configuración de MySQL 5.7 en Ubuntu 24.04 LTS

Instalar MySQL 5.7 en Ubuntu 24.04 1. Descargar e instalar MySQL Copiar mkdir ~/mysql57 cd ~/mysql57 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz sudo mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql sudo ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql 2. Instalar dependencias necesarias IMPORTANTE: Se descargan las versiones nuevas de las librerías y se las vincula con las librerías que necesita MySQL. Copiar sudo apt update # Reemplazo de libaio sudo apt install libaio1t64 # Reemplazo de libtinfo y ncurses sudo apt install libtinfo6 libncurses6 Copiar # Crear los enlaces simbólicos sudo ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/libaio.so.1 sudo ln -sf /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 sudo ln -sf /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64...

Instalar DeepSeek R1 1.5B en Ubuntu 24.04 sin GPU

Instalar DeepSeek en tu sistema sin GPU, pasos: Especificaciones del Entorno de Pruebas Componente Detalle SO Ubuntu Cinnamon 24.04 LTS x86_64 Kernel 6.8.0-51-generic CPU Intel i7-6820HQ (8 núcleos) @ 3.600GHz GPUs AMD ATI Radeon HD 8830M / R7 250 / R7 M465X Intel HD Graphics 530 RAM 15.882 GB (3.716 GB en uso) Resolución 1440x810 Escritorio Cinnamon 6.0.4 1. Instalar Git LFS sudo apt-get install git-lfs git lfs install 2. Clonar el repositorio cd /opt sudo mkdir deepseek && sudo chown $USER:$USER deepseek cd deepseek git clone https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B 3. Crear y activar un entorno virtual python -m ve...

Instalar Jasper Studio 6.21 para Ubuntu 24.04

Instalar js-studiocomm_6.21.3 en Ubuntu 24.4 Para instalar Jaspersoft Studio en Ubuntu 24.4, sigue estos pasos: 1. Descargar Jasper Studio Descarga la versión js-studiocomm_6.21.3 desde el siguiente enlace: Jaspersoft Studio 6.21.3 2. Crear el directorio de instalación mkdir /opt/jasperstudio 3. Mover el archivo descargado mv /dir_descarga/js-studiocomm_6.21.3_linux_x86_64.tgz /opt/jasperstudio/ cd /opt/jasperstudio 4. Extraer el archivo tar -xvzf js-studiocomm_6.21.3_linux_x86_64.tgz cd js-studiocomm_6.21.3 5. Ejecutar Jaspersoft Studio ./Jaspersoft\ Studio 6. Crear acceso directo en el escritorio Para facilitar el acceso, crea un archivo .desktop en el escritorio: gedit ~/Escritorio/jaspersoft-studio.desktop En el archivo jaspersoft-studio.desktop , agrega lo siguiente: [Desktop Entry] Version=1.0 Ty...