Servidor de inferência de IA local leve, com apenas 5MB em um único binário, oferece interface compatível com a API OpenAI, suporta modelos GGUF e adaptadores LoRA.
Shimmy - Servidor de Inferência de IA Local Leve
Visão Geral do Projeto
Shimmy é um servidor de inferência local de IA de binário único de 5.1MB que fornece endpoints compatíveis com a API OpenAI para modelos GGUF. Ele foi projetado para ser uma "infraestrutura invisível", tornando o desenvolvimento de IA local sem atritos.
Funcionalidades Principais
🚀 Extremamente Leve
- Tamanho do Binário: Apenas 5.1MB (comparado aos 680MB do Ollama)
- Tempo de Inicialização: <100ms (comparado aos 5-10 segundos do Ollama)
- Consumo de Memória: <50MB (comparado aos 200MB+ do Ollama)
🔧 Execução Sem Configuração
- Alocação Automática de Porta: Evita conflitos de porta
- Descoberta Automática de Modelos: Suporta múltiplas fontes de modelos
- Cache do Hugging Face:
~/.cache/huggingface/hub/
- Modelos Ollama:
~/.ollama/models/
- Diretório Local:
./models/
- Variável de Ambiente:
SHIMMY_BASE_GGUF=path/to/model.gguf
- Cache do Hugging Face:
🎯 Compatibilidade Perfeita
- 100% Compatível com a API OpenAI: Substitui diretamente ferramentas existentes
- Pronto para Usar: Ferramentas como VSCode, Cursor, Continue.dev não requerem modificações
- Suporte Multiplataforma: Linux, macOS, Windows
Arquitetura Técnica
Pilha Tecnológica Principal
- Linguagem: Rust + Tokio (segurança de memória, desempenho assíncrono)
- Motor de Inferência: Backend llama.cpp (inferência GGUF padrão da indústria)
- Design da API: Compatível com OpenAI (substituição plug-and-play)
Formatos de Modelo Suportados
- Modelos GGUF: Formato principal suportado
- SafeTensors: Suporte nativo, velocidade de carregamento 2x mais rápida
- Adaptadores LoRA: Suporte de primeira classe, da fase de treinamento à API de produção em apenas 30 segundos
Instalação e Uso
Instalação Rápida
Método 1: Instalar via Cargo
cargo install shimmy
Método 2: Baixar o Binário Pré-compilado (Windows)
curl -L https://github.com/Michael-A-Kuykendall/shimmy/releases/latest/download/shimmy.exe
Método 3: Instalação no macOS
# Instalar dependências
brew install cmake rust
# Instalar shimmy
cargo install shimmy
Uso Básico
1. Baixar Modelos
# Baixar modelos compatíveis
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 o Servidor
# Alocação automática de porta
shimmy serve
# Especificar porta manualmente
shimmy serve --bind 127.0.0.1:11435
3. Configurar Ferramentas de IA
Configuração do VSCode:
{
"github.copilot.advanced": {
"serverUrl": "http://localhost:11435"
}
}
Configuração do Continue.dev:
{
"models": [{
"title": "Local Shimmy",
"provider": "openai",
"model": "your-model-name",
"apiBase": "http://localhost:11435/v1"
}]
}
Ferramentas de Linha de Comando
Comandos Básicos
shimmy serve # Inicia o servidor (alocação automática de porta)
shimmy serve --bind 127.0.0.1:8080 # Vinculação manual de porta
shimmy list # Exibe os modelos disponíveis
shimmy discover # Atualiza a descoberta de modelos
shimmy generate --name X --prompt "Hi" # Testar geração
shimmy probe model-name # Validar carregamento do modelo
Endpoints da API
Endpoints Principais
GET /health
- Verificação de saúdePOST /v1/chat/completions
- Chat compatível com OpenAIGET /v1/models
- Lista os modelos disponíveisPOST /api/generate
- API nativa do ShimmyGET /ws/generate
- Streaming WebSocket
Exemplo de Uso
# Testar API
curl -X POST http://localhost:11435/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "your-model",
"messages": [{"role": "user", "content": "Hello!"}]
}'
Comparação de Desempenho
Métrica | Shimmy | Ollama | llama.cpp |
---|---|---|---|
Tamanho do Binário | 5.1MB 🏆 | 680MB | 89MB |
Tempo de Inicialização | <100ms 🏆 | 5-10s | 1-2s |
Uso de Memória | 50MB 🏆 | 200MB+ | 100MB |
API OpenAI | 100% 🏆 | Suporte Parcial | Nenhum |
Vantagens Principais
🔒 Privacidade em Primeiro Lugar
- O código permanece na máquina local
- Sem risco de vazamento de dados
- Operação totalmente offline
💰 Custo-Benefício
- Sem cobrança por token
- Consultas ilimitadas
- Uma instalação, uso permanente
⚡ Desempenho Superior
- Inferência local, resposta em submilisegundos
- Baixo consumo de memória
- Inicialização rápida
🔄 Implantação Flexível
- Arquivo binário único
- Sem dependências externas
- Compatibilidade multiplataforma
Funcionalidades Estendidas
Suporte a Adaptadores LoRA
Shimmy oferece suporte de primeira classe a adaptadores LoRA, permitindo a implantação rápida de modelos treinados para a API de produção:
# Carregar adaptador LoRA
shimmy serve --lora-adapter path/to/adapter
Troca de Modelo a Quente
Suporta a troca dinâmica de modelos em tempo de execução, sem a necessidade de reiniciar o servidor.
Aceleração por GPU
- macOS: Aceleração automática de GPU Metal
- Multiplataforma: Suporta vários backends de GPU
Comunidade e Suporte
Recursos da Comunidade
- Relatórios de Bugs: GitHub Issues
- Discussões: GitHub Discussions
- Documentação: docs/
- Patrocínio: GitHub Sponsors
Resumo
Shimmy é uma solução revolucionária de inferência de IA local que prova que, às vezes, "menos é mais". Através de um design extremamente leve e uma filosofia de configuração zero, Shimmy oferece aos desenvolvedores uma infraestrutura de IA local verdadeiramente "pronta para usar", mantendo o desempenho e a compatibilidade de nível empresarial. Seja você um desenvolvedor de aplicativos de IA, um pesquisador ou um usuário preocupado com a privacidade, Shimmy é uma excelente escolha a ser considerada.