Ir al contenido principal

Instalar llama.cpp, Ubuntu 24.4

Guía Completa: Ejecutar Modelos LLM Locales con llama.cpp

Esta guía te muestra cómo ejecutar modelos de lenguaje grandes (LLM) localmente usando binarios precompilados de llama.cpp, sin necesidad de GPU.

Requisitos Previos

  • Sistema Linux (Ubuntu/Debian recomendado)
  • Al menos 8GB de RAM (16GB recomendado para modelos grandes)
  • Conexión a Internet para descargar binarios y modelos
  • Conocimientos básicos de terminal

📂 Paso 1: Preparar el entorno

Descargar binarios precompilados

Crea un directorio y descarga los binarios precompilados de llama.cpp:

# Crear directorio principal
mkdir ~/llama-app
cd ~/llama-app

# Descargar binarios precompilados
wget https://github.com/ggml-org/llama.cpp/releases/download/b6111/llama-b6111-bin-ubuntu-x64.zip

# Descomprimir y organizar
unzip llama-b6111-bin-ubuntu-x64.zip
mv build llama.cpp  # Renombrar carpeta
cd llama.cpp/bin    # Acceder a los ejecutables

Configurar carpeta de modelos

Crea un directorio para almacenar todos tus modelos:

# Crear carpeta para modelos
mkdir -p ~/models
cd ~/models

🤖 Paso 2: Descargar y ejecutar modelos

Modelo Liviano: TinyLlama 1.1B

Recomendado para pruebas rápidas o sistemas con recursos limitados.

Descargar modelo

cd ~/models
wget https://huggingface.co/TheBloke/TinyLlama-1.1B-1T-OpenOrca-GGUF/resolve/main/tinyllama-1.1b-1t-openorca.Q4_K_M.gguf

Ejecutar modelo

cd ~/llama-app/llama.cpp/bin
./llama-cli -m ~/models/tinyllama-1.1b-1t-openorca.Q4_K_M.gguf \
  -p "¿Qué es el machine learning?" \
  -n 100 \
  --temp 0.7

Modelo Equilibrado: Mistral 7B

Excelente equilibrio entre rendimiento y calidad de respuestas.

Descargar modelo

cd ~/models
wget https://huggingface.co/TheBloke/Mistral-7B-v0.1-GGUF/resolve/main/mistral-7b-v0.1.Q4_K_M.gguf

Ejecutar modelo

cd ~/llama-app/llama.cpp/bin
./llama-cli -m ~/models/mistral-7b-v0.1.Q4_K_M.gguf \
  -p "[INST] Eres un asistente preciso y factual. Responde en español: ¿Qué es la teoría de la relatividad? [/INST]" \
  -n 300 \
  --temp 0.5 \
  --ctx-size 4096
Tip: Mistral usa una estructura de prompt especial con [INST]...[/INST] para mejores resultados.

Modelo Avanzado: Llama 3 8B

Lo último en capacidades de LLM, ideal para tareas complejas.

Descargar modelo

cd ~/models
wget https://huggingface.co/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF/resolve/main/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf

Ejecutar modelo

cd ~/llama-app/llama.cpp/bin
./llama-cli -m ~/models/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf \
  -p "<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n\nEres un científico experto. Explica en español simple pero preciso.<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n¿Cómo funciona la fotosíntesis?<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n" \
  -n 400 \
  --temp 0.4 \
  --ctx-size 4096
Estructura de prompt para Llama 3:
<|begin_of_text|>
<|start_header_id|>system<|end_header_id|>
[Tus instrucciones aquí]
<|eot_id|>
<|start_header_id|>user<|end_header_id|>
[Tu pregunta aquí]
<|eot_id|>
<|start_header_id|>assistant<|end_header_id|>
\n\n

Modelo en Español: Llama-2-7B-ft-instruct-es

Optimizado para español, ideal para contenido educativo.

Descargar modelo

# Obtén tu token en: https://huggingface.co/settings/tokens
cd ~/models
wget --header="Authorization: Bearer TU_TOKEN_AQUÍ" \
https://huggingface.co/lucas0/llama-2-7b-ft-instruct-es-GGUF/resolve/main/llama-2-7b-ft-instruct-es.Q4_K_M.gguf

Ejecutar modelo

cd ~/llama-app/llama.cpp/bin
./llama-cli -m ~/models/llama-2-7b-ft-instruct-es.Q4_K_M.gguf \
  -p "### Instrucción: Eres un profesor de biología\n### Pregunta: Explica el proceso de fotosíntesis a estudiantes de secundaria\n### Respuesta:" \
  -n 300 \
  --temp 0.5
Alternativa sin autenticación:
wget https://huggingface.co/TheBloke/Llama-2-7B-fp16/resolve/main/llama-2-7b.Q4_K_M.gguf

🚀 Paso 3: Usar llama-server (API HTTP)

Levantar el servidor HTTP local

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

Nota: Ajusta el path del modelo según tu configuración.

Probar el servidor con curl

# Desde otra terminal
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama",
    "messages": [{"role": "user", "content": "¿Qué es primero, el huevo o la gallina?"}]
  }'

Probar desde otro dispositivo

# Reemplaza 'tu-ip' con la IP de tu servidor
curl http://tu-ip:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama",
    "messages": [{"role": "user", "content": "¿Cómo estás?"}]
  }'
Acceso desde navegador: Visita http://localhost:8000/docs o http://localhost:8000 para probar el endpoint interactivamente.

⚙️ Consejos de Optimización

Reducir alucinaciones:
--temp 0.3  # Menos creatividad, más precisión
--repeat-penalty 1.2  # Penalizar repeticiones
Ahorrar memoria:
-c 1024  # Reducir contexto
--mlock  # Evitar swapping
Mejorar velocidad:
-t $(nproc)  # Usar todos los núcleos
--batch-size 512  # Procesamiento por lotes
Prompt efectivo:
-p "Eres un experto en [tema]. Da una respuesta factual y concisa en español: [pregunta]"

🔍 Solución de Problemas Comunes

Error: "No such file or directory"
- Verificar rutas exactas: ls -lh ~/models
- Usar rutas absolutas: /home/usuario/models/modelo.gguf
Modelo no responde bien:
- Reducir temperatura: --temp 0.3
- Especificar rol en prompt: "Eres un experto en..."
- Verificar formato de prompt para cada modelo
Descargas lentas:
- Usar wget -c para continuar descargas interrumpidas
- Alternativa: Descargar desde navegador y copiar via SCP
Error al iniciar llama-server:
- Verificar que el puerto 8000 esté disponible
- Asegurar que el usuario tenga permisos para ejecutar el binario
- Comprobar que el modelo existe en la ruta especificada

📝 Notas Finales

  • Los tiempos de carga inicial del modelo pueden ser largos (1-5 minutos)
  • La primera ejecución suele ser más lenta que las siguientes
  • Para mejores resultados, usa modelos con cuantización Q4_K_M o Q5_K_M
  • Los modelos más grandes requieren más RAM pero ofrecen respuestas de mejor calidad
  • El servidor HTTP permite integrar los modelos con otras aplicaciones

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...