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