Por que Executar LLMs Localmente?
Com o crescimento dos Large Language Models (LLMs), surge a necessidade de executá-los localmente por questões de:
- 🔒 Privacidade: Dados sensíveis não saem do seu ambiente
- 💰 Custo: Sem taxas por token ou API calls
- ⚡ Latência: Respostas mais rápidas sem dependência de internet
- 🎛️ Controle: Customização completa do modelo
O que é Ollama?
Ollama é uma ferramenta que simplifica a execução de LLMs localmente, oferecendo:
- Interface simples via CLI
- Suporte a múltiplos modelos
- API REST integrada
- Gerenciamento automático de recursos
Instalação e Configuração
1. Instalação no Linux
curl -fsSL https://ollama.ai/install.sh | sh
2. Instalação no macOS
brew install ollama
3. Instalação no Windows
Baixe o instalador em ollama.ai
4. Verificação
ollama --version
Modelos Disponíveis
Modelos Populares
| Modelo | Tamanho | RAM Necessária | Uso Recomendado |
|---|---|---|---|
| Llama 2 7B | 3.8GB | 8GB | Uso geral |
| Llama 2 13B | 7.3GB | 16GB | Tarefas complexas |
| Code Llama | 3.8GB | 8GB | Programação |
| Mistral 7B | 4.1GB | 8GB | Multilíngue |
| Phi-2 | 1.7GB | 4GB | Dispositivos limitados |
Instalando um Modelo
# Instalar Llama 2 7B
ollama pull llama2
# Instalar Code Llama para programação
ollama pull codellama
# Instalar Mistral 7B
ollama pull mistral
Uso Básico
1. Chat Interativo
ollama run llama2
2. Prompt Único
ollama run llama2 "Explique o que é DevOps"
3. Via API REST
curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt": "Por que usar Kubernetes?",
"stream": false
}'
Integração com Aplicações
Python Example
import requests
import json
def query_ollama(prompt, model="llama2"):
url = "http://localhost:11434/api/generate"
data = {
"model": model,
"prompt": prompt,
"stream": False
}
response = requests.post(url, json=data)
return json.loads(response.text)["response"]
# Uso
result = query_ollama("Como implementar CI/CD?")
print(result)
Node.js Example
const axios = require('axios');
async function queryOllama(prompt, model = 'llama2') {
try {
const response = await axios.post('http://localhost:11434/api/generate', {
model: model,
prompt: prompt,
stream: false
});
return response.data.response;
} catch (error) {
console.error('Erro:', error);
}
}
// Uso
queryOllama('Explique containers Docker')
.then(result => console.log(result));
Customização e Fine-tuning
1. Criando Modelfile
FROM llama2
# Definir temperatura (criatividade)
PARAMETER temperature 0.7
# Definir sistema de prompt
SYSTEM """
Você é um especialista em DevOps e Cloud Computing.
Responda sempre de forma técnica e prática.
"""
2. Criando Modelo Customizado
ollama create devops-expert -f ./Modelfile
ollama run devops-expert
Performance e Otimização
1. Requisitos de Hardware
Mínimo:
- RAM: 8GB
- CPU: 4 cores
- Armazenamento: 10GB livre
Recomendado:
- RAM: 16GB+
- CPU: 8+ cores
- GPU: NVIDIA com CUDA (opcional)
- SSD: Para melhor I/O
2. Configurações de Performance
# Definir número de threads
export OLLAMA_NUM_THREADS=8
# Usar GPU (se disponível)
export OLLAMA_GPU=1
# Configurar memória
export OLLAMA_MAX_LOADED_MODELS=2
3. Monitoramento
# Ver modelos carregados
ollama list
# Monitorar uso de recursos
htop
nvidia-smi # Para GPU
Casos de Uso Práticos
1. Assistente de Código
ollama run codellama "Crie uma função Python para validar CPF"
2. Análise de Logs
ollama run llama2 "Analise este erro: $(cat error.log)"
3. Documentação Automática
ollama run codellama "Documente esta função: $(cat function.py)"
4. Revisão de Código
ollama run codellama "Revise este código e sugira melhorias: $(cat script.sh)"
Comparação com APIs Externas
| Aspecto | Ollama Local | APIs Externas |
|---|---|---|
| Privacidade | ✅ Total | ❌ Limitada |
| Custo | ✅ Gratuito | 💰 Por uso |
| Latência | ⚡ Baixa | 🌐 Variável |
| Modelos | 🔄 Limitados | 🚀 Mais opções |
| Setup | 🛠️ Complexo | ✅ Simples |
Troubleshooting
1. Modelo não carrega
# Verificar espaço em disco
df -h
# Verificar RAM disponível
free -h
# Logs do Ollama
ollama logs
2. Performance baixa
# Verificar se está usando GPU
nvidia-smi
# Ajustar threads
export OLLAMA_NUM_THREADS=4
3. API não responde
# Verificar se o serviço está rodando
ps aux | grep ollama
# Reiniciar serviço
ollama serve
Conclusão
Ollama democratiza o acesso a LLMs locais, oferecendo uma alternativa privada e econômica às APIs externas. É ideal para:
- Desenvolvimento de protótipos
- Ambientes corporativos com dados sensíveis
- Aprendizado e experimentação
- Aplicações que precisam de baixa latência
Próximos Passos
- Experimentar diferentes modelos
- Integrar com suas aplicações
- Explorar fine-tuning
- Configurar em produção
Recursos Adicionais: