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.
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
- Caché de Hugging Face:
🎯 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 estadoPOST /v1/chat/completions
- Chat compatible con OpenAIGET /v1/models
- Lista los modelos disponiblesPOST /api/generate
- API nativa de ShimmyGET /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
- Informes de errores: GitHub Issues
- Discusiones: GitHub Discussions
- Documentación: docs/
- Patrocinio: GitHub Sponsors
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.