Marcus Vinicius Zerbini Canhaço
feat: atualização do detector com otimizações para GPU T4
eb1a752
|
raw
history blame
4.07 kB
# FAQ
## Geral
### Como o sistema funciona?
O sistema utiliza um modelo de IA (OWL-ViT) para detectar objetos de risco em vídeos.
O processamento pode ser feito em GPU ou CPU, com otimizações específicas para cada caso.
### O que é o OWL-ViT?
O OWL-ViT (Vision Transformer for Open-World Localization) é um modelo de IA que:
- Usa arquitetura Transformer para processar imagens
- Permite detecção zero-shot de objetos
- Aceita queries em linguagem natural
- Não precisa de treinamento específico para novos objetos
### Problemas Conhecidos com OWL-ViT
#### Limitações do Modelo Ensemble
O modelo `owlv2-base-patch16-ensemble` apresenta incompatibilidades com processamento GPU:
- Conflitos com versões estáveis do Transformers
- Problemas de memória em GPUs com menos de 16GB
- Instabilidade em batch processing
**Solução Implementada:**
1. Mudança para modelo base: `owlv2-base-patch16`
2. Atualização do Transformers para branch de desenvolvimento:
```bash
pip install git+https://github.com/huggingface/transformers.git
```
3. Ajustes nas configurações de memória GPU:
```python
model = model.to(device='cuda', dtype=torch.float16)
```
#### Comparação de Versões
1. **Modelo Base**
- Mais estável
- Menor consumo de memória
- Compatível com mais GPUs
2. **Modelo Ensemble**
- Maior precisão
- Requer mais recursos
- Melhor para CPU
### Como fazer queries efetivas para o OWL-ViT?
Para melhores resultados, use estas técnicas:
1. **Seja Específico**
- Bom: "uma pistola preta"
- Ruim: "arma"
2. **Use Variações**
- "uma arma de fogo"
- "uma pistola"
- "um revólver"
3. **Inclua Contexto**
- "uma faca na mão de alguém"
- "uma arma apontada"
4. **Descreva Características**
- "uma faca com lâmina metálica"
- "um rifle com coronha"
### Tipos de Objetos Detectados
#### Armas de Fogo
- Pistolas
- Rifles
- Espingardas
#### Armas Brancas
- Facas
- Canivetes
- Objetos pontiagudos
#### Outros Objetos
- Bastões
- Objetos contundentes
- Materiais explosivos
## Técnico
### Requisitos de Hardware
#### Especificações GPU
- NVIDIA T4 16GB (recomendado)
- CUDA 11.8+
- 16GB RAM
#### Especificações CPU
- 8+ cores
- 32GB RAM
- SSD para cache
### Problemas Comuns
#### Erro CUDA
**Problema**: `CUDA not available`
**Solução**:
```bash
nvidia-smi
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu118
```
#### Memória Insuficiente
**Problema**: `CUDA out of memory`
**Solução**:
- Reduza o tamanho do batch
- Diminua a resolução
- Ajuste `GPU_MEMORY_FRACTION` no `.env`
## Performance
### Otimizações de Sistema
#### Ajustes GPU
- Use batch processing
- Ative half precision
- Otimize o cache de modelos
#### Ajustes CPU
- Ative multiprocessing
- Use vetorização NumPy
- Implemente cache de resultados
### Configurações Recomendadas
```plaintext
// Configurações para GPU T4
GPU_MEMORY_FRACTION=0.9
BATCH_SIZE=16
USE_HALF_PRECISION=true
// Configurações para CPU
MAX_WORKERS=8
CACHE_SIZE=1000
USE_MULTIPROCESSING=true
```
## Deployment
### Processo de Deploy no Hugging Face
1. Configure as credenciais:
```bash
cp .env.example .env.huggingface
```
2. Edite as variáveis:
```plaintext
HF_SPACE_ID=seu-espaco
HF_TOKEN=seu_token
```
3. Execute o deploy:
```bash
./deploy.sh
```
### Sistema de Monitoramento
- Use os logs em `logs/app.log`
- Monitore GPU com `nvidia-smi`
- Verifique métricas no Hugging Face
## Segurança
### Gerenciamento de Credenciais
1. Use variáveis de ambiente:
```bash
cp .env.example .env
```
2. Nunca comite arquivos `.env`
3. Use secrets no Hugging Face
### Validação de Entrada
- Limite o tamanho dos vídeos
- Verifique formatos permitidos
- Sanitize inputs
```text
HUGGINGFACE_TOKEN=seu_token
GPU_MEMORY_FRACTION=0.9
MAX_CONCURRENT_REQUESTS=2
```
```text
USE_GPU=true
GPU_DEVICE=0
```
```text
USE_GPU=false
```
```text
HF_SPACE_ID=seu-espaco
HF_TOKEN=seu_token
```