Testing Guide - OPTION A Ensemble
Este guia mostra como testar o sistema OPTION A em diferentes ambientes.
🧪 Opções de Teste
1. Teste Local (Mais Rápido)
Testa a estrutura sem carregar modelos pesados:
python test_local.py
Vantagens:
- ✅ Rápido (~10 segundos)
- ✅ Não precisa de GPU
- ✅ Testa imports e estrutura
Limitações:
- ❌ Não carrega modelos reais
- ❌ Não testa inferência
2. Teste Completo Local
Testa com carregamento de modelos (requer download de ~3GB):
python scripts/test/test_quick.py
Testes incluídos:
- Model loading
- Single audio annotation
- Batch processing (5 samples)
- Balanced mode (OPTION A - 3 models)
- Performance benchmark
Tempo estimado:
- Primeira execução: ~10-15 min (download de modelos)
- Execuções seguintes: ~2-5 min
Requisitos:
- RAM: 8GB mínimo (4GB pode funcionar com quick mode)
- Disk: ~5GB para modelos
- CPU: Qualquer (GPU não necessária para teste)
3. Docker (Isolado)
Testa em container Docker isolado:
# Build
docker build -f Dockerfile.test -t ensemble-test .
# Run
docker run ensemble-test
Vantagens:
- ✅ Ambiente limpo e reproduzível
- ✅ Não afeta sistema local
- ✅ Fácil de compartilhar
4. Google Cloud Spot Instance (Mais Barato)
Testa em máquina cloud baratinha (~$0.01/hora):
bash scripts/test/launch_gcp_spot.sh
Custo estimado:
e2-micro: $0.0025/hr (1GB RAM) - Só para teste de estruturae2-medium: $0.01/hr (4GB RAM) - ⭐ Recomendado para teste completoe2-standard-2: $0.02/hr (8GB RAM) - Para teste com balanced mode
O que faz:
- Busca zona mais barata
- Lança instância spot/preemptible
- Instala dependências automaticamente
- Roda testes
- Fornece comandos para SSH e cleanup
Comandos úteis:
# Listar instâncias
gcloud compute instances list
# SSH na instância
gcloud compute ssh ensemble-test-XXX --zone=us-central1-a
# Deletar instância
gcloud compute instances delete ensemble-test-XXX --zone=us-central1-a --quiet
5. AWS Spot Instance
Alternativa usando AWS (geralmente mais caro que GCP):
bash scripts/test/launch_spot_test.sh
Custo estimado:
t3a.medium: ~$0.009/hr (4GB RAM) ⭐ Mais baratot3.medium: ~$0.01/hr (4GB RAM)t3a.large: ~$0.018/hr (8GB RAM)
📊 Níveis de Teste
Nível 1: Estrutura (test_local.py)
✓ Imports
✓ Annotator creation
✓ Model structure
Tempo: ~10s | RAM: <1GB
Nível 2: Quick Mode (test_quick.py --mode quick)
✓ Load 2 models (emotion2vec + SenseVoice)
✓ Single annotation
✓ Batch processing
Tempo: ~2-5min | RAM: ~4GB
Nível 3: Balanced Mode (test_quick.py --mode balanced)
✓ Load 3 models (OPTION A)
✓ Full annotation pipeline
✓ Performance benchmark
Tempo: ~5-10min | RAM: ~6GB
Nível 4: Production Test
✓ Annotate real dataset (100 samples)
✓ Evaluation with ground truth
✓ Performance metrics
Tempo: ~15-30min | RAM: ~8GB
🎯 Recomendações por Caso de Uso
Para Desenvolvimento
python test_local.py # Validar mudanças rápido
Para CI/CD
docker run ensemble-test # Testes automatizados
Para Validação Pre-Produção
python scripts/test/test_quick.py --mode balanced
Para Benchmark de Performance
bash scripts/test/launch_gcp_spot.sh # Ambiente limpo e controlado
❌ Troubleshooting
Out of Memory
# Usar quick mode (2 modelos)
python scripts/test/test_quick.py --mode quick
# Ou testar sem carregar modelos
python test_local.py
Models não baixam
# Limpar cache
rm -rf ~/.cache/huggingface/
# Tentar novamente
python scripts/test/test_quick.py
Timeout em cloud
# Aumentar tipo de máquina
# Em GCP: e2-medium → e2-standard-2
# Em AWS: t3.medium → t3.large
📈 Resultados Esperados
test_local.py
✅ ALL LOCAL TESTS PASSED!
imports: ✅ PASS
create_annotator: ✅ PASS
model_structure: ✅ PASS
test_quick.py (Quick Mode)
✅ ALL TESTS PASSED!
model_loading: ✅ PASS (2 models)
single_annotation: ✅ PASS (~2s)
batch_processing: ✅ PASS (~8s for 5 samples)
test_quick.py (Balanced Mode - OPTION A)
✅ ALL TESTS PASSED!
model_loading: ✅ PASS (3 models)
single_annotation: ✅ PASS (~3s)
balanced_mode: ✅ PASS (3 predictions)
benchmark: ✅ PASS
💰 Custo Estimado de Teste
| Ambiente | Custo/Teste | Tempo | Notas |
|---|---|---|---|
| Local | $0 | 2-10min | Melhor para dev |
| Docker | $0 | 5-15min | Build inicial demora |
| GCP Spot (e2-medium) | $0.001-0.003 | 10-20min | ⭐ Melhor custo-benefício |
| AWS Spot (t3a.medium) | $0.003-0.005 | 10-20min | Alternativa |
Exemplo de custo real:
- Teste completo em GCP e2-medium: $0.01/hr × 0.3hr = $0.003 (menos de 1 centavo!)
🚀 Quick Start
Para começar rápido:
# 1. Teste local (validar estrutura)
python test_local.py
# 2. Se passou, teste completo
python scripts/test/test_quick.py
# 3. Se quer testar em cloud barato
bash scripts/test/launch_gcp_spot.sh
📝 Logs e Debugging
Ver logs detalhados
python test_local.py 2>&1 | tee test.log
Apenas erros
python scripts/test/test_quick.py 2>&1 | grep -E "(ERROR|FAIL|❌)"
Com timestamp
python scripts/test/test_quick.py 2>&1 | ts
✅ Checklist Pre-Produção
Antes de usar em produção, execute:
-
python test_local.py→ Passa -
python scripts/test/test_quick.py --mode quick→ Passa -
python scripts/test/test_quick.py --mode balanced→ Passa - Teste com áudio real (não sintético)
- Evaluation com ground truth
- Performance benchmark
Desenvolvido para OPTION A - Ensemble otimizado de 3 modelos 🎯