Servidor de inferencia de IA local ligero, de solo 5MB en un único binario, que proporciona una interfaz compatible con la API de OpenAI, compatible con modelos GGUF y adaptadores LoRA.

MITRustshimmyMichael-A-Kuykendall 2.8k Last Updated: October 04, 2025

Shimmy - Servidor de Inferencia de IA Local Ligero

Resumen del Proyecto

Shimmy es un servidor de inferencia local de IA de un solo binario de 5.1MB que proporciona puntos finales compatibles con la API de OpenAI para modelos GGUF. Está diseñado como una "infraestructura invisible" para que el desarrollo de IA local sea sin fricciones.

Características Principales

🚀 Extremadamente Ligero

  • Tamaño del binario: Solo 5.1MB (frente a los 680MB de Ollama)
  • Tiempo de inicio: <100ms (frente a los 5-10 segundos de Ollama)
  • Consumo de memoria: <50MB (frente a los 200MB+ de Ollama)

🔧 Ejecución sin Configuración

  • Asignación automática de puertos: Evita conflictos de puertos
  • Descubrimiento automático de modelos: Soporta múltiples fuentes de modelos
    • Caché de Hugging Face: ~/.cache/huggingface/hub/
    • Modelos de Ollama: ~/.ollama/models/
    • Directorio local: ./models/
    • Variable de entorno: SHIMMY_BASE_GGUF=path/to/model.gguf

🎯 Compatibilidad Perfecta

  • 100% compatible con la API de OpenAI: Reemplaza directamente las herramientas existentes
  • Listo para usar: Herramientas como VSCode, Cursor, Continue.dev no requieren modificaciones
  • Soporte multiplataforma: Linux, macOS, Windows

Arquitectura Técnica

Pila Tecnológica Principal

  • Lenguaje: Rust + Tokio (seguridad de memoria, rendimiento asíncrono)
  • Motor de inferencia: Backend llama.cpp (inferencia GGUF estándar de la industria)
  • Diseño de API: Compatible con OpenAI (reemplazo plug-and-play)

Formatos de Modelo Soportados

  • Modelos GGUF: Formato principal soportado
  • SafeTensors: Soporte nativo, velocidad de carga 2 veces más rápida
  • Adaptadores LoRA: Soporte de primera clase, de entrenamiento a API de producción en solo 30 segundos

Instalación y Uso

Instalación Rápida

Método 1: Instalar vía Cargo

cargo install shimmy

Método 2: Descargar el binario precompilado (Windows)

curl -L https://github.com/Michael-A-Kuykendall/shimmy/releases/latest/download/shimmy.exe

Método 3: Instalación en macOS

# Instalar dependencias
brew install cmake rust
# Instalar shimmy
cargo install shimmy

Uso Básico

1. Descargar modelos

# Descargar modelos compatibles
huggingface-cli download microsoft/Phi-3-mini-4k-instruct-gguf --local-dir ./models/
huggingface-cli download bartowski/Llama-3.2-1B-Instruct-GGUF --local-dir ./models/

2. Iniciar el servidor

# Asignación automática de puertos
shimmy serve

# Especificar puerto manualmente
shimmy serve --bind 127.0.0.1:11435

3. Configurar herramientas de IA

Configuración de VSCode:

{
  "github.copilot.advanced": {
    "serverUrl": "http://localhost:11435"
  }
}

Configuración de Continue.dev:

{
  "models": [{
    "title": "Local Shimmy",
    "provider": "openai", 
    "model": "your-model-name",
    "apiBase": "http://localhost:11435/v1"
  }]
}

Herramientas de Línea de Comandos

Comandos Básicos

shimmy serve                        # Inicia el servidor (asignación automática de puertos)
shimmy serve --bind 127.0.0.1:8080 # Enlace de puerto manual
shimmy list                         # Muestra los modelos disponibles
shimmy discover                     # Actualiza el descubrimiento de modelos
shimmy generate --name X --prompt "Hi" # Prueba de generación
shimmy probe model-name             # Verifica la carga del modelo

Puntos Finales de la API

Puntos Finales Principales

  • GET /health - Verificación de estado
  • POST /v1/chat/completions - Chat compatible con OpenAI
  • GET /v1/models - Lista los modelos disponibles
  • POST /api/generate - API nativa de Shimmy
  • GET /ws/generate - Transmisión por WebSocket

Ejemplo de Uso

# Probar la API
curl -X POST http://localhost:11435/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-model",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Comparación de Rendimiento

Métrica Shimmy Ollama llama.cpp
Tamaño del binario 5.1MB 🏆 680MB 89MB
Tiempo de inicio <100ms 🏆 5-10s 1-2s
Uso de memoria 50MB 🏆 200MB+ 100MB
API de OpenAI 100% 🏆 Soporte parcial Ninguno

Ventajas Destacadas

🔒 Privacidad Primero

  • El código permanece en la máquina local
  • Sin riesgo de fuga de datos
  • Funciona completamente offline

💰 Rentabilidad

  • Sin facturación por token
  • Consultas ilimitadas
  • Una instalación, uso permanente

⚡ Rendimiento Superior

  • Inferencia local, respuesta en subsegundos
  • Bajo consumo de memoria
  • Inicio rápido

🔄 Despliegue Flexible

  • Archivo binario único
  • Sin dependencias externas
  • Compatible con múltiples plataformas

Funcionalidades Extendidas

Soporte para Adaptadores LoRA

Shimmy ofrece soporte de primera clase para adaptadores LoRA, permitiendo un despliegue rápido desde modelos entrenados a una API de producción:

# Cargar adaptador LoRA
shimmy serve --lora-adapter path/to/adapter

Cambio de Modelo en Caliente

Soporta el cambio dinámico de modelos en tiempo de ejecución, sin necesidad de reiniciar el servidor.

Aceleración por GPU

  • macOS: Aceleración automática de GPU Metal
  • Multiplataforma: Soporta varios backends de GPU

Comunidad y Soporte

Recursos de la Comunidad

Resumen

Shimmy es una solución revolucionaria para la inferencia de IA local, que demuestra que a veces "menos es más". Con un diseño ultraligero y una filosofía de cero configuración, Shimmy ofrece a los desarrolladores una infraestructura de IA local verdaderamente "lista para usar", manteniendo al mismo tiempo un rendimiento y una compatibilidad de nivel empresarial. Ya seas un desarrollador de aplicaciones de IA, un investigador o un usuario preocupado por la privacidad, Shimmy es una excelente opción a considerar.

Star History Chart