llmfit
Ferramenta de terminal escrita em Rust que detecta o hardware do sistema e indica quais modelos LLM rodam bem localmente. Avalia RAM, CPU e GPU, e classifica 497 modelos de 133 provedores com base em qualidade, velocidade, compatibilidade de memória e janela de contexto.
- Repositório: https://github.com/AlexsJones/llmfit
- Licença: MIT
- Linguagem principal: Rust (75,9%)
Instalação
macOS / Linux
# Via script
curl -fsSL https://llmfit.axjns.dev/install.sh | sh
# Via Homebrew
brew tap AlexsJones/llmfit
brew install llmfitCargo (multiplataforma)
cargo install llmfitA partir do código-fonte
git clone https://github.com/AlexsJones/llmfit.git
cd llmfit
cargo build --releaseUso
TUI (padrão)
llmfitInterface interativa no terminal. Atalhos principais:
| Tecla | Ação |
|---|---|
↑/↓ ou j/k | Navegar modelos |
/ | Busca por nome, provedor, params ou uso |
f | Filtrar por fit: All, Runnable, Perfect, Good, Marginal |
s | Ordenar por coluna: Score, Params, Mem%, Ctx, Date |
d | Baixar modelo via Ollama |
p | Filtro por provedor |
t | Trocar tema de cores |
q | Sair |
CLI
llmfit --cli # Tabela de todos os modelos
llmfit fit --perfect -n 5 # Top 5 modelos com fit perfeito
llmfit system # Specs do hardware detectado
llmfit search "llama 8b" # Busca por nome/provedor/tamanho
llmfit info "Mistral-7B" # Detalhes de um modelo
llmfit recommend --json --limit 5 # Top 5 recomendações em JSON
llmfit recommend --json --use-case coding --limit 3Overrides úteis
# Forçar VRAM manualmente (quando autodetecção falha)
llmfit --memory=24G --cli
# Limitar contexto para estimativa de memória
llmfit --max-context 4096 --cli
# Hardware como JSON
llmfit --json systemComo funciona
1. Detecção de hardware
- RAM e CPU via
sysinfo - NVIDIA:
nvidia-smi(multi-GPU, agrega VRAM) - AMD:
rocm-smi - Intel Arc: sysfs /
lspci - Apple Silicon:
system_profiler(VRAM = RAM unificada)
2. Base de modelos
- 497 modelos do HuggingFace, embutidos no binário em
data/hf_models.json - Suporte a arquiteturas MoE (Mixtral, DeepSeek): estima apenas os experts ativos por token, reduzindo VRAM necessária significativamente
3. Quantização dinâmica
Testa de Q8_0 (melhor qualidade) até Q2_K (mais comprimido), escolhendo a melhor que cabe na memória disponível.
4. Score multidimensional (0–100 cada)
| Dimensão | O que mede |
|---|---|
| Quality | Params, reputação do modelo, penalidade de quantização |
| Speed | Tokens/s estimados por backend e quantização |
| Fit | Eficiência de uso de memória (ideal: 50–80%) |
| Context | Tamanho da janela de contexto vs. caso de uso |
Pesos variam por categoria: Chat prioriza Speed (0.35); Reasoning prioriza Quality (0.55).
5. Modos de execução
| Modo | Descrição |
|---|---|
| GPU | Modelo cabe na VRAM — inferência rápida |
| MoE | Experts ativos na VRAM, inativos na RAM |
| CPU+GPU | VRAM insuficiente, spill para RAM com offload parcial |
| CPU | Sem GPU, tudo na RAM do sistema |
6. Níveis de fit
| Fit | Condição |
|---|---|
| Perfect | Memória recomendada disponível na GPU |
| Good | Cabe com margem (MoE offload ou CPU+GPU) |
| Marginal | Fit apertado ou CPU-only |
| Too Tight | Sem memória suficiente |
Integração com Ollama
Detecta automaticamente o Ollama em http://localhost:11434. Modelos instalados aparecem com ✓ na coluna Inst.
# Ollama remoto
OLLAMA_HOST="http://192.168.1.100:11434" llmfitd: baixa modelo selecionado viaPOST /api/pulli: ordena modelos instalados primeiror: atualiza lista de instalados
Estrutura do projeto
src/
main.rs # Entrypoint, parsing CLI, launch TUI
hardware.rs # Detecção de RAM/CPU/GPU
models.rs # Base de modelos e quantização
fit.rs # Scoring multidimensional
providers.rs # Integração Ollama
tui_app.rs # Estado da TUI
tui_ui.rs # Renderização (ratatui)
data/
hf_models.json # Base de modelos
scripts/
scrape_hf_models.py # Scraper da API HuggingFace
update_models.sh # Atualização automatizada da base
Referências
- Repositório: https://github.com/AlexsJones/llmfit
- Lista de modelos: https://github.com/AlexsJones/llmfit/blob/main/MODELS.md
- Projeto relacionado (agentes em Kubernetes): https://github.com/AlexsJones/sympozium
- Alternativa (Node.js, benchmark real via Ollama): https://github.com/Pavelevich/llm-checker