File size: 5,134 Bytes
a1190da | 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 | # Migration Guide - Nova Estrutura do Projeto
Este documento mapeia a estrutura antiga para a nova estrutura organizada por fases de pesquisa.
## Estrutura Antiga → Nova
### Dados
| Antigo | Novo |
|--------|------|
| `data/benchmarks/nguyen/` | `1_data/benchmarks/nguyen/` |
| `data/processed/` | `1_data/processed/` |
| `data/experiments/` | `1_data/processed/` |
### Scripts de Treinamento
| Antigo | Novo |
|--------|------|
| `scripts/train.py` | `2_training/supervised/train.py` |
| `scripts/train_with_json.py` | `2_training/supervised/train_with_json.py` |
| `scripts/ppo_symbolic.py` | `2_training/reinforcement/ppo_symbolic.py` |
| `scripts/grpo_symbolic.py` | `2_training/reinforcement/grpo_symbolic.py` |
| `scripts/reinforce_*.py` | `2_training/reinforcement/` |
| `configs/` | `2_training/configs/` |
### Scripts de Avaliação
| Antigo | Novo |
|--------|------|
| `scripts/evaluate.py` | `3_evaluation/quality/evaluate.py` |
| `scripts/evaluate_quality_simple.py` | `3_evaluation/quality/` |
| `scripts/evaluate_nguyen_benchmarks.py` | `3_evaluation/benchmarks/` |
| `scripts/compare_models.py` | `3_evaluation/comparison/` |
| `scripts/generate.py` | `3_evaluation/generate.py` |
### Scripts de Análise
| Antigo | Novo |
|--------|------|
| `scripts/analyze_complexity.py` | `4_analysis/complexity/` |
| `scripts/aggregate_nguyen_results.py` | `4_analysis/statistical/` |
| `analyze_nguyen_results.py` | `4_analysis/statistical/` |
| `create_visualizations.py` | `4_analysis/visualization/` |
### Modelos
| Antigo | Novo |
|--------|------|
| `output/gpt2_base_700K_json/` | `models/gpt2/base_700k_json/` |
| `output/gpt2_medium_700K_json/` | `models/gpt2/medium_700k_json/` |
| `output/gpt2_large_700K_json/` | `models/gpt2/large_700k_json/` |
### Resultados
| Antigo | Novo |
|--------|------|
| `results_final/quality/` | `results/2025-02_model_scaling/quality/` |
| `results_nguyen_benchmarks/` | `results/2025-02_model_scaling/nguyen_benchmarks/` |
| `visualizations/` | `results/2025-02_model_scaling/analysis/` (cópia) |
### Documentação
| Antigo | Novo |
|--------|------|
| `SCIENTIFIC_REPORT_MODEL_SCALING.md` | `docs/reports/` |
| `NGUYEN_RESULTS_FINAL.md` | `docs/reports/` |
| `MODEL_CARD_*.md` | `docs/model_cards/` |
| `visualizations/` | `docs/visualizations/` |
| `CLAUDE.md` | `docs/guides/CLAUDE.md` |
### Código Fonte
| Antigo | Novo |
|--------|------|
| `classes/` | `src/seriguela/utils/` |
| `__init__.py` | `src/seriguela/__init__.py` |
## Atualizar Imports
### Antes
```python
from classes.expression import Expression
from classes.dataset import Dataset
```
### Depois
```python
from src.seriguela.utils.expression import Expression
from src.seriguela.utils.dataset import Dataset
# Ou (se instalado como package)
from seriguela.utils import Expression, Dataset
```
## Atualizar Caminhos em Scripts
### Exemplo: Treinamento
**Antes**:
```bash
cd seriguela
python scripts/train_with_json.py \
--dataset_path ./data/processed/700K \
--output_dir ./output/test
```
**Depois**:
```bash
cd seriguela/2_training/supervised
python train_with_json.py \
--dataset_path ../../1_data/processed/700K \
--output_dir ../../models/gpt2/test
```
### Exemplo: Avaliação
**Antes**:
```bash
python scripts/evaluate_nguyen_benchmarks.py \
--model_path ./output/gpt2_medium_700K_json \
--benchmark ./data/benchmarks/nguyen/nguyen_5.csv
```
**Depois**:
```bash
cd 3_evaluation/benchmarks
python evaluate_nguyen_benchmarks.py \
--model_path ../../models/gpt2/medium_700k_json \
--benchmark ../../1_data/benchmarks/nguyen/nguyen_5.csv
```
## AWS Scripts
A chave SSH correta é `chave-gpu-nova` (não `chave-gpu`):
```bash
# Atualizar scripts AWS
sed -i 's/chave-gpu/chave-gpu-nova/g' scripts/aws/*.sh
```
## Verificação de Migração
```bash
# Verificar se novos diretórios foram criados
ls -d 1_data 2_training 3_evaluation 4_analysis models results docs src
# Verificar se modelos foram movidos
ls models/gpt2/
# Verificar se READMEs existem
find . -name "README.md" -type f | head -10
# Verificar se resultados foram copiados
ls results/2025-02_model_scaling/
```
## Retrocompatibilidade
Os diretórios antigos (`scripts/`, `output/`, `data/`) ainda existem por enquanto para retrocompatibilidade. Recomendamos:
1. Atualizar scripts para usar nova estrutura
2. Testar workflows completos
3. Depois de validar, remover diretórios antigos:
```bash
# APENAS após validar nova estrutura
rm -rf output/ # (modelos já copiados para models/)
rm -rf data/ # (dados já copiados para 1_data/)
rm -rf results_final/ results_nguyen_benchmarks/ # (já em results/)
```
## Benefícios da Nova Estrutura
1. **Clareza**: Fases numeradas (1→2→3→4) guiam o workflow
2. **Escalabilidade**: Fácil adicionar novos modelos/benchmarks
3. **Documentação**: README em cada diretório
4. **Organização**: Resultados separados por experimento
5. **Manutenibilidade**: Código fonte isolado em `src/`
## Suporte
Para dúvidas sobre a migração, consulte:
- README.md de cada diretório
- docs/guides/CLAUDE.md (guia completo)
- Issues no GitHub
|