File size: 5,762 Bytes
5df2c77 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
# Guia de Testes - OktoScript v1.2
Este guia lista todos os scripts de teste disponíveis e como usá-los para validar diferentes funcionalidades do OktoScript.
## 📋 Scripts de Teste Disponíveis
### 1. `test-t5-basic.okt` - Treinamento Básico
**Objetivo:** Testar treinamento simples sem blocos avançados
**Modelo:** `google/t5-small`
**Blocos usados:**
- PROJECT
- ENV
- DATASET
- MODEL
- TRAIN
- EXPORT
**Como testar:**
```bash
okto validate examples/test-t5-basic.okt
okto train examples/test-t5-basic.okt
```
**O que verificar:**
- ✅ Treinamento inicia sem erros
- ✅ Modelo é salvo em `runs/test_t5_basic/`
- ✅ Export funciona para `okm` e `safetensors`
---
### 2. `test-t5-monitor.okt` - Monitoramento de Métricas
**Objetivo:** Testar bloco MONITOR com tracking completo
**Modelo:** `google/t5-small`
**Blocos usados:**
- MONITOR (completo)
- Métricas: loss, val_loss, accuracy, perplexity, gpu_usage, ram_usage, throughput, latency
**Como testar:**
```bash
okto validate examples/test-t5-monitor.okt
okto train examples/test-t5-monitor.okt
okto logs test_t5_monitor
```
**O que verificar:**
- ✅ Métricas são coletadas durante treinamento
- ✅ Arquivo `logs/training_monitor.log` é criado
- ✅ Notificações são geradas quando condições são atendidas
---
### 3. `test-t5-control.okt` - Controle e Decisões
**Objetivo:** Testar bloco CONTROL com lógica condicional
**Modelo:** `google/t5-small`
**Blocos usados:**
- CONTROL (completo)
- Eventos: on_step_end, on_epoch_end
- Diretivas: IF, WHEN, EVERY, SET, STOP_TRAINING, DECREASE, SAVE, LOG
**Como testar:**
```bash
okto validate examples/test-t5-control.okt
okto train examples/test-t5-control.okt
okto logs test_t5_control
```
**O que verificar:**
- ✅ Logs são gerados em cada step/epoch
- ✅ Learning rate é ajustado automaticamente quando loss > 2.0
- ✅ Treinamento para quando val_loss > 2.5
- ✅ Checkpoints são salvos a cada 500 steps
- ✅ Arquivo `control_decisions.json` é criado em `runs/test_t5_control/`
---
### 4. `test-flan-t5-complete.okt` - Todos os Blocos
**Objetivo:** Testar todos os blocos avançados juntos
**Modelo:** `google/flan-t5-base`
**Blocos usados:**
- MONITOR (completo)
- CONTROL (completo com lógica aninhada)
- STABILITY
- EXPORT
**Como testar:**
```bash
okto validate examples/test-flan-t5-complete.okt
okto train examples/test-flan-t5-complete.okt
okto logs test_flan_t5_complete
```
**O que verificar:**
- ✅ Todos os blocos funcionam juntos
- ✅ Lógica aninhada no CONTROL funciona (IF dentro de on_epoch_end)
- ✅ STABILITY previne NaN e divergência
- ✅ Métricas completas são coletadas
---
### 5. `test-flan-t5-inference.okt` - Inferência com Governança
**Objetivo:** Testar inferência com BEHAVIOR, GUARD e INFERENCE
**Modelo:** `google/flan-t5-base`
**Blocos usados:**
- BEHAVIOR (personality, language, avoid)
- GUARD (prevent, detect_using, on_violation)
- INFERENCE (mode, format, params, CONTROL aninhado)
**Como testar:**
```bash
# Treinar primeiro
okto train examples/test-flan-t5-inference.okt
# Testar inferência
okto infer --model export/test_flan_t5_inference --text "Olá, como você está?"
# Testar chat interativo
okto chat --model export/test_flan_t5_inference
```
**O que verificar:**
- ✅ Modelo respeita BEHAVIOR (personality, language)
- ✅ GUARD bloqueia conteúdo tóxico/inadequado
- ✅ INFERENCE usa formato correto
- ✅ CONTROL dentro de INFERENCE funciona (RETRY, REGENERATE)
---
### 6. `test-t5-explorer.okt` - AutoML Básico
**Objetivo:** Testar bloco EXPLORER para busca de hiperparâmetros
**Modelo:** `google/t5-small`
**Blocos usados:**
- EXPLORER (try, max_tests, pick_best_by)
- MONITOR
**Como testar:**
```bash
okto validate examples/test-t5-explorer.okt
okto train examples/test-t5-explorer.okt
```
**O que verificar:**
- ✅ Múltiplas combinações de hiperparâmetros são testadas
- ✅ Melhor modelo é selecionado por val_loss
- ✅ Logs mostram resultados de cada teste
---
## 🧪 Sequência Recomendada de Testes
### Fase 1: Testes Básicos
1. `test-t5-basic.okt` - Validar pipeline básico
2. `test-t5-monitor.okt` - Validar monitoramento
### Fase 2: Testes de Controle
3. `test-t5-control.okt` - Validar decisões automáticas
4. `test-flan-t5-complete.okt` - Validar integração completa
### Fase 3: Testes Avançados
5. `test-flan-t5-inference.okt` - Validar inferência governada
6. `test-t5-explorer.okt` - Validar AutoML
---
## 📊 Checklist de Validação
Para cada teste, verifique:
- [ ] Script valida sem erros (`okto validate`)
- [ ] Treinamento inicia corretamente
- [ ] Blocos específicos funcionam como esperado
- [ ] Logs são gerados corretamente
- [ ] Export funciona para formato especificado
- [ ] Arquivos são salvos nos locais corretos
---
## 🔍 Comandos Úteis
```bash
# Validar script
okto validate examples/test-t5-basic.okt
# Treinar
okto train examples/test-t5-basic.okt
# Ver logs
okto logs test_t5_basic
# Inferência
okto infer --model export/test_t5_basic --text "Hello"
# Chat interativo
okto chat --model export/test_t5_basic
# Ver conteúdo do script
okto show examples/test-t5-basic.okt
```
---
## 📝 Notas
- Todos os testes usam `dataset/train.jsonl` e `dataset/val.jsonl`
- Certifique-se de ter dados de teste antes de executar
- Modelos T5 são menores e mais rápidos para testes
- Modelos Flan-T5 são melhores para inferência e chat
- Ajuste `batch_size` e `epochs` conforme sua GPU
---
**Boa sorte com os testes! 🚀**
|